Skip to content

Commit a32891b

Browse files
committed
chore: Update changelog for v2.0.0 release
1 parent 7f8f31f commit a32891b

File tree

3 files changed

+172
-2
lines changed

3 files changed

+172
-2
lines changed

CHANGELOG.md

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,175 @@
11
# Changelog
22

3+
## [2.0.0] 2022-11-06
4+
5+
### Removed
6+
- `stg clone` is removed. Use `git clone` and `stg init` instead.
7+
- `stg mail` is replaced with `stg email format` and `stg email send`.
8+
- `stg refresh --spill` is replaced with dedicated `stg spill` command.
9+
- `stg edit` no longer accepts `-O/--diff-opts`. Custom diff options is
10+
in conflict with editable diffs since many (most?) diff options cause
11+
the diff to no long be applicable.
12+
- `stg files` no longer accepts `-O/--diff-opts`. This option was of
13+
marginal value since it only had a possible side effect when `--stat`
14+
was being used.
15+
16+
### Added
17+
- `stg id` now accepts the `-b/--branch` option.
18+
- `stg completion` command provides runtime support for shell
19+
completions.
20+
- `stg completion bash` generates bash shell completion script.
21+
- `stg completion fish` generates fish shell completion script.
22+
- `stg completion zsh` outputs zsh shell completion script.
23+
- `stg completion list` shows StGit commands and aliases and is used at
24+
completion-time by shell completion scripts.
25+
- `stg completion man` generates man pages in asciidoc format.
26+
- `stg email format` wraps `git format-patch` and provides a mechanism
27+
to generate patch emails and optional cover letter in mbox format.
28+
- `stg email send` wraps `git send-email` and allows sending patch
29+
emails, either from files generated by `stg email format` or by
30+
specifying patches directly.
31+
- `stg new --refresh` allows a new patch to be refreshed with changes in
32+
one step. The `-i/--index`, `-F/--force`, `-s/--submodules`, and
33+
`--no-submodules` options from `stg refresh` are also available to
34+
`stg new` when using `-r/--refresh`.
35+
- `stg series` gains the `-i/--commit-id` option to display patches'
36+
commit ids.
37+
- `stg show` diff output can now be limited to certain paths by
38+
specifying path limits on the command line.
39+
- `stg spill` replaces `stg refresh --spill`.
40+
- `stg version` gains `-s/--short` flag to show shortened version info.
41+
- Added documentation for patch range syntax to stg(1) man page.
42+
- Added `install-all` target to top-level Makefile that installs the
43+
executable, man pages, html pages, and shell completions.
44+
45+
### Changed
46+
- StGit is now implemented entirely in Rust instead of Python.
47+
- StGit is generally much faster; many commands are up to 4x faster.
48+
There was an emphasis on making informational commands such as `stg
49+
id`, `stg series`, and `stg top` as fast as possible to make their use
50+
in interactive contexts (shell prompts, IDE extensions) more
51+
comfortable.
52+
- StGit error messages have been updated; many have different, and
53+
hopefully better, wording. Error messages are also use color (when
54+
color is enabled). Scripts relying on exact error messages from StGit
55+
will need to be updated.
56+
- StGit output to stdout is generally more terse. Commands that change
57+
the stack such as `push`, `pop`, and `commit`, use sigils to denote
58+
the changes made to the stack. E.g. `stg commit p0..p3` will output `$
59+
p0..p3` where the "$" sigil means that a patch, or patch range, has
60+
been committed. These are all the currently used stack change sigils:
61+
- `+` patch was pushed
62+
- `-` patch was popped
63+
- `>` patch became the current topmost patch
64+
- `&` patch was updated
65+
- `$` patch was committed
66+
- `#` patch was deleted
67+
- `@` patch was rolled-back
68+
- `!` patch was hidden
69+
- StGit aliases are now more like Git aliases. Normal aliases refer to
70+
StGit subcommands, but aliases prefixed with '!' are shell aliases
71+
that may run arbitrary commands. An example normal alias would be `git
72+
config stgit.alias.list 'series --description --empty'`. An example
73+
shell alias would be `git config stgit.alias.st '!git status
74+
--short'`.
75+
- Commands such as `stg goto`, `stg push`, and `stg pop` now require
76+
full/correct patch names on the command line and no longer accept
77+
unambiguous patch name prefixes. When an inexact patch name is
78+
provided on the command line, the error message will now suggest
79+
similar valid patch names.
80+
- Additional template search paths were added. In addition to looking
81+
for template files in .git/, also look in
82+
`$XDG_CONFIG_HOME/stgit/templates/` and `$HOME/.stgit/templates`. This
83+
search strategy is consistent with how git looks for the global config
84+
file.
85+
- The new `--signoff` patch edit option supercedes the deprecated
86+
`--sign` and `--sign-by` options. `--signoff` without its optional
87+
value does the same thing as `--sign`, while `--signoff=<value>` does
88+
the same thing as `--sign-by=<value>`.
89+
- The `--ack` and `--review` patch edit options now optionally take a
90+
value. The `--ack-by` and `--review-by` options are deprecated.
91+
- `stg branch` output is now generally less verbose.
92+
- `stg branch --describe` replaces `stg branch --description`. The
93+
`--description` subcommand remains supported as a hidden alias to
94+
`--describe`, but the description string must now be provided as its
95+
own argument; i.e. `--description="description string"` is no longer
96+
supported.
97+
- `stg branch --list` now produces colorized output. The `--color`
98+
option or `NO_COLOR` environment variable may be used to affect this
99+
behavior.
100+
- `stg branch --rename` now supports renaming regular git branches in
101+
addition to StGit-enabled branches.
102+
- `stg clean` now uses `-A` and `-U` short options for `--applied` and
103+
`--unapplied` instead of `-a` and `-u`. This is done for consistency
104+
with `stg series` and `stg show`.
105+
- `stg import` now only recognizes compressed patches by their file
106+
extension (`.bz2` or `.gz`) and no longer proactively attempts to
107+
decompress using all known decompressors.
108+
- `stg import` support for compressed input files is selectable at
109+
compile time using the `import-compressed` feature.
110+
- `stg import` support for importing from a URL is selectable at compile
111+
time using the `import-url` feature. **N.B.** there is a measurable
112+
runtime performance impact of building with `import-url` due to the
113+
unconditional, pre-main initialization of `curl` which affects **all**
114+
`stg` commands.
115+
- `stg log` now colorizes output by default. The `--color` option or
116+
`NO_COLOR` environment variable may be used to affect this behavior.
117+
- `stgit.new.verbose` changed to `stgit.edit.verbose` and now also
118+
affects edit behavior for `edit`, `refresh`, and `squash` along with
119+
`new`.
120+
- `stg new` now accepts `-e/--edit` and `-d/--diff` instead of
121+
`-v/--verbose`
122+
- `stg pick` now allows a mix of commits and patches to be picked
123+
whereas previously only a single commit xor multiple patches could be
124+
picked.
125+
- `stg pick` now performs a single stack transaction for all the picked
126+
patches/commits instead of one transaction per pick.
127+
- `stg push` now attempts to perform three-way merges, which may improve
128+
conflict resolution in some cases. This feature is enabled by default
129+
when git >= 2.32.0 is detected.
130+
- `stg rebase --interactive` the "squash" and "fixup" instructions may
131+
no longer be applied to the first patch in the instruction list. The
132+
stated semantics of both "squash" and "fixup" is that they squash the
133+
labeled patch with the preceding patch, which is not possible/valid
134+
when there is no preceding patch.
135+
- `stg refresh` no longer has a `--spill` flag. Use `stg spill` instead.
136+
- `stg series` has updated colorized output.
137+
- `stg series` now requires patch range arguments to be both in-order
138+
and contiguous. Constraining patch ranges in this manner ensures that
139+
the output from `stg series` is always a valid/correct view of a
140+
subset of the series.
141+
- `stg show` diff output respects the `--color` option.
142+
- `stg squash` now allows the full suite of patch edit options,
143+
including `-d/--diff`. Previously only a few message-related options
144+
were available.
145+
- `stg version` now displays copyright and license statements.
146+
147+
### Fixed
148+
149+
- `stg branch --create` inherits the current branch's remote branch
150+
configuration, if available. The Python implementation had an apparent
151+
bug that prevented inheriting the remote branch configuration when
152+
creating from the current branch.
153+
- Avoid case insensitive patch name collisions. On operating systems
154+
with case-insensitive paths, patch names that only differ by case lead
155+
to patch reference collisions. StGit now ensures that patch names are
156+
distinct under case insensitive comparisions.
157+
- `stg pull` and `stg rebase` record updated stack state instead of
158+
deferring until the next stack-modifying command to do so.
159+
160+
### Changed since 2.0.0-rc.2
161+
162+
#### Changed
163+
- chore: Update Cargo.lock
164+
165+
#### Fixed
166+
- fix(zsh): Repair broken completion of --git-opt
167+
- fix(zsh): Add missing `stg email send --branch`
168+
- fix(email): Send using --branch option
169+
- fix: Avoid duplicate signoff with stgit.autosign
170+
- fix: Do not use 3way for merged checks
171+
172+
3173
## [2.0.0-rc.2] 2022-10-23
4174

5175
### Changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "stgit"
3-
version = "2.0.0-rc.2"
3+
version = "2.0.0"
44
edition = "2021"
55
rust-version = "1.63.0"
66
authors = [

0 commit comments

Comments
 (0)