We implemented Swapdoodle and would like to contribute it

Hello, me and my friend have implemented Swapdoodle and it’s very close to completion. The note relaying is functional, and the only things that are left to do are code cleanup and ironing out a few minor issues.
Would it be possible for us to work with you on this? We’d be delighted to see Swapdoodle back one day and hope we could perhaps help with that.

GitHub repo: GitHub - SwapdoodleRevival/hpp-server
Mastodon post with screenshots: Charlotte (@CenTdemeern1) | Eepy Moe

14 Likes

Interesting work, just seen your post in my timeline from a boost. I’ll mention it to some developers and see what they think about it, well done!

4 Likes

This is amazing! Congratulations on such efforts, I really hope this can be recognized by Pretendo!

1 Like

Awesome stuff! Always lovely to see people making use of our tools to build new things! A few notes:

  • I see you mentioned wanting to contribute the server. We don’t typically accept contributions in the form of full servers, for various reasons (larger review processes, copyright/ownership hoops to jump through, we sometimes have our own schedule for when we want to work on projects, etc.). We only tend to make exceptions to this in cases where we’re taking over a project, such as how we took over Archiverse as the original maintainers could no longer do so
  • That being said, there IS already a Swapdoodle server we plan to release/work on. Dani already started GitHub - DaniElectra/swapdoodle: Swapdoodle HPP server on his own prior to joining our team officially, and the intentions were to move his repo into the org at some point since he’s now part of the core team. The existing repo is pretty old, as we have been working on other things since then, but that was always the plan
  • The fact that there is already a “Pretendo Swapdoodle” server repo is actually a good thing in this case, as it means that you can get around the “we don’t accept full servers as contributions” stance we have, since now this can be treated as normal contributions! The contributions would be PRed into the existing repo, so we can do standard review processes and things like licensing and such is maintained properly. That can happen either now, or later after we’ve merged the repo into the org. It’s a little annoying because it means making a new fork and bringing over your changes there, but that’s the ideal way to do things here (I don’t blame you for not knowing about the existing repo)

You may also be interested in this issue/PR, as they are relevant to Swapdoodle:

6 Likes

Hi, thank you so much for the warm response :smile: Honestly, I was expecting a sorta “that’s neat, but we can’t accept it” response, so it was a relief to see that we can contribute.

We actually did notice Dani’s repository - that was yesterday, a few hours before we got our server to work… We’ll need to take a closer look at the state it’s in and coordinate our PRs in some way - sending over our entire repository in one mega-PR wouldn’t be fun for anybody involved. (Though we can totally do that if that’s not a problem!)

What do you suggest we do now? Should we wait for the changes in the NEX libraries, or is it okay if we PR our work now? Similarly, should we wait for Dani’s repo to be moved to the org? As things stand right now, Swapdoodle is still theoretically his project; perhaps it would be better to wait so it’s not all up to him to review/merge our changes. All of this is super exciting and I can’t wait to start working on it, I just don’t know where to start.

Thank you!

1 Like

As unfun as it may be, this is likely the best way right now. It will be a big PR, but we’ve been doing large-scale upgrades to our servers recently anyway which would be of a similar size. So it’s not a huge deal right now

It should be okay to PR your work now. The issue I linked in nex-go hasn’t been started yet, so it shouldn’t be a blocker. As for the PR in nex-protocols-common-go I linked, you can use Go workspaces to manage things locally. Using a go.work with the replace directive, you can make an import to a local location without changing the import. Doing so will let you target my linked PR even before it’s merged. As an example, the go.work file I use for the linked PR is:

go 1.23.0

toolchain go1.23.6

use .

replace (
	github.com/PretendoNetwork/nex-protocols-go/v2 => ../nex-protocols-go
)

I’ll shoot Dani a message on our side with a link to this post to see if he wants to merge the repo over or just add someone else to the repo for now to handle reviews, etc. But it shouldn’t be a problem. Most likely we’d just move the repo now

3 Likes

@silver_volt4 @CenTdemeern1 Dani has officially moved the repo to our org. He’s confirmed that the existing repo is mostly stubs, so a “big PR” is the only way to go

The proper way forward now would be:

  • Make your work a new fork of the existing repo
  • Use a Go workspace to make use of the unmerged DataStore PR in the common protocols repo
  • Update your PR to make use of the new changes in the common protocol

That way everything stays in order on our end, your server is brought up to the modern layout of our servers, and we verify that the common PR works with Swapdoodle

4 Likes