|
2 | 2 |
|
3 | 3 | ## Update Git |
4 | 4 |
|
5 | | -The most important part of the release process is updating the embedded Git package. This can be done using this one-liner: |
| 5 | +Run the [update-git.yml workflow](https://github.com/desktop/dugite/actions/workflows/update-git.yml) to update the embedded Git version. |
6 | 6 |
|
7 | | -```sh |
8 | | -yarn update-embedded-git |
9 | | -``` |
| 7 | +This workflow will: |
10 | 8 |
|
11 | | -This script: |
| 9 | +- retrieve the latest `dugite-native` release from the GitHub API |
| 10 | +- get the checksums embedded in the release |
| 11 | +- generate the `script/embedded-git.json` payload to be used at install time |
| 12 | +- open a pull request with the dugite-native upgrade changes. |
12 | 13 |
|
13 | | -- retrieves the latest `dugite-native` release from the GitHub API |
14 | | -- gets the checksums embedded in the release |
15 | | -- generates the `script/embedded-git.json` payload to be used at install time |
16 | | - |
17 | | -### Note |
18 | | - |
19 | | -If you don't want the latest dugite-native release for some reason, you can edit the release URL in `script/update-embedded-git.js` to point to a different GitHub release URL. |
20 | | - |
21 | | -```js |
22 | | -const url = `https://api.github.com/repos/desktop/dugite-native/releases/23544533` |
23 | | -``` |
| 14 | +You must then approve and merge the pull request before continuing to the release process. |
24 | 15 |
|
25 | 16 | ## Release/Publishing |
26 | 17 |
|
27 | | -Before running the commands in 'Publishing to NPM', |
28 | | -create a new release branch of the form `releases/x.x.x` |
29 | | - |
30 | | -After running commands in 'Publishing to NPM', the release branch should be pushed. Now, you need to get it reviewed and merged. |
31 | | - |
32 | | -After that, don't forget publish the release on the repo. |
33 | | - |
34 | | -- Go to https://github.com/desktop/dugite/releases |
35 | | -- Click click `Draft a New Release` |
36 | | -- Fill in form |
37 | | -- Hit `Publish release` |
38 | | - |
39 | | -## Publishing to NPM |
40 | | - |
41 | | -Releases are done to NPM, and are currently limited to the core team. |
42 | | - |
43 | | -```sh |
44 | | -# to ensure everything is up-to-date |
45 | | -yarn |
46 | | - |
47 | | -yarn build |
48 | | - |
49 | | -# if you have not run `yarn build` before, a couple of you cloning auth test will fail. |
50 | | -yarn test |
51 | | - |
52 | | -# you might need to do a different sort of version bump here |
53 | | -npm version minor |
| 18 | +Run the [publish.yml workflow](https://github.com/desktop/dugite/actions/workflows/publish.yml) to publish a new release. The workflow will take care of bumping the version number, publishing the package to NPM, and creating a GitHub release. |
54 | 19 |
|
55 | | -# this will also run the test suite and fail if any errors found |
56 | | -# this will also run `git push --follow-tags` at the end |
57 | | -# remember to `npm login` |
58 | | -npm publish |
59 | | -``` |
| 20 | +Releasing with version 'minor' is typically the way to go (it'll bump from x.y.z to x.(y+1).0), but you can also choose 'patch' (x.y.(z+1)) or 'major' ((x+1).0.0) if you need to. |
0 commit comments