Replies: 1 comment
|
Salut @elrido — thanks for taking the time! I worked through your suggestions and acted on all five over the past day:
Really appreciated the depth of the review — items 1–4 turned into small but real quality bumps, and item 5 has dotkeeper genuinely Alpine-native now. The submission to |
Uh oh!
There was an error while loading. Please reload this page.
Salut Julian,
Long overdue, I've finally reviewed your project, as discussed a few weeks ago. I'm not too much a Gopher, more of a Rustacian, so I can't comment much on the Go code itself, though I did see that you are using standard tooling in your CI workflow such as gofmt, go lint, go vet, govulncheck, among others.
All the useful and recommended markdown files are there, including README, LICENSE, SECURITY and CHANGELOG. I would not recommending to change the license and IANAL, but I understand that AGPL specifically addresses concerns regarding third parties turning your software into a SaaS service, without publishing any of their modifications. As far as I understand this tool, it relies on syncthing protocol without any modifications, so on your end a GPL would have been "libre" enough for a client. But AGPL doesn't hurt you in that regard, as long as your not striving for RMS-purist levels of free software standards.
I've only some very minor comments on the github action workflows:
https://github.com/julian-corbet/dotkeeper/blob/dce1591597664b0768e9cc2be640b34afaa8876a/.github/workflows/release.yml#L8-L9
Since this is a public repo, you can actually restrict the permissions granted to the GITHUB_TOKEN entirely, as all of the contents are read-only anonymously:
This only becomes an issue if you are using temporary private repos, for example when collaborating on security fixes.
Only learned of this recently, and given that all workflows already use minimal permissions, it may not be necessary, but it seems you can ask the checkout action to not keep the token used around. Maybe more of a defense in depth measure, in your case.
I'm not quite sure if this step is necessary, except if that user does show up in the coverage profile you upload as an artifact:
https://github.com/julian-corbet/dotkeeper/blob/dce1591597664b0768e9cc2be640b34afaa8876a/.github/workflows/ci.yml#L26-L29
As you offer a Makefile, you may want to add a "help" target that outputs each targets help text that you add after two hashes:
You already offer an Alpine Linux package (.apk) on each release. Given the release cadence, it may be easiest for you to get it published yourself directly into alpine testing and once established into community (so it will reach stable releases, too). You would need a user account on https://gitlab.alpinelinux.org/ and a fork of the aports repo into your personal account there.
abuild checksumto update the checksum in it andabuild -rwill then test-build a package, before you commit the changes and push them to a new branch.Let me know if this was the type of input you were looking for or if there are any specific areas you'd like me to take a closer look
All reactions