You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Polish CHANGELOG
* Do version bumps everywhere
Except R, where usethis will handle it
* More contributing tweaks
* Accept `npm pkg fix` edits
* Add `publish.yaml` CI
* More contributing tweaks
Copy file name to clipboardExpand all lines: CHANGELOG.md
+14-12Lines changed: 14 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,25 +2,17 @@
2
2
3
3
## devel
4
4
5
-
-`highlights.scm` now includes `!` as an `@operator`.
6
-
7
-
-`tags.scm` now tags function definitions with a string name as `@definition.function` (#147, @MichaelChirico).
8
-
9
-
- Binary exponents are now supported in hexadecimal constants (#159).
10
-
11
-
-`NULL` is now allowed as a function call argument name (#164).
5
+
## 1.2.0
12
6
13
7
- Added `"open"` and `"close"` fields to single and double quoted `string`s (#139).
14
8
15
-
- Removed an unnecessary `optional()` from `_parameter_with_default` (#161).
16
-
17
9
- Fixed an issue related to closing brackets in raw strings (#162).
18
10
19
-
-Changed a number of internal files to match tree-sitter v0.24.7 recommendations (#169).
11
+
-Binary exponents are now supported in hexadecimal constants (#159).
20
12
21
-
-`...` and `..1` are now supported in more places, such as `x$...` and `x@..1` (#148).
13
+
-`NULL` is now allowed as a function call argument name (#164).
22
14
23
-
-`parenthesized_expression` has been simplified to better align with R's parser. Specifically, it now expects exactly 1 required `body` expression, rather than allowing zero or more optional expressions (#144).
15
+
-`...` and `..1` are now supported in more places, such as `x$...` and `x@..1` (#148).
24
16
25
17
-`fn(a b)` is now correctly parsed as an error rather than as two sequential arguments (#140).
26
18
@@ -30,8 +22,18 @@
30
22
31
23
- Newlines are now allowed after an `else` but before the `alternative` (#141).
32
24
25
+
-`parenthesized_expression` has been simplified to better align with R's parser. Specifically, it now expects exactly 1 required `body` expression, rather than allowing zero or more optional expressions (#144).
26
+
27
+
-`highlights.scm` now includes `!` as an `@operator`.
28
+
29
+
-`tags.scm` now tags function definitions with a string name as `@definition.function` (#147, @MichaelChirico).
30
+
31
+
- Removed an unnecessary `optional()` from `_parameter_with_default` (#161).
32
+
33
33
- The internal `_hex_literal` rule was simplified slightly (#138).
34
34
35
+
- Changed a number of internal files to match tree-sitter v0.24.7 recommendations (#169).
36
+
35
37
## 1.1.0
36
38
37
39
- Switched to using `tree-sitter-language` in the Rust bindings to remove a dependency on a specific `tree-sitter` crate version (#133).
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+26-3Lines changed: 26 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,28 @@
4
4
5
5
Unlike some other tree-sitter grammars, the R grammar's release version is not tied to the tree-sitter version. Instead, we just use standard semantic versioning. We released 1.0.0 when we merged the longstanding `next` branch into `main`, and then we froze `main-old` for people to pin to if they are slow to update.
6
6
7
+
## Flow
8
+
9
+
- Create an `rc/x-y-z` branch
10
+
11
+
- Update all binding versions to the new version
12
+
13
+
- Polish CHANGELOG
14
+
15
+
- Update CHANGELOG's `## devel` to the new version, go ahead and add a new `## devel` header
16
+
17
+
- Push and open a PR
18
+
19
+
- Follow the release procedure for R, as it is manual
20
+
21
+
- Merge the PR
22
+
23
+
- After merging, do NOT call `usethis::use_github_release()`. We are going to create our own git tag
24
+
25
+
- Create an push a git tag for the version, i.e. `git push origin tag vX.Y.Z` where the leading `v` does matter
26
+
27
+
- This will kick off `publish.yaml` for the GitHub Release, the npm package release, and the Rust crate release
@@ -14,6 +36,7 @@ The {treesitter.r} package is relatively simple. It just provides `language()` a
14
36
15
37
- Decide if you also need to release [{treesitter}](https://github.com/DavisVaughan/r-tree-sitter).
16
38
- Ensure you `devtools::load_all()` twice to ensure that `bootstrap.R` runs and pulls updated files into `src/` and updates any ABI changes.
39
+
- Update `NEWS.md` to mention the update and point to the changelog.
17
40
- Run `devtools::check()` to ensure tests are still passing.
18
41
- Run `devtools::release()` to do a standard R package release if all looks good.
19
42
- Use the same version as the Rust crate and the npm package.
@@ -38,7 +61,7 @@ Davis is the main owner of the crate, but Kevin also has publish rights.
38
61
39
62
-`cargo publish --dry-run` will do a dry run before submitting
40
63
41
-
-`cargo publish` to actually release
64
+
-The `publish.yaml` CI will actually run `cargo publish`for you. It runs <https://github.com/tree-sitter/workflows/blob/main/.github/workflows/package-crates.yml>. Note that we have a `CARGO_REGISTRY_TOKEN` token that expires after 1 year and may need to be refreshed.
42
65
43
66
## Npm package
44
67
@@ -65,8 +88,8 @@ We use [nvm](https://github.com/nvm-sh/nvm) for npm version management. The npm
65
88
66
89
- `npm publish --dry-run` will do a dry run
67
90
68
-
- `npm publish` will actually publish
91
+
- The `publish.yaml` CI will actually run `npm publish` for you. It runs <https://github.com/tree-sitter/workflows/blob/main/.github/workflows/package-npm.yml>. Note that we have a `NODE_AUTH_TOKEN` token that expires after 1 year and may need to be refreshed.
69
92
70
-
You may need to login to npm through the command line first, use `npm login` for that.
93
+
- Note that this builds the WASM binary along with "prebuilds" for each platform, so it does more than just `npm publish`.
71
94
72
95
We publish as an [unscoped public package](https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages) because that seems to be what other tree-sitter grammars do as well.
0 commit comments