borgbase / vorta

Desktop Backup Client for Borg Backup
https://vorta.borgbase.com
GNU General Public License v3.0
2.03k stars 135 forks source link

Google Summer of Code 2023 Discussion #1575

Closed m3nu closed 1 year ago

m3nu commented 1 year ago

Ideas page is now a Wiki:

https://github.com/borgbase/vorta/wiki/Google-Summer-of-Code-2023-Ideas

m3nu commented 1 year ago

@sten0 , is Debian doing GSoC this year? Does it make sense to add Borg or Vorta via them? Since my company applies for the first time and I'm not sure it will be accepted. We're also not directly related to Borg, but could make sense via Debian. We'd need to talk to Thomas about suitable tasks for contributors. But I'm sure he could use the help for v2.

m3nu commented 1 year ago

@ThomasWaldmann, would you be open to having GSoC contributors work on Borg? Or know anyone from an umbrella organization that's applying? I could mentor them. @real-yfprojects and @witten maybe too. You could even apply as Waldmann EDV to increase our odds of getting accepted with some project.

ThomasWaldmann commented 1 year ago

@m3nu I'm ok with that, but I don't want to mentor or administrate personally, but rather work on borg2.

(I can help as "2nd level support" on PRs, of course.)

m3nu commented 1 year ago

No problem. I'll mentor. Already did it in 2018. Will see to get some spots for contributors first.

witten commented 1 year ago

I'd certainly be open to it if anyone's interested.

m3nu commented 1 year ago

Great! First step is to haven an org that's accepted. I applied with my company, but there are also umbrella orgs that get more contributor spots.

After that interested contributors (mostly CS students) apply to projects and get paid a small stipend by Google to work on a FOSS project. Mentors get a t-shirt. 😄

real-yfprojects commented 1 year ago

There is a mentor guide from google. I can mentor one vorta contributor. They guide states that we should request one slot per 2 mentors.

Since my company applies for the first time and I'm not sure it will be accepted.

A elaborated and well prepared application will be key to that. I think we should discuss the contents here.

more ideas

m3nu commented 1 year ago

They didn't ask for too much. I linked to this thread for ideas.

I'll invite you as mentor. Just share me the email to hello@borgbase.com

ThomasWaldmann commented 1 year ago

@m3nu Umbrella org could be Python (PSF) maybe.

m3nu commented 1 year ago

@m3nu Umbrella org could be Python (PSF) maybe.

Excellent idea! Already emailed them to apply as PSF sub-org: https://python-gsoc.org/mentors.html#sub-orgs

m3nu commented 1 year ago

All applications are out. Applied directly as BorgBase, and with PSF (not public yet) and Debian as sub-org.

From what I understand, Google will pay a stipend to both students (also called contributors or interns) and mentors that are accepted. If we join under Python (PSF) or Debian they will use the mentor stipend for their work (which is great!). If BorgBase gets accepted, I'd pass it to the Borg project somehow. In any case, it's better to have more mentors. So if there are regular contributors to the Borg or Borgmatic projects, we should reach out to them too. We could also reach out on Reddit, since there are close to 1000 members there that would possibly see a post.

Open questions and tasks:

We also need good project management, since students will work remotely. I like the Kanban boards Thomas already uses (e.g.) and we should let them write weekly microblog-style updates (as the PSF does). I'd make sure this is all set up properly and students know what to work on.

Hofer-Julian commented 1 year ago

I can co-mentor, especially if the money goes to PSF or borg. However, there will be a couple of weeks where I will be completely unavailable. I also would only be able to mentor a subset of the mentioned tasks.

m3nu commented 1 year ago

Thanks! That's still very helpful.

real-yfprojects commented 1 year ago

I can co-mentor, especially if the money goes to PSF or borg. However, there will be a couple of weeks where I will be completely unavailable. I also would only be able to mentor a subset of the mentioned tasks.

In that time others can do the mentoring. This is encouraged by Google. Since all communication should be made public this is also easily possible.

ThomasWaldmann commented 1 year ago

@m3nu Yes, you could add me as admin (but think of it rather as a fallback / backup).

witten commented 1 year ago

This all sounds good, and thanks for spearheading @m3nu.

Any regular contributor you on Borgmatic and Borg that may want to be mentors?

The main candidate that comes to mind is @grantbevis due to his excellent work on docker-borgmatic.

m3nu commented 1 year ago

Yes, definitely a fallback. Let's first see how we end up joining.

Attracting students with Docker and devops skills could be good. Would you want to be a mentor, @grantbevis and are there possible tasks? The devops part could cover ansible-role-borgbackup and testing setup as well.

@witten, do you have any suitable tasks in mind? I'll add them above. The PSF suggests to have a few beginner tasks and some advanced.

ThomasWaldmann commented 1 year ago

https://github.com/borgbackup/borg-import/ there could be some easy tasks, like importing from misc. other backup tools to borg.

(the problem with such code is that every person only needs it once, so a lot of people do some sort of custom quick hack, but do not engage as a contributors for a more generic / cleaner / long term approach)

witten commented 1 year ago

@witten, do you have any suitable tasks in mind? I'll add them above. The PSF suggests to have a few beginner tasks and some advanced.

I'm going through and tagging tickets with a "good first issue" label for this. More to come there; there are a lot of open issues.

m3nu commented 1 year ago

Great! Linked those. Later maybe we emphasize 2-3 important ones.

m3nu commented 1 year ago

https://github.com/borgbackup/borg-import/ there could be some easy tasks, like importing from misc. other backup tools to borg.

I didn't know this exists. 😄 But sure, let's put it there. It's definitely isolated and simple to test.

real-yfprojects commented 1 year ago

This article seems to be important for writing an ideas list that gets accepted.

When Google Administrators review the hundreds of organization applications the primary thing >they look at is the quality of the Ideas list. An Ideas list should follow these guidelines:

  1. Each project on the Ideas list should include: a) a project title/description b) more detailed description of the project (2-5 sentences) c) expected outcomes d) skills required/preferred e) possible mentors f) expected size of project (175 or 350 hour). And if possible, an easy, medium or hard rating of each project.
  2. Projects should take ~175 hours or ~350 hours for GSoC contributors to complete. We understand some GSoC contributors will take less time (if they have more knowledge of the topic or codebase) while others could spend more time. It is also possible that a given project idea could be 175 hours or 350 hours depending on the scope of the idea. If the GSoC contributor proposes to do a smaller scope of the idea then it might be a 175 hr project versus if they propose doing more work with their proposal it could be a 350 hour project.
  3. Have multiple ideas. Even if you are a new organization and only want one or two GSoC contributors showing that you have multiple ideas (a bare minimum of 4 solid ideas) is vital. And for an organization hoping for 4 or more GSoC contributors you should have at least 8-10 ideas and having them categorized is a nice touch if you have subcategories of topics within your project.
  4. Make it easy for Administrators to find your Ideas list. When reviewing many hundreds of organizations Program Admins can only spend a certain amount of time looking for your Ideas list. Many organizations are rejected because Program Admins couldn’t find the actual Ideas list because the URL the org gave had a bunch of other unrelated information on it and wasn’t clear where to find the actual Ideas list.
  5. Make sure to update your Project Ideas. Even if you plan to use some of the ideas that weren’t chosen from a previous year at least put effort into changing the page to say 20XX Ideas list. It is not encouraging for Program Admins to see an outdated list. It also makes it seem like your project might be stale as you don’t have new ideas for GSoC contributors to work on if it still shows ideas from the previous year or even two years before and is marked as such.
  6. Never link to just a bug tracker. This is almost always an automatic rejection. Yes, really. When Admins open the issue tracker if there is an expanded description of the project with the items listed in point 1 above that is acceptable. If an org can’t take the time to create a document or a page with their Ideas List fleshed out then why would Google expect they would be willing to mentor GSoC contributors for 3+ hours a week for the next 3 months?
  7. Don’t be vague about the ideas. Be sure to write a few sentences describing what you need accomplished and not just an overall theoretical version of what you might want.
  8. Be sure the URL you link to for your Ideas list works. Have someone else test it as well before you submit your application. Sometimes people don’t have permissions set correctly or paste an incorrect URL which will also mean a rejection.
m3nu commented 1 year ago

Point taken. I've moved this to a Wiki, so everyone can add to it and it looks more permanent.

https://github.com/borgbase/vorta/wiki/Google-Summer-of-Code-2023-Ideas

m3nu commented 1 year ago

I've expanded on the Vorta tasks.

Maybe you also let me know the main issues you'd want to see expanded, @witten and @ThomasWaldmann. 🙏

Hofer-Julian commented 1 year ago

Point taken. I've moved this to a Wiki, so everyone can add to it and it looks more permanent.

https://github.com/borgbase/vorta/wiki/Google-Summer-of-Code-2023-Ideas

This looks good! Regarding running backups as root: I assume this would be a Linux-only feature? Might be good to clarify that. This is also the only task where I would be unsure what's the best way to implement this.

m3nu commented 1 year ago

Also not sure on the root thing. I think it would need some testing and catching errors on a Linux desktop.

grantbevis commented 1 year ago

Yes, definitely a fallback. Let's first see how we end up joining.

Attracting students with Docker and devops skills could be good. Would you want to be a mentor, @grantbevis and are there possible tasks? The devops part could cover ansible-role-borgbackup and testing setup as well.

@witten, do you have any suitable tasks in mind? I'll add them above. The PSF suggests to have a few beginner tasks and some advanced.

I’d have to look into this but sure I’d love to be involved. Thank you for the mention @witten

I’m happy to mentor on any aspects of DevOps, do we need to submit workshop ideas to google? I’m currently on mobile and need to read the full information/thread still

m3nu commented 1 year ago

I’m happy to mentor on any aspects of DevOps, do we need to submit workshop ideas to google? I’m currently on mobile and need to read the full information/thread still

Thanks for stepping up! Yes, it would be great if you can write up a few tasks in 2-3 sentences. Anything you deem suitable and well-defined. Could also be testing.

m3nu commented 1 year ago

Expanded on the more obvious Borg and Ansible tasks:

https://github.com/borgbase/vorta/wiki/Google-Summer-of-Code-2023-Ideas

witten commented 1 year ago

@m3nu Looks like I don't have perms to edit that wiki page..? I'm happy to expand/highlight the borgmatic issues there. Thanks.

EDIT: Or if you prefer, I can send you the issues/descriptions.

m3nu commented 1 year ago

Right... Added you to the repo. Let me know if you see an edit button on the page now.

witten commented 1 year ago

Yup, thank you!

grantbevis commented 1 year ago

@m3nu / @witten - Here are some ideas for some project work for the docker portion of the borgmatic project;

This has been a point of confusion for users for many years and recently we started including apprise which fulfils the duty of both msmtp and ntfy in a simpler package

A recentish request to have a minimal no-frills base image and then an extended docker image with more tools included. I think we would also include the ability to provide a variable containing a string of additional packages users would like installed. This would then be processed during entry.sh and install any additional tools users wish.

Might be worth investigating if we could run the borgmatic unit/integration tests using the docker-borgmatic image as I don't think it does currently @witten ?

Those are the the ideas I can think of off the top of my head, if I think of any more I will report back to this thread 👍🏽

m3nu commented 1 year ago

Happy to report that the PSF has accepted our application as sub-org. 🎉

You are receiving this email because you applied as Borg Collective for GSoC with Python Software Foundation for GSoC 2023. You application has been reviewed and has been accepted.

Thanks to everyone here who provided input at the last minute on the day before the deadline. 😄 You can already see the "Borg Collective" on their ideas page.

So what happens next?

m3nu commented 1 year ago

Thanks for the tasks, @grantbevis. Already added them to the wiki. I like how @witten added hours and difficulty. We should probably add this to all major tasks and prioritize them too.

Also, @grantbevis , please share your email privately to hello@borgbase.com, so I can add you as mentor on the PSF site.

grantbevis commented 1 year ago

@m3nu, Email sent just now; Thank you!

ThomasWaldmann commented 1 year ago

About docker within the borgbackup/borg project: i do not use docker, that's why it is not in there.

The reason why platform testing uses VMs (and not docker or other containers) is that it needs to run on very different OSes: misc. linux dists, misc BSDs, openindiana. Some stuff might actually depend on kernel and OS specifics. Currently some work is being done on native win32 support, so that might come as a VM at some time also (currently just done via github CI).

m3nu commented 1 year ago

Yeah, I know the issue. I didn't put it as task for that reason. The Docker stuff is just for the Borgmatic image for now. QEMU may be a lighter alternative to Virtualbox at some point. Lima may make it work.

real-yfprojects commented 1 year ago

I would like to have a few sentences about our user bases: number of installs, server and desktop users

I also found this resource from PSF. It suggests pointing to easy bugs to try out for interested contributors. I will expand the Getting Started section to include those as well as some more details about the path to writing an application which I will adopt from the PSF.

Hofer-Julian commented 1 year ago

I would like to have a few sentences about our user bases: number of installs, server and desktop users

Good idea.

The platform is also of importance for the students. Vorta only works on macOS and Linux, so they would have to have a machine available with one of these operating systems if they don't want to work in a VM. Borg also still requires a Unix-like operating system, as far as I can see. But maybe there WSL would be enough?

m3nu commented 1 year ago

Doing a simple PR should be part of the application. Else we can only look at the name of the university.

Vorta in WSL is possible but I wouldn't recommend it. Maybe easier to work on the CLI repos in this case.

real-yfprojects commented 1 year ago

@witten We should link https://projects.torsion.org/borgmatic-collective/borgmatic instead of the github repo, don't we?

Hofer-Julian commented 1 year ago

Vorta in WSL is possible but I wouldn't recommend it. Maybe easier to work on the CLI repos in this case.

Yes, it probably wasn't clear in my message, but I also was thinking about borg, borgmatic and docker when it comes to WSL.

m3nu commented 1 year ago

Yeah, there could be some suggested skills near the "Technologies" part to avoid any misunderstanding. Maybe good because Python is used for so many things these days.

real-yfprojects commented 1 year ago

We should also require potential contributors to have basic knowledge of git and the (programming) languages required.

I also found this resource from PSF. It suggests pointing to easy bugs to try out for interested contributors. I will expand the Getting Started section to include those as well as some more details about the path to writing an application which I will adopt from the PSF.

Added that. Feel free to improve upon the paragraphs I have written.

m3nu commented 1 year ago

We got some feedback on our ideas page. Pretty much what we had planned to add anyways:

m3nu commented 1 year ago

For 1., maybe we change the formatting to have like a title and bold attributes. Will be easier to read than a list and we have fewer tasks anyways.

m3nu commented 1 year ago

Done expanding and editing. Please have a look and feel free to expand or correct.

https://github.com/borgbase/vorta/wiki/Google-Summer-of-Code-2023-Ideas

m3nu commented 1 year ago

Made sure every task has 2 possible mentors, since that's a requirement. Details to be figures out, once we see the level of interest for different tasks.

ThomasWaldmann commented 1 year ago

About the borg tasks: