Commit graph

73 commits

Author SHA1 Message Date
d9bc197ff4 docs: don't compute rl-next.md during build
not sure why this was done the way it was considering that includes are
a feature the doc toolchain had previously. let's just always have some
kind of entry for the upcoming release in the dev manual builds even if
that means having a completely empty release notes chapter.

the release notes generation script isn't entirely functional right now
due to pre-commit hooks, but it's good enough for time being. we need a
better release process for notes anyway.

Change-Id: Ifda6912cf5233db013f72a30247a62d6f22b1565

Change-Id: I9eb347ec4aabc5be2b816ff0fd3e4be45f93b934
2024-04-09 02:09:36 +00:00
1e74bffd5c pre-commit check for pragma once and ///@file
This is in our style guide, we can cheaply enforce it, let's do it.

```
$ pre-commit
check-case-conflicts.....................................................Passed
check-executables-have-shebangs..........................................Passed
check-headers............................................................Failed
- hook id: check-headers
- exit code: 1

Missing pattern @file in file src/libexpr/value.hh

We found some header files that don't conform to the style guide.

The Lix style guide requests that header files:
- Begin with `#pragma once` so they only get parsed once
- Contain a doxygen comment (`/**` or `///`) containing `@file`, for
  example, `///@file`, which will make doxygen generate docs for them.

  When adding that, consider also adding a `@brief` with a sentence
  explaining what the header is for.

For more details: https://wiki.lix.systems/link/3#bkmrk-header-files

check-merge-conflicts....................................................Passed
check-shebang-scripts-are-executable.....................................Passed
check-symlinks.......................................(no files to check)Skipped
end-of-file-fixer........................................................Passed
mixed-line-endings.......................................................Passed
no-commit-to-branch......................................................Passed
release-notes........................................(no files to check)Skipped
treefmt..................................................................Passed
trim-trailing-whitespace.................................................Passed
```

Fixes: lix-project/lix#233
Change-Id: I77150b9298c844ffedd0f85cc5250ae9208502e3
2024-04-08 16:10:57 -07:00
06f17a5c78 release-notes: check with pre-commit
This required making the build-release-notes script understand how to
check multiple directories.

Change-Id: I057f5f636155ab6c6fb5755da5217b7e72249ece
2024-04-08 15:40:12 -07:00
860b34cf07 build-release-notes: support multiple PRs/CLs
Change-Id: I923e4af099d02d2324777cc9f7e6d38b130aac10
2024-04-08 15:29:19 -07:00
cfbcf12276 Format Nix code with nixfmt
Change-Id: I61efeb666ff7481c05fcb247168290e86a250151
2024-04-08 13:00:00 -07:00
7a1054fa5f repl: improve :doc builtin repl command to support lambdas.
For a long time `nix repl` has supported displaying documentation set on
builtins, however, it has long been convention to use Markdown comments
on Nix functions themselves for documentation. This exposes that
information to `nix repl` users in a nice and formatted way.

NixOS/rfcs#145 doc-comments are primarily what this feature is intended
to consume, however, support for lambda documentation in the repl is
experimental. We do our best effort to support the RFC here.

These changes are based on [the nix-doc library](https://github.com/lf-/nix-doc) and
are licensed under the terms described in the relevant source files.

Change-Id: Ic6fe947d39a22540705d890737e336c4720b0a22
2024-04-03 13:47:22 -06:00
2a98ba8b97 Add pre-commit checks
The big ones here are `trim-trailing-whitespace` and `end-of-file-fixer`
(which makes sure that every file ends with exactly one newline
character).

Change-Id: Idca73b640883188f068f9903e013cf0d82aa1123
2024-03-29 22:57:40 -07:00
412a9c9f67 Enable clang build timing analysis
I didn't enable this by default for clang due to making the build time
10% worse or so. Unfortunate, but tbh devs for whom 10% of build time is
not *that* bad should probably simply enable this.

Change-Id: I8d1e5b6f3f76c649a4e2f115f534f7f97cee46e6
2024-03-27 03:52:57 +00:00
279e30e7ef build: replace changelog-d with local script
hacking changelog-d to support not just github but also forgejo and
gerrit is a lot more complicated than it's worth, even moreso since
the entire thing can just as well be done with ~60 lines of python.
this new script is also much cheaper to instantiate (being python),
so having it enabled in all shells is far less of a hassle.

we've also adjusted existing release notes that referenced a gerrit
cl to auto-link to the cl in question, making the diff a bit bigger

closes lix-project/lix#176

Change-Id: I8ba7dd0070aad9ba4474401731215fcf5d9d2130
2024-03-27 03:09:14 +00:00
33da9c09c8 Issue importer: do not notify
This uses the forgejo patch we have for dont_notify on issue creation on
the api, and indeed does not notify, so we can simply run the script
safely :D

Fixes: lix-project/web-services#38

Change-Id: I86bcbf9b4499b439b79b82af84ee7df0f8eb3298
2024-03-23 19:03:34 -07:00
81be5eb7c6 issue importer: list issues that are *not* closed when finding existing issues
Turns out also, you cannot set the queue to 0 with any success. So we
really should just like, prevent notifications in forgejo itself.

Filed a bug for that:
lix-project/web-services#38

Change-Id: Ib96749f3159659182904963cab7b2ef88fc64442
2024-03-18 18:14:31 -07:00
3392020710 Forgejo issue importer
We needed a script to go yoink all the real NixOS/Nix issues from our
mirror into the Lix repo.

Change-Id: If8c8ebfb58634c675eae450454c0189288c6b18a
2024-03-16 00:22:33 -07:00
e8a488236c Merge pull request #9393 from hercules-ci/changelog-d
Automatically compile hand-written release notes with `changelog-d`

(cherry picked from commit 928f0c13414d20c1af88b30bd6700fd730ee0bab)
Change-Id: Ia0685835c52edf185b64dd696b19305746c077e5
2024-03-04 07:11:19 +01:00
Valentin Gagarin
b6e74ea5a8
maintainers: add note on marking PRs as draft
as discussed with maintainers team
2023-06-19 10:55:34 +02:00
Eelco Dolstra
76e032bcf8 Upload the manual to releases.nixos.org
Fixes #8451.
2023-06-06 15:37:26 +02:00
Eelco Dolstra
d14f993a76 Fix MIME type 2023-06-06 14:03:24 +02:00
Eelco Dolstra
42e908a308 Upload fallback-paths.nix as part of the release
https://github.com/NixOS/nixpkgs/pull/235463
2023-06-06 13:56:43 +02:00
Eelco Dolstra
ebed259768 Bump version 2023-05-31 17:09:38 +02:00
Eelco Dolstra
f3a88857b4 maintainers/upload-release.pl: Don't update nix-fallback-paths.nix 2023-05-30 11:49:59 +02:00
Valentin Gagarin
feb2200ba6 use headings instead of list items
this allows easier linking and a provides a bit more visual clarity
2023-05-02 11:30:27 +02:00
Valentin Gagarin
521cca1840 add procedure for 'idea approved' label 2023-05-02 11:28:03 +02:00
Théophane Hufschmitt
1707e7ea5f
Merge pull request #7579 from fricklerhandwerk/review-process
review process: all PRs must be triaged
2023-04-05 01:57:17 +02:00
Valentin Gagarin
f912ab89cc only triage non-trivial pull requests
the team perceives triaging literally everything as too much overhead,
and there is a desire to allow for more parallel action.
2023-04-05 01:27:15 +02:00
Valentin Gagarin
6c651599b0 review process: all PRs must be triaged
in order to make the development process more transparent for everyone,
all pull requests should go through the triage process before getting
merged.

this ensures that all team members are aware of what is going on, and
that rationale for decisions is kept track of in the meeting notes for
posterity. (ideally all that should go into the commit history, but this
is a more invasive process change that needs further deliberation.)

having all team members take at least a brief but conscious look at each
change may also help with keeping our quality standards, as more
reviewers are more likely to remind each other of our shared values.
2023-03-28 11:51:57 +02:00
John Ericson
95dabbadd8 Prioritize testing in the maintainers process docs
PRs that don't increase our ongoing obligations (i.e. by adding new
features) but do increase test coverage of existing features are good
things to merge for the health of the project, and thus good to
prioritize.
2023-03-16 22:27:46 -04:00
Valentin Gagarin
d9f60ffb81
Merge pull request #7534 from fricklerhandwerk/maintainers-goals
add objectives and tasks for Nix team
2023-03-13 14:01:15 +01:00
Eelco Dolstra
02bf521968
Merge pull request #7580 from fricklerhandwerk/nix-team-add-john
add @Ericson2314 to the Nix team
2023-03-06 15:02:07 +01:00
Eelco Dolstra
378508a877 Bump version 2023-03-02 10:01:24 +01:00
Valentin Gagarin
164a5e2629 incorporate feedback from maintainers 2023-02-24 15:05:31 +01:00
Valentin Gagarin
a556143dc1 add objectives and tasks for Nix team
so far there were no even remotely measurable objectives, only a general
purpose statement.

this change is intended to focus the team's work on what I (and many
others I talked to) perceive to be the main pain point in the
development process.

Co-authored-by: solene.rapenne@tweag.io
2023-02-24 09:50:06 +01:00
Eelco Dolstra
92611e6e4c
Merge pull request #7412 from edolstra/release-process
Document the release process
2023-02-24 09:13:46 +01:00
Robert Hensing
40d8955b89
Apply suggestions from code review
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2023-02-08 00:24:28 +01:00
3272a2d26f maintainers: Document backporting quirk
Closes #7623
2023-01-18 12:16:27 +01:00
Valentin Gagarin
7de8af526e state priorities in triaging and discussion process
based on

- Nix team decisions
  https://discourse.nixos.org/t/2022-11-11-nix-team-meeting-minutes-7/23451#planning-discussion-1
  https://discourse.nixos.org/t/2022-12-02-nix-team-meeting-minutes-13/23731#discussion-3

- proposal to deal use labels more effectively

  https://discourse.nixos.org/t/improving-nix-developer-experience/21629

- documentation team decision to foster gauging interest using upvotes

  https://github.com/NixOS/nix/pull/7387
2023-01-12 19:33:41 +01:00
Robert Hensing
5c0d3b476f
release-process: Add "create a backport label" 2023-01-12 00:19:18 +01:00
Valentin Gagarin
2d0210472a add @Ericson2314 to the Nix team
John has been part of every meeting since the beginning.
He took on a lot of work on behalf of the team, and provided useful suggestions in discussions, advocating for stability, reasonable design decisions, and maintainable code.

He was in general highly productive within the team process, and repeatedly helped us to keep focus on our stated goals.
Specifically, early on he suggested to gather more experience with the team reviews in order derive our values for the project encode a more structured approach to guiding contributions, which is slowly bearing fruit these days.

John is already the contributor with the most code changes to date (only topped by principal author Eelco), and is well-known to be highly knowledgeable about both high-level design and low-level internals of the code base.
He has continued to offer high quality work during the team's operation, which resulted in many pull requests getting merged that further the team's goals.

It is due time for John to be come an official team member and be granted merge access that he will surely exercise with the great care he is known for.
2023-01-11 10:00:04 +01:00
Eelco Dolstra
6eed1325ff
Apply suggestions from code review
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2022-12-12 17:04:06 +01:00
Eelco Dolstra
acb69a7beb
Apply suggestions from code review
Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2022-12-07 13:29:50 +01:00
Eelco Dolstra
27392a3b48 More tweaks 2022-12-06 17:46:42 +01:00
Eelco Dolstra
31e3c7d6fd Mention Discourse 2022-12-06 17:07:51 +01:00
Eelco Dolstra
758c2fdbfe
Update maintainers/release-process.md
Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
2022-12-06 15:27:45 +01:00
Eelco Dolstra
f2b9e1f8cb
Update maintainers/release-process.md
Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
2022-12-06 15:26:26 +01:00
Eelco Dolstra
98364a0df2 Mention milestone 2022-12-06 14:33:12 +01:00
Eelco Dolstra
aaef82e192 Document the release process 2022-12-06 14:12:05 +01:00
Eelco Dolstra
8fc9a4e583 Remove GPG-signing of releases
This makes it easier for others to make releases, and probably few
people care about GPG signatures anyway.
2022-12-06 14:00:38 +01:00
Eelco Dolstra
647e60b356
maintainers/README.md: Use CET 2022-12-05 16:35:25 +01:00
Eelco Dolstra
67d76cb8df
Fix typo 2022-12-05 16:34:39 +01:00
Valentin Gagarin
44dc5c6c13 reword 2022-11-21 15:13:19 +01:00
Valentin Gagarin
a4af966d5d add maintainers' handbook
write down the process we have been developing and following so far.

Co-Authored-By: Théophane Hufschmitt <theophane.hufschmitt@tweag.io>
Co-Authored-By: John Ericson <John.Ericson@Obsidian.Systems>
2022-11-21 14:35:01 +01:00
Eelco Dolstra
9bc03adbba
Integrate push-docker.sh into the release script
This also makes sure that we get the Docker images from the same Hydra
eval, rather than the latest build from job/nix/.../dockerImage, which
may not be the same.
2022-02-18 13:58:01 +01:00