* Retrieves previous 7 days of contributions by default
* Checks all repos under the `nushell` user - Reports against the most
recent (up to 30, and we currently only have 26) with updates.
* Uses the GitHub client to authenticate if available, with fallback to
a token, then username/password
* Cleans up a lot of the URL building using more recent Nushell
commands.
When I updated nu to 101, the completions of poetry failed because of a
missing `:`
this
```nu
def "nu-complete poetry python-versions" [] nothing -> list<string> {
```
for this
```nu
def "nu-complete poetry python-versions" []: nothing -> list<string> {
```
Fixed a couple of places and some other parser issues
- [x] fixed typo: `table-of-content` in the backreference
- [x] missing sanitization of `_`,`+`,`.`,`?` etc.
- [x] handling the confusion of h1 `#` and comment `#`
Renames the `Changes to commands` section to just `Changes`. As such,
the breaking changes section is redundant since `Changes to commands`
already has a breaking changes subsection.
At some point this broke, just committing a fix I've had on my personal
computer for a while.
```
# This week in Nushell #261
## Nushell
Error: nu:🐚:name_not_found
× Name not found
╭─[/home/reilly/github/nu_scripts/make_release/this_week_in_nu_weekly.nu:36:48]
35 │
36 │ for user in ($site_json | group-by user_login | transpose user prs) {
· ─────┬────
· ╰── did you mean 'user.login'?
37 │ let user_name = $user.user
╰────
```
Having the the main branch listed in the checkout command:
```nushell
git -C $repo checkout -b $branch nushell/main
```
Made my git to track against the main branch, causing it to push to main
instead of a branch. Removing the branch fixed the problem:
```nushell
git -C $repo checkout -b $branch
```
- Removes the note about installing the dataframes feature.
- Moves the command changes section to the top level, renames some sub
sections, and adds some more sub sections.
- Moves and simplifies the hall of fame.
This PR is part of porting all old scripts #221 and ports `make_release`
folder
## Summary
### make_release/this_week_in_nu_weekly.nu
This script has already been ported and has received some updates: #433.
So I just removed it
```yaml
from: before_v0.60/make_release/this_week_in_nu_weekly.nu
to: make_release/this_week_in_nu_weekly.nu
functions:
do-work: make_release/this_week_in_nu_weekly.nu:1:query-week-span
```
### make_release/this_week_in_nu_release.nu
I have ported this, but I'm not sure if we need it because it has
strange name and we have `prs.nu` and `make_release/release-note/`
```yaml
from: before_v0.60/make_release/this_week_in_nu_release.nu
to: make_release/this_week_in_nu_release.nu
functions:
do-work: make_release/this_week_in_nu_release.nu:1:do-work
```
### make_release/nu_release.nu
This has already been ported to `make_release/nu_release.nu` and has
received new updates #828 so I just removed it
```yaml
from: before_v0.60/make_release/nu_release.nu
to: make_release/nu_release.nu
```
### make_release/gen-js-ext.nu
This has already been moved to `make_release/gen-js-ext.nu` and has
received new updates #621 but not completely ported so I have ported it
- pipeline `for` to `each`
- `$nu.scope.commands` to `scope commands`
- explicit `print`
```yaml
from: before_v0.60/make_release/gen-js-ext.nu
to: make_release/gen-js-ext.nu
functions:
gen_keywords: make_release/gen-js-ext.nu:1:gen_keywords
gen_sub_keywords: make_release/gen-js-ext.nu:20:gen_sub_keywords
```
### make_release/gen-ts-ext.nu
I have ported this script
```yaml
from: before_v0.60/make_release/gen-ts-ext.nu
to: make_release/gen-ts-ext.nu
functions:
gen-ts-cmds-begin: make_release/gen-ts-ext.nu:1:gen-ts-cmds-begin
gen-ts-cmds: make_release/gen-ts-ext.nu:18:gen-ts-cmds
gen-ts-subs: make_release/gen-ts-ext.nu:40:gen-ts-subs
```
I used [typos](https://github.com/crate-ci/typos/).
I manually checked all the corrections and they seem safe to me.
There are still some left, but those in this PR are good
What it says on the tin. This just updates the `bump-version.nu` script
to also edit the version in
the new nu_plugin_nu_example plugin, the same way it does for python
This PR adds two [`cargo hack`](https://github.com/taiki-e/cargo-hack)
commands to the release process to check for errors due to combination
of features. The first one will run `cargo check` on each crate multiple
times over, toggling different combinations of features each time. This
is to check for compilation errors regarding missing imports, etc. The
second command will run `cargo build` for each crate separately (with
default features) to check for build errors (from `build.rs` or
whatever).
Using the [error](https://github.com/nushell/nushell/pull/11786) from
the 0.90.0 publishing as a test, the first command does indeed find the
compilation error.
In the future, we should probably put these commands into a manually
triggered CI job so that they will be run on multiple platforms.
Also, this PR cleans up `nu_release.nu` a little bit.
The script was running endlessly for me and the notion of crate waves
may be out of date, after removing them and manually aligning the output
with the relevant crate waves things went smooth.
New crate `nu-lsp`
Only treat `nu-cmd-lang` with the `build.rs` for `version` with the
`--no-verify` treatment in the separate wave
Reorder `nu-command` crates as there are dev-dependencies that may be a
problem
should be the last one... 😇
this PR adds `-toc` to the links in the TOC of the release note
template, they need that for the back reference to the TOC itself in the
section titles
was writing https://github.com/nushell/nushell.github.io/pull/1114 and
noticed a very nice bug...
yeah HTML comments in `.md` documents can't be indented otherwise `npm
install` + `npm run dev` can't render the page 👀
this PR adds
```nushell
let last_release_date = ^gh api /repos/nushell/nushell/releases
| from json
| into datetime published_at
| get published_at
| sort
| last
```
to the relaease note template to get the date of the last release and
list the PRs from there to now.
i've started writting the [release note for
0.86.0](https://github.com/nushell/nushell.github.io/pull/1071) and
thought we could enhance the template for the note even further:
- add some TODOs to make sure we don't forget anything
- make the `NOTE` a real note in the first section, it's just for
prettier rendering
- add some template tables in the "hall of fame"
- ❗ add a table of content to allow jumping back and forth
more easily when the note starts to get big
related to
- https://github.com/nushell/nushell.github.io/pull/1114
i had to use `create-pr` to open
https://github.com/nushell/nushell.github.io/pull/1114 and i thought the
script could be improved in a few ways
- the template had a hardcoded `.0` path version in the semver, this PR
removes is so that the CLI argument can be a full semver, e.g. `0.87.0`
- switch from `explore` to `$env.EDITOR` to preview the completed
template: because it's valid markdown, it looks better in an editor
- fetch the website repo with HTTP and push with SSH: this allows to not
enter the password of an SSH key in the clone step
to help writing the release notes, i think being able to list all the
PRs between the last two releases and format them directly to a raw
table is really nice.
this PR
- `export`s the `main` command from `list-merged-prs`
- adds an example to the `template.md` file of the release notes
the example:
```nushell
use ./make_release/release-note/list-merged-prs
list-merged-prs nushell/nushell <last-release-date>
| where author != "app/dependabot"
| sort-by mergedAt
| update url {|it| $"[#($it.number)]\(($it.url)\)" }
| update author { $"[@($in)]\(https://github.com/($in)\)" }
| select author title url
| rename -c {url: pr}
| to md --pretty
```
will dump all the PRs in a `table<author: string, title: string, pr:
string>` in `md` format:
- `author` is a mardown link to the GitHub page of each author
- `title` is the title of the PRs
- `pr` is a markdown link to the GitHub page of each PR
this pipeline will omit the contributions from @app/dependabot.