Whonix Wiki Download Docs News Support Tips Issues Contribute DONATE

Streamlining Dev Collaboration

Overview

A few things have stood out to me that could be updated for simplifying collaboration between developers on the Whonix™ project. Namely, chat and git ops.

I have a few solutions that I would like to propose for these.

Chat

Currently, most conversation happens on Discourse. Discourse is an awesome tool, but I notice during my troubleshooting conversations that the thread about CI work is clogged with lots of back and forth debugging chat.

I have heard there is a telegram chat, but I do not use this service, and no longer have a smartphone connected to an SMS network.

Modern software devs often use tools like Slack, Mattermost, and Microsoft Teams to collaborate, but I think adding new tools is a bit much

Proposed Solution:

We could easily implement the new Discourse chat plugin for conversations between devs, and perhaps a bit of lighthearted convo too, in case contributors want to get to know each other and build community :slight_smile:

Git Workflows

Currently, we are using a few different Github repositories with various owners to make Whonix work. Phabricator seems to no longer be used, but Kanban boards would be awesome to help catalogue objectives and define milestones for the project.

I think having a centralized project board on repositories would be a great way to help organize things.

Proposed Solution:

Move all source code to a Gitea instance (I am happy to maintain and have a domain registered). We can use their issues feature to define and prioritize work, and create project boards with clearly defined acceptance criteria as well as Good Starter Issue tags for new contributors.

We can use scripts to migrate issues from Phabricator to Gitea, and have all the relevant repositories on under one organization which @Patrick can be the admin.

Final Thoughts

I think Discourse is great, and that Discourse and Gitea could be the primary homes for Whonix moving forward. Discussion and work organization could be defined entirely in these two services, and could fill the void that services like Phabricator and Telegram were initially intended to address.

Thank you for letting me speak my peace. Also, it should be mentioned that I am happy to implement all this work. The entire objective of my thoughts is to streamline development and community engagement, and not to overload devs that are already busy working on things.

:slight_smile:

3 Likes

About chat protocols. Personally partial to IRC given the low usage requirements and simplicity of the protocol. Unfortunately the latter is also its weakens. Without a persistent connection you will lose chat history.

IRCv3 is an ‘official’ set of protocol extensions as specifications of which one might handle server-side retention and synchronisation of chat history but unfortunately without client and server support it still is not there yet.

Thank you

Which chat protocols do you like? @Whonix developers?

I looked into https://meta.discourse.org/t/discourse-chat-integration/66522 today. Installed it on the stage server.

(Primarily because I got interested in other notification features for new posts / replies. Those using channels other than e-mail.)

(“channels” being defines as: e-mail, telegram, browser notifications, …)

What’s the desired functionality for the discourse chat integration plugin? In the linked forum thread is a video. I watched it. Seems like the main functionality is that people can chat on some platform. Such as let’s say telegram for example. After a discussion has concluded, the transcript (one can choose a start and end point of the chat) can be forwarded as a new forum post here in discourse.

Is that the desired functionality you were looking for? Or just any chat based communication tool, not necessarily the discourse chat plugin (which isn’t really what I guessed what this plugin would do).

Not sure discourse has a “real” chat.

What happened to the user support chat:

But if it helps for development… Something can be setup for development chat.

Which chat protocols do you like? @Whonix developers?


Other topics I’ll address later. A lot interesting stuff here.

Not sure it’s best to limit this to chat here and split other topics into different forum threads.

Cool!
(Ooops. First few times I overlooked that.)

Useful?

My issue with telegram is that it requires a smartphone and telephone number. Maybe something like cwtch could be better?

I don’t mean to come in and be like “Lets change the tooling”, but it does seem like tools such as slack and discord are becoming more prevalent in dev teams for collaboration.

Honestly discourse itself without the chat plugin is likely fine. I just think a “chat room” of sorts could be a nice and easy way for people to communicate.

I really like Rocket.Chat too, but self hosting can be a PITA and add unnecessary tech debt.

I think leveraging existing discourse functionality is a good idea over adding new services, since it is such a sweet tool

I do think some kanban board work could really make it easier for people to jump in and collaborate :man_shrugging:

I also think a bit of work on the git workflows could be a good thing. I certainly am not doing this work for glory and fame, but it would be nice to see my authored commits on the repos I commit to :)…not a big deal just nice for the credibility thing when working with new clients, companies, etc :man_shrugging:

1 Like

Building community is important IMO. I think a general chit-chat forum could be good, or a chat for that.

I like getting to know the humans I am working with as people, within their desired privacy parameters of course

1 Like

Discourse has many plugins. I don’t see through yet.

This one perhaps?

1 Like
1 Like
1 Like

Story of my life.

credits @xkcd:

2 Likes

True…maybe it is a non-issue and I am just overthinking it. We seem to chat fine here on discourse.

Git plugins are probably good for discourse :man_shrugging:

1 Like

Would like gitea over github thousand times.

Discourse chat seems best because it doesn’t involve using a different platform.

IRC can only be text, and someone needs to host the relay server for clients that disconnects.

Fan of Cwtch, but someone needs to test if it works on Whonix.

http://gitopcybr57ris5iuivfz62gdwe2qk5pinnt2wplpwzicaybw73stjqd.onion/cwtch.im/cwtch/issues/392

I get it, it may not be as productive as the forum as we need to keep things separated by thread, and easy read for every user to understand, but maybe people become more productive when they are happy they can chat with people around them.

1 Like

I registered gitfoss.org. I would love to help host FOSS code there, but I don’t want to go through the effort of setting it up until people agree it is useful.

I do think it is useful, here is why:

  1. currently, the gitflows for the whonix project leave a little to be desired. we have multiple accounts adrenalos, whonix, and derivative-maker for multiple parts of the project. A singular account would consolidate things and make it easier to gather info on the scope of the project

  2. kanban and issues could be set up. Phabricator is deprecated, but most modern software projects use project boards to implement features, catalogue issues, etc. This could help new users get engaged and pick up good-first-issue tickets

  3. privacy…I would love help creating a privacy policy/TOS on the site that legally prevents/discourages selling, brokering, or tracking data.

  4. Why are so many open source projects defaulting to microsoft as their primary place of working on code? Because it is the most feasible choice. Gitlab has an awful model that limits features for their free version

Drawbacks to this IMO is what if one day I simply disappear and shut down the server? well IMO all the FOSS repos should be mirrored to both github and gitlab. The same argument could be proposed “what if microsoft decides to delete privacy software and free software that challenges the current heirarchy of power?”…well we would have to pick up the pieces

I want to build it. I can build it. And I will build it. But only if the community wants to come along for the ride. Cloud servers are a bit expensive, and home hosting isnt a great option for me for the next year or so. I am hoping to buy a house where I can get a business fiber connection, but that is a ways out. Ultimately, it will cost a bit of money.

So many amazing projects I would love to build a home for… whonix, graphene, or anyone else who wants to use FOSS tools to build FOSS tools.

2 Likes

IMO higher level discussions should happen on the forum or in chat, but the heaviest collaboration and technical discussions should occur on issues using a remote git collab tool (github, gitlab, gitea, whatever)

Honestly I think a project board (cough cough gitea) would be more useful than chat at this point.

2 Likes

It is not only being useful, if you can’t as per the points made above, its fine. Because it would be no good to for you to keep maintaining something without the availability.

2 Likes

I have a few production sites, and running another one wouldn’t be a huge lift. I have the availability :man_shrugging:

2 Likes

I said that because of this.
It is clear for me now.

2 Likes

True. For user support chat, well see this. But for developers, if it helps, I’d give it another try.

Ok, so this one can certainly be fixed.

  • github.com/adrelanos - if you find Whonix to depend on it, and report that, then that’s a bug. That repo is supposed to be just a user mirror. Then it will be moved to github.com/Kicksecure or github.com/Whonix. These ones I am happy to fix quickly since easy to do and low time effort.
  • derivative-maker/derivative-maker: Yeah, that previous was Whonix/Whonix. I’ll just need a better name. Or just Whonix/derivative-maker? (Would be duplicated to Kicksecure/derivative-maker.) Also happy to get rid of the github.com/derivative-maker github org.
1 Like

This is resolved. All under 1 github organisation now.

1 Like

Maybe. Also it wasn’t microsoft hosted forever. Could speculate a lot why.

  • Network effect. People have accounts at github and the hurdle to create just another account is just too high.
  • git is decentralized, real Open Source. But the extra github features such as issues, pages, CI are proprietary. High effort for projects to migrate these from github to another platform.
  • Search engine ranking.
  • Unaware of github having been acquired by microsoft.
    • Unaware why this is a big deal.
  • Microsoft hasn’t messed up github yet (too much) for people to look for alternatives.

Are there any features that actually matter for most Open Source projects missing on gitlab free? There’s also:

Not sure that makes it any better. I didn’t compare the features much. Didn’t run into any features yet that I need (or know that I could have use for) that github or someone else offers but gitlab doesn’t offer.

Phabricator was a big surprise. I thought if facebook and wikimedia are using it for their issue tracking, the longevity of the project should be more or less guaranteed. Now Phabricator is a liability (since deprecated) and a lingering question what do with it. How to turn it into a static html archive and/or how to migrate the existing tickets elsewhere. Help would also be welcome to fully deprecated use of phabricator on whonix.org.

Contributions, web apps are tricky in Open Source anyhow. First, TorBOX (previous project name) was hosted in the Tor Project wiki. Next it was hosted on sourceforge. Because that was also non-ideal, a webmaster contributor set up the domain whonix.org and a web server. The contributor after many years the contributor retired. Now I was left having to maintain both Whonix and its webserver. Linux distribution maintenance and server sysadmin skills are quite different skills and not an automatic given that can be easily done on the side with no time effort.

Meanwhile, started using this forum as issue tracker:
https://www.whonix.org/wiki/Reporting_Bugs#Issue_Tracker

Then we’re at least down to only 2 webapps. MediaWiki and discourse. That was my thinking.

What do you think?