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

Create a team of maintainers #70

Open
VikashKothary opened this issue Jun 26, 2020 · 17 comments
Open

Create a team of maintainers #70

VikashKothary opened this issue Jun 26, 2020 · 17 comments

Comments

@VikashKothary
Copy link

Hey @tsudoko, Thank you for all your hand work.

I created https://github.com/ankicommunity/anki-sync-server to allow a team of maintainers to work together to help maintain the original anki-sync-server and other projects like it.

I recently found this project and can see all the hard work you've put into improving the original project. I want to offer my help and would love if you'd consider moving this project to our organisation. We're currently mirroring your repo but it would be great to have your say in upcoming improvements.

@kuklinistvan
Copy link

Hello there,

For me it sounds like a good idea to keep these projects under one umbrella, however, I'm a bit unexperienced with the technical consequences of moving the repository.

  • My greatest and most selfish concern is that having this Docker image under my account gives me some publicity which I would prefer to keep :) Maybe @tsudoko has a similar concern with their repository, who has a lot more work in the project than me.
  • The Docker image on DockerHub probably should be moved from my account too (kuklinistvan/anki-sync-server)
    • It is also true for SyncRedirector on AnkiWeb
  • I'm not sure how this change is going to affect the search engine results, as right now it looks like that it is quite easy to find the project
    image

All in all, for a start, you can definitely mirror our projects and I'm happy to merge back your modifications. I'm also ready to point to your fork in my README after I have merged back some changes and have tested it.

At this point, however, while I like the idea and I am happy for the initiative, I'm really not sure and I am really interested in @tsudoko's (and if they accidentally encounter this ticket, their contributors) opinion on it.

Thank you for your offer and for bearing with me! :)

@AntonOfTheWoods
Copy link

@tsudoko has been pretty quiet over the last wee while but I hope we see him back here soon!

I think the problem, as others in tickets here have pointed out, is that it has begun to get really hard to keep the server compatible with the clients. In the past, there was quite a lot of stuff that didn't need to be done because you could use the client code for doing server stuff. My impression is that originally the server and client had lots of common code but that slowly that has reduced. I think the idea might be to almost completely separate the code now. While that is obviously not a complete showstopper, I do guess it means a lot more work, and that there is no point updating the anki submodule any more. A lot of the python code is also being ported to rust, and that is also a reason for not updating, at least it is if you don't know rust or have the time to get comfortable with a new language. At 22 that is still fun, at 42 stuff you only do when you really need to!

And if you don't need any of the new anki/ankidroid features then why bother updating? It is a bit of a shame to not be able to keep it updated but the engineering cost without any sort of coordination with the anki maintainer seems to me to be pretty high. And he doesn't appear to have any interest in anyone who doesn't want to use his sync server. Which is strange, because I don't see how he makes any money out of it...

@kuklinistvan
Copy link

@AntonOfTheWoods Thank you for sharing your thoughts!

While I did not really look behind the scenes but I have noticed that too, that meanwhile Anki does not seem to gain a lot of new features (or I'm just really ignorant, easily could be), a lot of patch version numbers apparently break synchronization compatibility.

Unfortunately, I don't feel myself ready to contribute to the server project (timewise), therefore I've simply gathered a mostly up-to-date set of working versions, following mainly this repository.

At 22 that is still fun, at 42 stuff you only do when you really need to!

It is a bit of a shame to not be able to keep it updated but the engineering cost without any sort of coordination with the anki maintainer seems to me to be pretty high.

I hear you on this, although I'm now 22 :) Yeah, it is fun to try a new language, but I agree on that working code is not for free but for time spent on it, which is a sparse resource for everyone. It seemed like a good alternative until then to keep the working versions frozen and the instructions clean.

@genedan
Copy link

genedan commented Jun 30, 2020

Hey guys, I'd like to join in and help out whenever I have the time. I use this a lot and would definitely like to keep this going.

There was a class called httpsyncer that anki-sync-server mostly seems to use the code from:

https://github.com/ankitects/anki/blob/2.1.21/pylib/anki/sync.py#L469

It's since been deleted, but I would think that Damien would at least provide some info eventually on how to connect to AnkiWeb since certain applications with a lot of users like AnkiDroid depend on doing so, and that's written in Java so I would think other languages like Python would work too once we figure out how the syncing works. It could be worthwhile just chat with the AnkiDroid guys to get some tips since they might need to update their sync code as well.

and, @tsudoko, thanks again for all this!

@AntonOfTheWoods
Copy link

@genedan , it's definitely possible - it's all just code after all...

I would bet that the best way forward would be to start by bringing in the anki submodule code, doing a huge spring clean to get rid of absolutely everything that is not absolutely necessary, then once things are clearer do a huge refactoring turning the code into proper, "server-only" code. My bet is that it would be a mammoth effort, though if the anki maintainer has and was willing to share his suite of tests for validating his own server implementation then it would be relatively doable. That way we'd have a reasonable way of knowing we hadn't just created a monster.

I would definitely like to help out because ankisyncd is at the core of my project (PhD thesis) but I definitely don't have the bandwidth to do all of the above by myself, as the added value of keeping compatibility with the upstream anki clients is not that big for my project (the SRS clients are only going to play a minor part in the platform).

If someone manages to get in touch with the anki maintainer and get his opinion on the matter, I can hold off making changes to my compatibility/extension layer (which replaces sqlite with postgresql) and possibly commit to quite a lot of work on this project...

@VikashKothary
Copy link
Author

Thanks for everyone's contributions. My goal is the make sure that these projects as a whole get the attention they deserve.

@kuklinistvan That all sounds good. So I want it to make it clear that even under the ankicommunity organisation. The project will still be yours. The goal is to make sure you have the support you need and we can all align together.

@genedan I've tested the current sync server and it currently works with the latest client with a bit of tinkering. This makes me think that how Anki syncs hasn't changed that much. But having looked at the commit history, the actual code to sync has changed quite a bit.
I agree with @AntonOfTheWoods that the use of the anki submodule code is over complicating the server-side code and have created an issue (ankicommunity/ankicommunity-sync-server#14) to remove it.
I love the idea of reaching out to the anki maintainer to see if he's willing to share his tests so I'll take that as an action on my side.

P.S. @AntonOfTheWoods Please do share your PhD thesis once you're done. I'd love to read about what you're doing with Anki in research.

@kuklinistvan
Copy link

@VikashKothary Seeing this great activity, I think I'm getting sold. :) Is there a way I can move the repository into the organization so that the original GitHub link remains active or redirects the user to the organization repo? As an alternative, what if I place a "cap" on my repository (by modifying the README to a "moved" sign and a link), and we make the mirrored repository the official one?

Is there something for me to do on DockerHub and with the SyncRedictor mini plugin on AnkiWeb?

@VikashKothary
Copy link
Author

@kuklinistvan Glad to have you onboard :)

So what we've done for the original anki server, is just forked the repo and added a link to the fork in the README. In the future, we should change the fork into a standalone repo but that's not a major concern for me right now.
I've invited you to the organisation. I think the first step would be make all future issues are logged in the community repo.

You make a good point with the DockerHub and AnkiWeb deployments. I'm happy to keep them as they are but maybe we create issues to create community accounts for both and migrate them across?

@kuklinistvan
Copy link

@VikashKothary Thanks, I've joined the organization.

Is there a way I can move the repository into the organization so that the original GitHub link remains active or redirects the user to the organization repo? As an alternative, what if I place a "cap" on my repository (by modifying the README to a "moved" sign and a link), and we make the mirrored repository the official one?

So what we've done for the original anki server, is just forked the repo and added a link to the fork in the README. In the future, we should change the fork into a standalone repo but that's not a major concern for me right now.

Sounds good! What is the next step with the docker-anki-sync-server repository for me? Right now there is my repository and your mirrored one. My questions above are related to the docker-anki-sync-server repository.

You make a good point with the DockerHub and AnkiWeb deployments. I'm happy to keep them as they are but maybe we create issues to create community accounts for both and migrate them across?

Maybe I'll create a new issue on this later in the community repository for the record.

@VikashKothary
Copy link
Author

What is the next step with the docker-anki-sync-server repository for me?

@kuklinistvan Awesome. Could you update the README with a link to ankicommunity/docker-anki-sync-server. Then archive your repo so all new users will log issues in the new repo.

Maybe I'll create a new issue on this later in the community repository for the record.

Yes please. Thanks.

@kuklinistvan
Copy link

@VikashKothary Just before archiving, I checked ankicommunity/docker-anki-sync-server today - what permissions do I have there so far? From here it seems to be read-only.

@andizitek
Copy link

Hello! Can anyone help me with the setup of a Anki Server? That would be of great help! Thank you! What specifications do I need?
Thank you!
Andreas

@kuklinistvan
Copy link

kuklinistvan commented Jul 12, 2020

Hello! If you are familiar with Docker, you may follow the instructions in this repository:
https://github.com/ankicommunity/docker-anki-sync-server

For a "dockerless" installation, you may head to the README of this repository.

(I hope I didn't misunderstand your question)

If you have further questions or suggestions and it is not related to the topic discussed here, please open a separate ticket. Thanks and good luck!

@VikashKothary
Copy link
Author

@VikashKothary Just before archiving, I checked ankicommunity/docker-anki-sync-server today - what permissions do I have there so far? From here it seems to be read-only.

Hi @kuklinistvan, you're now an admin :)

@kuklinistvan
Copy link

@VikashKothary I've archived my repository and put a link to the new one.

Instead of communicating through this ticket, a chat may come in hand for quick correspondence, what do you think? Do any of you have experience with existing solutions?

@VikashKothary
Copy link
Author

@kuklinistvan Another contributor recommended creating a Glitter chat. Apparently it's popular with open source projects. Here is the link: https://gitter.im/ankicommunity/community. You can private message me there too.

@kuklinistvan
Copy link

@VikashKothary Great, thank you! :)

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

5 participants