Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sad news: Lutando Ngqakaza has passed away on July 7th 2021, age 31 #446

Open
MarkusGeigerDev opened this issue Sep 6, 2021 · 17 comments
Open

Comments

@MarkusGeigerDev
Copy link

Source:
https://twitter.com/CongoKyle/status/1412710185617985540?s=19

Although I didn't know him in person, I am sad and shocked to learn about this today.

While sadly nothing and nobody can bring Lutando back, perhaps we can still continue his work in his memory.

Who's with me?

@Aaronontheweb
Copy link

Aaronontheweb commented Sep 6, 2021

I'll bring this up with the Akka.NET organization, but here's what I'm going to propose in relation to the Akkatecture project.

Motivations

  1. It is in the vested interests of the Akka.NET project that Akkatecture continue, as it provides users with a repeatable, proven methodology to implement CQRS and many event-driven design patterns on top of Akka.NET. It would also personally please us to see Lutando's legacy carried forward as he was a tremendous direct contributor to our community and his sudden, tragic passing is a huge loss for the .NET community as a whole.
  2. There are a lot of users who are invested in the Akkatecture project who are now uncertain about its future.
  3. Most of the resources around Akkatecture are tied up in @Lutando's personal accounts, and until / unless members of his estate have an opportunity to release them to the community it's infeasible to create new releases, merge new pull requests, and do all of the regular maintenance work that goes into libraries and frameworks.
  4. While it's quite easy to fork an OSS project, forking the community of users around a new fork is a much more difficult problem. There may be some active forks of Akkatecture being developed right now, but there's no consensus around which is going to be the future.

This is where I think the Akka.NET project can lend a hand here.

Proposal

We, the Akka.NET project team, will not take on the burden of maintaining Akkatecture under any circumstances - it should be an independent project with its own goals, roadmaps, and leadership.

However, what we can do is solve the "homing" problem for Akkatecture using our megaphone to seed a new "official" Akkatecture organization that can act as the successor to Lutando's work.

What we would help with:

  1. Create a new Akkatecture organization populated with 3-4 maintainers from the community of users and contributors - these are people who like Akkatecture, are using it personally, and have a vested interest in seeing its development continued.
  2. Bring Akka.NET's set of standards, issue templates, all of the Github community health files, and some groundwork for CI/CD to this project. Some of this exists inside Akkatecture already (i.e. the CI system) and should be re-used. This will help make sure the new Akkatecture organization isn't starting from zero.
  3. Create a new set of NuGet packages and a new Akkatecture NuGet organization. I'm of the belief that it's a best practice to always force users to opt-in to a new set of packages if the maintenance responsibility changes hands from one organization to another without the consent of the previous maintainer, as is the case here. It's just good package supply chain hygiene.
  4. Help the new maintainers migrate the website, discord et al, to resources that can be controlled by the Github organization. You might have to wait until https://akkatecture.net/ expires until you can re-use that domain, but in the meantime a Github pages URL should be fine.
  5. Petabridge would be happy to contribute some funds, if the other four steps are successful, to help cover miscellaneous costs for running the project. Happy to do that through whatever vehicle the maintainers choose via funding.yml

Per step 1, I still have some work to do defining our shared standards for Akka.NET: https://github.com/akkadotnet/akka.net/projects/7 - but that shouldn't take me too long. Reason I even bring that up: it's easier to start with a built-in model and then tear it down or modify it than it is to start with a blank sheet of paper when it comes to release management and development standards for components shared between development organizations. Making sure those standards are met across all releases of Akka.NET is what I spend about 80% of my engineering time doing.

If this sounds acceptable to members of the Akkatecture community, please say so.

Most importantly - who is interested in taking on the role of maintainer (i.e. you have full control over the successor GH organization) ? Please weigh in on the thread here. That's the most crucial step of this entire process - bringing people in from the community who desire to see Akkatecture move forward to help actually make it happen.

@SeanFarrow
Copy link

Hi,

I'm happy to help with this in any way I can as I have a major project that is using the system so would like to see it continue.

In terms of a roadmap, has any work been done on this, either in terms of what was planned, or what features the community would like to see?

Thanks,
Sean.

@malclear
Copy link
Contributor

malclear commented Sep 6, 2021 via email

@Aaronontheweb
Copy link

Aaron, I'd not given up hope yet on the community acquiring access to the original Github repo and domain by way of the family's legal access.

That's great to hear and definitely the best way to go about it.

@Aaronontheweb
Copy link

And thank you, @SeanFarrow - appreciate you stepping up to help

@SeanFarrow
Copy link

SeanFarrow commented Sep 7, 2021 via email

@malclear
Copy link
Contributor

malclear commented Sep 7, 2021

@SeanFarrow , it is on the website, but I'll link it here as well: Akkatecture Discord channel

@MarkusGeigerDev
Copy link
Author

Aaron, Malcom, Sean,

I am excited and thankful about your reactions to my Twitter post and I am glad that things seem to be moving in a good direction!
Coming from EventFlow, I have not used Akkatecture in a production system so far, mainly due to the lack of persistent projections/read models. I'd really like to get involved in this project, however, as I am still at a very early stages of getting my head around Akka.NET, I don't think that I can serve at a key position, like as a maintainer, at this point in time, but I am looking forward to learn from you guys and share my thoughts and I will happily help wherever I can!

@malclear:
Sean and Markus, I'll be glad to work with you. Are you on the Discord channel at this time?

Not yet, but I will join later today!

Thanks, again, to all of you!
Markus

@malclear
Copy link
Contributor

malclear commented Oct 15, 2021

I'd like to get this started now. I have been unable to make any headway with the friends and family of Lutando. A new organization will be required.
@Aaronontheweb , you'd mentioned that you could create a new Github organization for this purpose. I'd be happy to take an administrative role in that.
I will volunteer to be the maintainer. If someone else wants to make a case for themselves in that role, please step forward soon.

@Aaronontheweb
Copy link

Ok, thanks for letting me know @malclear - I'll help get this started.

Action Plan (New Akkatecture Maintainers)

  1. Decide on some goals / a mission for the Akkatecture project - i.e. "build the best possible event-sourcing system for Akka.NET," "build a scalable event sourcing system for any .NET user," etc... Ours for the Akka.NET project is to be a port of the original Akka project as we believe that their designs are proven and a helpful addition to the .NET ecosystem. Having this mission clearly stated will create alignment between the users, maintainers, and contributors. The Akkatecture readme already includes a semblance of this, so you could probably re-use most of that.
  2. Come up with a new naming system for the packages and the project itself - this will have to be communicated in order to migrate users across the hard fork. Unfortunately, there's already an Akkatecture Github organization owned by Lutando so it has the exact same ownership problem as his other repositories;
  3. Once you've settled on a new name create some communication channels: Discord, Gitter, Slack, Twitter, Github Discussions, etc... Make sure all of the maintainers have admin access.
  4. Begin work on migrating issues from the old repo to the new one - might be possible to script this.
  5. Work on a roadmap for what the future of the project should look like and what the most urgent priorities are. You can setup a formal communication cadence for doing this (i.e. regular meetings with contributors) or you can do it asynchronously with Github discussions, milestones, and projects.

There are other issues to consider later once the project matures (i.e. sponsorships) but I wouldn't broach those until the new fork actually has users and has several releases under its belt, as that's the most urgent and fundamental issue: winning the trust of the community and carrying on Lutando's work.

Action Plan (Aaron)

  1. Finish publishing Akka.NET's contributor standards - been working on it as part of internal knowledge documentation for Petabridge staff as well as Akka.NET's OSS contributors, I should be able to finish it in the next couple of weeks. This doesn't need to be a blocking issue but it's something I'm working on in the background in order to introduce repeatable processes that aren't passed on via oral tradition. You should change these if you don't like them for Akkatecture, but having a set of agreed-upon standards at the start of a project will help maintain good experiences for end-users: i.e. we're going to follow SemVer, we're going to test for breaking API changes, we're going to require users to add unit tests if they add new functionality, we have an automated release process, etc....
  2. Create a new Github organization, appoint @malclear, @SeanFarrow, @MarkusGeigerITD as administrators (full power over the org), create a new NuGet organization, appoint the same people to the same positions. Part of the standards you'll want to define is when you should add new users with write / commit access to the organization. We tend to do that rather informally in the Akka.NET project - people who show up regularly with quality contributions get an invite to our contributor meetings. If a member becomes inactive (i.e. years without a commit) we periodically remove their committer access. Access to our CI system / NuGet organization is only handed out to contributors who actually work on those systems. This is done is order to limit the possible surface area for compromise of our packages / software in the event that people's accounts get hacked or whatever.
  3. Work with the maintainers to establish CI/CD and other automated processes that should help enforce the standards - i.e. using an API approval system similar to Akka.NET's to manage SemVer issues. Someone on the maintainer team should become the "owner" of the CI system and work with me on the standards / technology choices here.
  4. When the fork is finally re-homed, the maintainers can remove me from the admin list, and I will help use Akka.NET's megaphone to promote the new project and start the process of attracting new and old Akkatecture users to it.

Timeframe for doing all of this: 1-2 months.

What do you think of this?

@CumpsD
Copy link

CumpsD commented Oct 19, 2021

Akkasourcing :D

@SeanFarrow
Copy link

SeanFarrow commented Oct 19, 2021 via email

@malclear
Copy link
Contributor

I have created a new Discord "Server" (or channel) that we could use for our preliminary conversations. I won't share the name here, but if you ping me through Discord I will invite you individually by way of that application. I am MalcLear#5589 there.
@Aaronontheweb , @SeanFarrow , @CumpsD , @MarkusGeigerITD

@michalSolarz
Copy link

@malclear hi, I'm interested in participating in that package maintenance. I've sent you an invitation on discord

@Aaronontheweb
Copy link

Sent you one as well @malclear

@malclear
Copy link
Contributor

@Aaronontheweb and @MarkusGeigerITD , I've sent you both invitations. They have a 7 day expiration that Discord puts in place.
I would like to start going over the topics that Aaron mentioned above, soon. The name of the Discord channel is what I have to suggest for the organization's name, but we can certainly consider others (that's why I've not shared it here as it is not final).

@Aaronontheweb
Copy link

Folks, we are getting back up and running again here: https://github.com/AfterLutz/Akkatecture

First place we could use some help from the community is getting Akkatecture issues / items that need attention open on the issue tracker: AfterLutz/Akkatecture#33

We're still getting things lined up but it's happening.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants