Hello users of Hexbear, we are excited to start our next volunteer drive!
If you wish to contribute to https://bulletins.hexbear.net/ please visit https://git.chapo.chat/hexbear-collective/bulletins/src/branch/main/CONTRIBUTING.md and follow the instructions, if you need assistance reach out to Layla via Matrix Ella via Matrix or me via Matrix or @SeventyTwoTrillion
If you wish to contribute to site development please refer to here as our current Dev Volunteer Focus is to fork Lemmy again, this time deliberately not diverging too far from upstream so it's easier to maintain the patches and apply them on top of each new Lemmy release.
This is a large undertaking. There is no timeline, but we expect it to be a while before the site is migrated over to the finished fork.
We're still in the early stages, but the more people involved the sooner we can progress. Primarily, we need developers (Rust & TypeScript) and ops/infrastructure people. Please reach out to Layla via Matrix
Ella via Matrix or me via Matrix If you're interested in helping out. If you need help setting it up, let me know.
For more information contributing to the dev side of Hexbear please refer to this post
Anyone interested in moderating a community please send an application with the communities you would like to moderate included.
If you wish to create a new community briefly describe what it would be in a comment, in addition to sending in a mod application
Please comment to show interest or go ahead and begin the application process.
Create an Element account and send the following application via Matrix
The answers will be reviewed by the admin team, and applications will not be copied into unencrypted communication without your permission.
Application
What is your Hexbear username?
Do you have any preferred pronouns?
What are your thoughts on capitalism?
What are your thoughts on imperialism?
What are your thoughts on trans rights?
What are your thoughts on Black Lives Matter and the recent protests?
What do those protests tell you?
What are your thoughts on Veganism and Animal Liberation?
Do you have any experience with other leftist online communities? What did those experiences teach you?
What is your approach to moderation and how do you work with teams?
Do you have an account with Reddit, Discord, or Twitter? If so, may we review them?
How do you deal with online drama and people who try to start things for the sake of it?
What current comms would you be interested in moderating? Do you have any ideas for community engagement?
What is your general time availability? (Time zone, amounts, common browsing times, etc)
Element information
Element is a messaging app that lets you talk to people over the Matrix protocol.
To get started, check out this link, where you can choose to either download Element for your platform or, if on a computer, open it in a browser ("Launch Element Web").
The instructions that follow are for the desktop application and the web application, but the process is similar on all apps:
- Press "Create Account"
- We host our own Matrix server, so if you want you can change
matrix.org
tochapo.chat
. This is completely optional; users who sign up with amatrix.org
username can still talk to people withchapo.chat
username. (Note: It ischapo.chat
, nothexbear.net
. Also, registrations aren't always open onchapo.chat
; if they're not, just create an account onmatrix.org
) - Fill in a username and password
- Hit register, and you're done!
Can you add me to the list of people to contact about getting involved in Hex Dev/the bulletins site? I can get people set up now
So I already have access to the dev channel on Matrix, but I'll ask here anyway: is there a reference or guide for pulling down the source code and getting a staging environment set up? (Or, failing that, is there something like that for Lemmy?)
If not I'll bother people in the channel, and maybe write my own once I get it working.
See the Contributing, Docker development, and Local Development pages of the upstream docs to get started.
Honestly, if you can read a c-like syntax, you can get up to speed with rust in like half an hour. At least enough to work in this codebase, anyway. We aren’t writing much low-level stuff that needs the borrow checker
We really need the former devs to expand upon this post, to determine what series of patches are important to carry forward / rebase onto lemmy's main branch of development, and perhaps some very detailed notes around decisions that they made.
Currently, hexbear's
main
and lemmy'smain
have a difference of937 files changed, 42504 insertions(+), 55162 deletions(-)
Which is a lot of files. At what git commit, or upstream Lemmy version was Hexbear forked at?
Running the typical method of finding where two branches diverged is giving me odd results.
git merge-base origin/main upstream/main 064d7f84b25236195eeb33a8671935bc9df37e57
This is a very strange commit to use as the basis for a common ancestor, but I see that almost after the initial commit to Lemmy, there was a huge alternate branch of development created, between the
main
branch and the actual tagged release. So, honestly Lemmy from the start has had a completely fucked Git history.Author: Dessalines <tyhou13@gmx.com> Date: 3 years ago (2/14/2019 12:36:53 PM) Commit hash: dfbcb228c0ac1cf81fdc76c87269221da6d54263 Child: 21f9625a Parent: 8ece275d Adding README. Contained in branches: main Contained in tags: 0.10.0 0.10.0-rc.10 0.10.0-rc.12 0.10.0-rc.13 0.10.0-rc.5 0.10.0-rc.7 0.10.0-rc.8 0.10.0-rc.9 0.10.1 0.10.2 [ Show all ] Derives from no tag
Author: Dessalines <happydooby@gmail.com> Date: 3 years ago (2/14/2019 12:36:53 PM) Commit hash: fdaa4c59f5dcc49bd4c702adb1f9c39b413f5cb5 Child: e86930bd Parent: 8ece275d Adding README. Contained in no branch Contained in tags: v0.0.1 v0.0.2 v0.0.3 v0.0.5 v0.0.6 v0.0.7 v0.0.7.3 v0.0.7.6 v0.0.8 v0.0.8.4 [ Show all ] Derives from no tag
I am guessing that the branch point for Hexbear's lemmy instance was off a tagged release of Lemmy upstream?
Anyway that's just some things I saw, when I decided to take a look.
fork Lemmy again
Oh, I also want to say that, given the fact that one forked version of Lemmy that HexBear is running on has bit-rotted, why would you go and do the same strategy again, and risk having a second fork start diverging from upstream and then be abandoned by another set of developers?
I think more work needs to be done to go back to upstream Lemmy and contribute directly to upstream, rather than trying to maintain a fork. Meaning, extract the meaningful and important code changes from the current fork, evaluate what could be applied to a more recent version of upstream Lemmy, migrate Hexbear.com to that version, work on upstreaming those patches back into Lemmy upstream, and slowly converge towards getting a version of Hexbear.com that runs using 100% upstream Lemmy, and have features be developed against upstream Lemmy.
This will be a multi-year process. The hole got dug, now we need to dig ourselves out.
This is pretty much what has been going on and notable progress has been made towards that goal.
I imagined so. I just didn't see it documented anywhere so I figured throwing a guess out as to what needs to be done would generate discussion
Ultimately the goal is winding down the scope of the project as much as possible, so that maintenance becomes manageable. Getting all of our changes upstreamed to Lemmy would bring maintenance down to zero, but there are certain features which have been rejected, so this isn't possible. We need to maintain some amount of custom features, and the best way to do it seems to be reimplementing them cleanly on top of Lemmy in a way which has minimal impact on the APIs, database structure, and unrelated code.
This should make rebasing hexbear on Lemmy releases relatively trivial (it is basically impossible currently), and should also make it easier to pitch new features over to them if they want them.
Indeed, we should consult them before developing new features, to maximize the likelyhood of their inclusion upstream, but they won't accept all of it.
I think more work needs to be done to go back to upstream Lemmy and contribute directly to upstream, rather than trying to maintain a fork. Meaning, extract the meaningful and important code changes from the current fork, evaluate what could be applied to a more recent version of upstream Lemmy, migrate Hexbear.com to that version, work on upstreaming those patches back into Lemmy upstream, and slowly converge towards getting a version of Hexbear.com that runs using 100% upstream Lemmy, and have features be developed against upstream Lemmy.
That’s the exact plan iirc, although I haven’t been involved with the project for a while. “Reforking” is probably imprecise phrasing to describe this newest effort. Scope for this current work is developing a patch for upstream Lemmy with the minimum amount of changes that we can have.
Easy example of why running 100% of Lemmy isn’t feasible:
From what I remember, the main Lemmy devs were uninterested in pronoun tags. That’s ironic considering it’s a more effective way to piss off bigots and reactionaries than the extremely clunky hardcoded slur filter.
The site admins and maintainers of this project probably have a good working relationship with the Lemmy devs they want to maintain, which I understand. I personally decided to focus on other projects previously after giving up on the Lemmy devs extremely slow turnaround on accepting any PRs upstream.
That was before this patching strategy was announced, which I might volunteer for, although I’m currently dealing with health / medical problems that limit how much knowledge work I can do.
Final edit:
If anyone here knows the lemmy devs, I would strongly suggest pitching pronoun tags to them as a way to deter bigots / reactionaries.
I hope they’re not personally against pronouns for ideological reasons, but if they are that is also something I think myself and other trans people would like to know.
Example of why running 100% of Lemmy isn’t feasible: From what I remember, the main Lemmy devs were uninterested in pronoun tags
This is partially due to the quality of the code. IIRC, they were initially interested in a user tagging system, which is why I think a fresh proposal emulating the way Mastodon does this is worth it. This data is already federated in practice (on Masto) and we could potentially bring compatibility with the same protocol over to Lemmy. I need to catch up with the current state of Lemmy though.
Expanded my comment right before you commented, sorry! Are you involved with this newest effort? That’s really encouraging, I recognize you from around the original dev project.
they were initially interested in a user tagging system, which is why I think a fresh proposal emulating the way Mastodon does this is worth it. This data is already federated in practice (on Masto) and we could potentially bring compatibility with the same protocol over to Lemmy
Separate thought: Pronouns for users seems like a separate feature than general user tags, though, correct? I’m trying to imagine how that would work for federation.
Having pronouns and general user tags as the same feature seems like it would fill the site with a bunch of randos from other lemmy instances with user tags that then displayed in the pronoun field here with phrases like “cum/town” or “PROUD PATSOC”.
Hoping the Lemmy devs have a plan for this, honestly a little surprised they seem to be focused on trying to shoe-horn pronouns in.
Edit: whoops, triple posted
Again. That's not a fork. You made a reimplementation, in a different language that was API compatible with the original Rust backend.
Would be happy to discuss in a dedicated dev space so others can give more info but the goal is to create a lemmy patch with the important hexbear changes added to upstream lemmy, refork and not diverge so that we can stay current & federate.
If you are wanting more info, a better explanation or to contribute please reach out via element. Thank you
Element/matrix/irc is okay for coordinating small things, but when I was developing on a large open source project the primary way of discussion was email and blueprints (on launchpad) and design docs that were authored and reviewed in Gerrit. Meetings with set agendas on Freenode for set times.
I'll consider joining element but I would suggest discussing here or in another post where long form text discussion is available
Is the TypeScript backend running Hexbear.com right now? If so the site is in an even worse position than I first thought. I had thought that the TS backend had fizzled out and never went to production.
You're right, I got mixed up, going to delete the other comments sorry
What is an area of the codebase that the team is excited about right now? Any new features planned for the fork or new features we’ll get from modern Lemmy?
There’s some discussion involving how to borrow tag features from Mastodon to get pronouns to federate. The parts of the API that have deviated from upstream are going to be separated out so they can be maintained as a light patch on top of vanilla Lemmy (featured posts, for example). And once we have feature parity, we can start the migration and finally enable federation and user blocks
I am interested, but I am currently in the process of renos and don't have the time to commit. I should have more free time around the start of September, so I will look into contributing around then. Also, I assume there are restrictions on contributing based on account age? I had an old account on here but I decided to make a new one bc my old account had too much personal info on it.
Feel free to reach out whenever you are ready and we will get you set up, thank you!