-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On Sun, Dec 08, 2024 at 09:06:00PM +0100, Marek Marczykowski-Górecki wrote: > On Fri, Nov 29, 2024 at 01:45:34PM +0100, Marek Marczykowski-Górecki wrote: > > Hi, > > > > We are looking for an additional documentation maintainer to help Unman > > - the current doc maintainer - with the task. The role mainly consists > > of reviewing and merging pull requests to the documentation, but > > sometimes it's also about writing/adjusting some parts. The person > > should be familiar with Qubes OS enough to be able to verify accuracy of > > proposed changes, but they don't need to know everything - it's okay to > > ask others in case of doubt. The important part is knowing when to ask :) > > Technically, it involves working with git (including signed tags), > > markdown files, and (hopefully very soon) reStructuredText (rst) format > > and Sphinx. > > > > Since the role includes push access to the qubes-doc repository, we > > expect this to be a person, that has already been participating in the > > community for a significant time[1]. > > > > We understand the value of well-maintained documentation, and to help keep > > it sustainable we can provide some remuneration for the maintainer from the > > funds we collect on OpenCollective. > > > > If you think you will be a good fit for this role, and would like to > > help the project, let us know. > > Thank you all who volunteered! We have received many more candidates > than we could hoped for, and it was not an easy decision to make. > After evaluating all the submissions, we still couldn't decided on one > person, so in the end we selected two additional maintainers: > > 1. Solène Rapenne (https://github.com/rapenne-s). She is an excellent > technical writer, earlier in the OpenBSD community, now in our. She isn't > here very long, but it's clear she is a reliable and trustworthy person > based on her past FOSS contributions. > > 2. m (https://github.com/maiska). She is contributing to Qubes OS's > documentation for a long time, mostly on the infrastructural level > (markdown files organization, adding language tags, Transifex > integration and many more). She also spent a lot of time preparing > migration to Sphinx / Read the Docs and knows a lot about all the tools > involved. On a more personal note, we have met in person on several > occasions, she is definitely a real person ;) > > I hope two additional documentation maintainers will allow us to move > forward with the documentation :)
And here is a bit of instructions how things work. M knows most of this already, but for completeness I'll write it anyway. It's a bit chaotic... but maybe it would be good to put that somewhere into the documentation? ;) But also, some of this is going to change with readthedocs migration. ## Repositories and branches There are 5 repositories: 1. qubesos.github.io - this is the main website repo. It has the other four connected via git submodules. This repository is hosted via github pages on www.qubes-os.org. 2. qubes-doc - this is the main documentation repo 3. qubes-attachment - extra files for docs (images etc) 4. qubes-posts - this is news/blog repo 5. qubes-hcl - hardware compatibility list You've got write access to qubes-doc, qubes-attachment and qubes-hcl (but that last one is least relevant for you for now). Now the important part: all pushes to the main/master branch on those repositories must have a signed tag on top. This means all the merges needs to be done locally via git command, _not_ via github's green button. There is a bot that verifies if new content has authorized signature on top, and if so, it updates relevant submodules in qubesos.github.io repo. The actual script is in _utils/update-submodules in that repo, it's also useful to update your local clone with one command that will verify relevant signatures. You can also find helpful git settings at https://www.qubes-os.org/doc/code-signing/#using-pgp-with-git All the repositories have both "main" and "master" branch. There is a bot that synchronizes them. Do not push to both manually, if you manage to do that, it may require manual intervention to fix things up. Force pushes are blocked for all of those repositories to both main and master branches. ## Pull requests and reviews Generally, changes should go through pull requests, even if you are going to merge them yourself - at the very least to give CI a go. But this is not enforced, and it's okay to skip PR for _really_ trivial changes. Since generally we try to not trust infrastructure too much, review should be done locally, and then post relevant comment in github's web interface. There is a helpful trick to fetch pull requests: git config --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*" Now, when you do `git fetch origin`, you will also get refs like origin/pr/123 with PR#123 content. Then you can review that (git diff, git checkout etc). If all is okay and you are going to merge directly, you can do that right away. If you want to request some changes, just click that through github's web interface. But there may be also cases where you want to approve changes but not merge them yet for any reason. Here, we have a helpful tool that posts a signed comment saying which commit specifically you approve (so, github can't lie about what content got approved): _utils/review-ok origin/pr/123 Optionally with a message in the second argument (remember about quotes, and don't try fancy formatting - the script is stupid and will likely choke on it). For this to work, you need to put github API token into `~/.config/hub`, in a syntax used by the "hub" tool. For example: github.com: - user: marmarek oauth_token: ghp_... protocol: https There is also second tool - _utils/review-verify that helps verifying such comment. ## CI All of the repositories have CI connected. When a PR is made, it takes it to a temporary branch, merges to master (so it always runs on what will end up in the final repository) and tries to build the website. If build succeeds, then it runs a spellchecker. To avoid manually building a dictionary with specific technical terms, it compares "bad" words with previous state (what is in the main branch). And it complains only about new "bad" words. If some reported spelling mistake is in fact false positive, simply merge that PR anyway, and it won't complain about that word next time. There are two+ useful commands you can use: - - PipelineRetry - retry the CI build, including refreshing the temporary branch with the new content from the main branch - - testDeploy - take most recent CI build and deploy to wwwpreview.qubes-os.org. It overrides whatever was deployed there before. To execute a command, simply post it as a comment (as the only word in the comment). Only some users are allowed to execute them - you both are. The second command works only when the CI build completes (you need to wait for that before posting the command). The website build must succeed, but it will still work if the spellchecker failed. There is a bit more about that here: https://www.qubes-os.org/doc/continuous-integration/ ### ReadTheDocs migration There is a lot to be said here, and several of the above points will get outdated. But as for the impact on the repositories layout, the current plan is: 1. Merge qubes-attachment repo into qubes-doc - at least as far as documentation-related files goes, other files may stay in qubes-attachment repo for now. That separation is mostly historic artefact, from the times we used Trac... and is quite inconvenient/confusing without clear benefit. 2. Convert all the documentation into rst format, more or less in a single commit (this enables git, in some cases, to treat this conversion as rename with changes, and nicely follow the file history). 3. Publish the qubes-doc repository on readthedocs, on a nice domain like doc.qubes-os.org (exact name TBD). 4. Disconnect qubes-doc from qubesos.github.io and replace _doc former submodule with a directory full of redirects to the new location of each doc page. You can see step 2 at https://github.com/QubesOS/qubes-doc/pull/1367 And step 4 at https://github.com/QubesOS/qubesos.github.io/pull/243 Both of the above PRs are outdated, but M has more up to date content somewhere on her repository. - -- Best Regards, Marek Marczykowski-Górecki Invisible Things Lab -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmdflBcACgkQ24/THMrX 1yz29wf/dkvwTkjBCi+OxhZbQB4LdMS7RmFtFSXDEtlG7dZ0J9EuBadFjeq8ZCaS BKpEDKc9gFsDT33wTg7eRWOuqaOt2AAGkxwBGX95EIufLqNrAgsYo7zLvZXeYVnr 5rnmlfGXqPzgN+Y7A/V9pFTQOsJ+gH1eXMdnHDJ5cG0+1K/kS6SKYw2H2/WdJBSh us/tX9NS644w5PSqQntkQ6RdiCCjqufgvnryATczfw68Y54mOYbw70IWanW3lpqa 5+99KsZbdTxuIkUZGWrwcZN4HsngBgmV732plCixAMBaw07PAh2ixy0cN83jXqRB IgGxxNAVdwxsH7nR7sHIxZ8UTppmyA== =wIi7 -----END PGP SIGNATURE----- -- You received this message because you are subscribed to the Google Groups "qubes-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to qubes-devel+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/qubes-devel/Z1-UFyjQFYfO5Re5%40mail-itl.