@waifu The README should say; `This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-or-later).' (the comment at the end barely saves it, but there's no reason why any part should be ambiguous).
Many .py files are missing a license header (without a license header, it is extremely easy for the software and the license to get separated).
A contributing file is optional - advise how commits should be submitted is a good idea, but is not required.
For any nontrivial changes from someone else with copyright not assigned to the project or you, the copyright header of each nontrivially changed file would need to be adjusted to list the additional copyright holder if they haven't already added such (so copyright holders are not omitted) and git will store the rest of the information.
@waifu Here's a sample contributing file; Contributions are welcome with the following requirements; - Contributions need to be under the AGPLv3-or-later or under a compatible license. - Advise if there is a different license - for example if parts of a MIT expat library was copied, list the copyright holders so the license headers can be amended to comply with MIT expat. - Please add your name to the license header of any file you have made a nontrivial change to. - To avoid copyright infringement, LLM contributions are not accepted unless the original copyright holder(s) and the license(s) of all of the software that was copied from is provided.
@Suiseiseki@freesoftwareextremist.com One question, more on the terms of the copyright, I would prefer the software to only be AGPLv3-or-later, do i just remove the compatible license part? Also, is it okay to keep code written by others just like that? can someone else ask to change the license if they get mad or whatever?
@waifu >I would prefer the software to only be AGPLv3-or-later, do i just remove the compatible license part? Such requirement that the user submitting the commits is the copyright holder, would disallow incorporation of code copied from other projects licensed under MIT expat or GPLv3-or-later for example.
Even if some parts of the project were originally MIT expat or GPLv3-or-later (which the original code will continue to be under no matter where it has been), the project as a whole will always be AGPLv3-or-later, as that is what the AGPLv3 requires.
If you don't want people to submit their changes under GPLv3-or-later or MIT expat for no reason (to avoid the extra work adding the extra copyright header), you might want to add this extra requirement; - Contributions you are the copyright holder of need to be licensed under the AGPLv3-or-later.
>is it okay to keep code written by others just like that? can someone else ask to change the license if they get mad or whatever? Yes, it is okay to incorporate MIT expat or GPLv3+ code into a AGPLv3+ project - it just requires adjustments to the license headers to note the incorporation, the original license and the copyright holder(s) - which can get annoying.
If someone has licensed code under the AGPLv3-or-later, they cannot revoke that license on a whim (provided you follow the terms - it's only if you infringe the AGPLv3 that the copyright holder can choose to permanently terminate your license), or change the license on you (there are some oddly proprietary countries where it is possible to revoke and renegotiate any license after a decade (but not on a whim), but that is out of scope in this case).
A copyright holder can choose to license their works under different terms, but in the case that their work is a derivative work of other copyright holders works - they would need to come to an agreement with the other holders to do so.
No need. Being compatible with AGPL means that if someone shows up with a pull request under a compatible license or if there's a dependency under a compatible license then that code is also naturally covered by AGPL by virtue of the whole project being AGPL.
@sally@waifu Any incorporated code is under the original license, no matter where it has been.
For example, the changes to the software made to integrate MIT expat incorporated code would usually need to be licensed under the AGPLv3-or-later, due to such changes being a derivative work, but the copyright holder of the changes could choose to also license them under MIT expat.
If someone came along and deleted every single AGPLv3 part (bar the changes), then what remains would be all MIT expat (but people rarely or never do so, as that results in non-functional software that needs pretty much rewriting to get working).