Stack state initialization message improvements
[stgit.git] / CHANGELOG.md
blobf3b3b0f0592e98a07404bff76ad6536e6be92f1d
1 # Changelog
3 ## [Unreleased]
5 ### Removed
6 - Drop support for Python < 3.5
7 - Remove previously deprecated `stg publish` command
8 - Removed contrib scripts: `stg-swallow`, `stg-fold-files-from`,
9   `stg-dispatch`, `stg-whatchanged`, and `stg-show-old`
11 ### Added
12 - The pre-commit hook is now run for `stg refresh`
13 - New `--spill` option for `stg refresh`
14 - Add stgit.series.description config option (#88)
16 ### Changed
17 - Use `python3` in shebangs instead of `python`
18 - `contrib/stgbashprompt.sh` is no longer executable
20 ### Fixed
21 - Importing large patches is much, much faster (#66)
22 - Other performance improvements when dealing with large patches
23 - Repair diffstat when outside work tree root (#62)
24 - Use encoded (string) environment variables on Windows (#79)
25 - Fix `stg pull` when no upstream is configured (#83)
26 - Fix `refresh` crash with path limiting and files added to index (#85)
28 ## [0.23] 2020-06-12
30 ### Removed
31 - Drop support for Python 3.3; Python 2 (2.6 and 2.7) remain
32   deprecated, but supported for one last release
33 - Tutorial is removed; it now exists as part of the website
35 ### Deprecated
36 - Python 2.x support is deprecated and will be removed in a future
37   release
39 ### Added
40 - Support html5 output of docs from asciidoc
41 - Add `--expose` option for `stg pick` to allow picked commit message to
42   be customized
44 ### Changed
45 - Limit mail diffstat to 72 columns
46 - Added pyproject.toml file for black configuration
47 - Minimum Git version is 2.2.0
48 - Quote stg and subcommand in man page synopsis
49 - Replaced RELEASENOTES with this CHANGELOG.md
50 - Replaces Documentation/SubmittingPatches with CONTRIBUTING.md
52 ### Fixed
53 - Repair MANIFEST.in and generated source dist
54 - Repair importing mail with ": " (colon space) in subject
55 - Fix mail cover letter shortlog
56 - Fix mail cover letter diffstat
57 - `stg series` now only outputs colors when `isatty()`
58 - Repair mail SSL check (#57)
59 - Repair `stg mail` with both `-a` and `-e` options (#58)
60 - Remove empty short-opt for `--no-submodules` of `stg refresh`
61 - Repair build.py for Python 2 with explicit `flush()`
62 - `stgit.refreshsubmodules` added to sample gitconfig
64 ### Internal
65 - Update docs build system from upstream Git docs
66 - Use coverage contexts to map commands to covered lines
67 - Improve mail tests
68 - Use GitHub Actions instead of TravisCI
69 - Format StGit source using black formatter
71 ## [0.22] - 2020-03-02
73 ### Removed
74 - Remove debian packaging; downstream Debian uses its own anyway
76 ### Deprecated
77 - Python 2.x support is deprecated and will be removed in the next StGit
78   release
79 - `stg publish` is deprecated and will be removed in the next StGit
80   release
82 ### Added
83 - `stg import` has new --keep-cr option, like `git mailsplit`
85 ### Changed
86 - `stg new` now includes patch name in log message
87 - `stg branch --rename` can now rename the current branch
88 - `stg branch --create` now works even if the workspace is dirty,
89   consistent with `git checkout`
90 - `stg branch --description` now works on both regular and stgit
91   branches
92 - `stg edit --diff` now implies `--edit`
93 - `stg refresh` and `stg edit` now reset the committer information,
94   consistent with `stg push`
95 - git notes are now preserved when patches are modified
96 - Tutorial improvements
97 - Many additional tests and test improvements
98 - All stgit commands now use "new" git library infrastructure
100 ### Fixed
101 - `stg branch --create` inherits remote correctly from parent commitish
102 - Patch names are checked earlier to avoid inconsistent stack states
103 - Improved commit data parsing and handling of non-UTF8 encodings
104 - Repair git error messages when checking stgit version from outside a
105   git repo
108 ## [0.21] - 2019-10-28
110 ### Changed
111 - Faster handling of large patches (#44)
113 ### Fixed
114 - Build reproducibility repairs (Thanks reproducible-builds.org team!)
115 - Python can now be run with optimizations (`python -O`)
116 - `stg log` now prints trailing newline
117 - Improved command line option parsing for `stg log`
120 ## [0.20] - 2019-10-04
122 ### Added
123 - `stg patches -d` can now output colored diffs.
124 - `stg publish --overwrite` allows branch to be overwritten instead of
125   creating new commits.
126 - `stg log --clear` deletes the stack's log history. Use with caution.
127 - Fish shell completions for stg.
128 - Zsh completions for stg.
129 - `stg mail --domain` option overrides the host's domain in the message
130   ID.
132 ### Changed
133 - Branch protection metadata now captured in config instead of
134   .git/patches/<branch>protect file. This updates stgit's metadata
135   format from v2 to v3.
136 - `stg diff` no longer shows binary diffs by default. Use `-O--binary`
137   or add `--binary` to stgit.diff-opts in config.
138 - Diagnostic output is now routed to stderr instead of stdout.
139   Diagnostic output is also now sent to stderr unconditionally, i.e. no
140   more isatty() test (#35).
141 - Converted to "new" lib infrastructure: `show`, `patches`, `diff`,
142   `pick`, `pull`, `rebase`, and `fold`.
144 ### Fixed
145 - `stg show` detects conflicting --applied and --unapplied options.
146 - `stg show --stat` now shows commit headers.
147 - `stg patches --diff` now shows proper diff instead of `b'...'` repr of
148   diff.
149 - `stg diff --range` detects some invalid values (e.g. `-r ..`).
150 - Date parsing is now more portable, only use platform specific `date`
151   as last parsing option. Affects, e.g., `stg refresh --authdate`.
152 - Repaired seach path for templates to avoid looking in Python
153   site-packages directory.
154 - Ensure stdout and stderr are flushed. Rarely affected `stg diff`.
155 - `stg repair` will now fail if extra command line arguments are
156   provided.
157 - Bash completions are now generated in a reproducible manner.
158 - `stg edit --diff` on an empty patch no longer crashes.
159 - `stg pick` no longer fails when picked commit has empty message (#39).
160 - `stg rebase` no longer crashes when there are conflicts (#34).
161 - `stg pick` no longer crashes if --name is not provided when picking a
162   regular commit object.
163 - Improved test coverage for: branch, diff, pick, sync,
164 - New tests for: files, patches, fold, series
165 - Portable use of iconv, sort, and sed in tests.
166 - Linting using flake8 and isort.
167 - All Python code now conforms to PEP-8.
168 - Updated test infrastructure from git 2.20.
169 - Parallel tests with coverage (`make -j4 coverage`) now works.
170 - Documentation build is not included in code coverage.
171 - Repaired log end messages when using `STGIT_SUBPROCESS_LOG=debug`.
172 - Renamed "dunder" instance attributes to improve debugging.
173 - Fail faster when patch name has slash ('/') (#24).
176 ## [0.19] 2018-11-05
178 ### Changed
179 - Python 3 support. StGit supports Python 2.6, 2.7, 3.3, 3.4, 3.5, 3.6,
180   and 3.7. PyPy interpreters are also supported.
181 - Submodules are now ignored when checking if working tree is clean.
182   Submodules are also not included by default when refreshing a patch.
183 - Config booleans are now parsed similarly to git-config.
184 - `contrib/stgit.el` is now licenced with GPLv2.
185 - Add continuous integration (travis-ci) and code coverage (coveralls)
186   support.
187 - Many new test cases were added.
189 ### Fixed
190 - Repair handling of emails with utf-8 bodies containing latin-1
191   characters. Also correctly decode email headers containing quoted
192   encoded words.
193 - StGit's version is now correct/available in the release archive.
196 ## [0.18] 2017-08-14
198 ### Added
199 - `commit-msg` hook support for easier integration with Gerrit, allowing
200   a Change-Id line to be inserted in the commit message
201 - `stg mail` improvements for 'Suggested-by:' tag and auto generation of
202   Cc for the cover letter based on all tags in the series
203 - `stg mail` bash completion for the --to, --cc and --bcc options based
204   on the content of the [mail "alias"] section of GIT configuration
205 - `stg edit --review` option to add a 'Reviewed-by:' tag
206 - `stg pop --spill` functionality to allow popping a patch from the
207   stack while keeping its modification in the tree
209 ### Changed
210 - Project page details updated (gna.org has been shut down)
212 ### Fixed
213 - Various fixes and test coverage improvements
216 ## [0.17.1] 2013-09-30
218 ### Changed
219 - Test suite improvements.
220 - Print tracebacks to stderr.
221 - Run test suite in parallel.
223 ### Fixed
224 - Fix dirty index errors when resolving conflicts.
225 - Fix --authdate date parsing.
228 ## [0.17] 2013-06-27
230 ### Added
231 - `stg delete --top` option for deleting the top patch.
232 - `stg branch --merge` option for merging the work tree changes into the
233   other branch.
234 - Support for sending patches both as attachment and inline.
236 ### Changed
237 - `stg mail` no longer filters explicitly added `--cc` sender address.
238 - `stg refresh` warns when index is dirty.
240 ### Fixed
241 - Fix for parsing the commit header correctly.
242 - Several `stgit.el` (Emacs mode) improvements.
243 - Fix `stg status --reset` error messages.
244 - HTML documentation fix.
245 - Email template fixes.
248 ## [0.16] 2012-01-09
250 ### Added
251 - UI adjustments to better match the Git commands.
252   - `stg status` is an alias for `git status`.
253   - `stg reset --hard` behaves similarly to the corresponding git
254     command and option.
255 - `stg branch --cleanup` option to remove the StGit metadata for a
256   given branch.
257 - `stg mail` can use `git send-email` directly.
258 - Vim syntax highlighting for StGit commit messages.
260 ### Fixed
261 - Several improvements to the Emacs mode (stgit.el).
262 - Many bug-fixes.
265 ## [0.15] 2009-10-24
267 ### Removed
268 - The commands "stg add", "stg rm", "stg cp", and "stg resolved" were
269   removed, since there are corresponding Git equivalents.
271 ### Added
272 - New core infrastructure for repository operations, including:
273   - Infinite undo/redo operations and corresponding commands.
274   - Automatic rollback of changes following a failed operation (using
275     transactions)---this ensures that StGit commands either succeed or
276     do nothing. Previously, every commands had its own ad hoc
277     implementation of this.
278 - Some commands were added, including
279   - `stg squash`, for combining two or more patches into one.
280   - `stg publish`, for maintaining merge-friendly branches (which are
281     not rebased).
282   - `stg prev/next` for printing the name of the previous or next patch
283     in the series.
284 - The `stg import` and `stg fold` commands support the `-p N` option for
285   stripping leading slashes from diff paths.
286 - The `stg import` and `stg fold` commands support the `--reject` option
287   for leaving rejected hunks in corresponding `*.rej` files.
288 - New patch identification syntax: `<branch>:<patch>` (see documentation
289   for the "stg id" command).
290 - Autosigning of imported patches when `sign.autosign` configuration
291   option is set.
292 - A powerful Emacs mode for StGit was added to the "contrib" directory.
293   It displays the patch stack in an Emacs buffer, and can handle all
294   common StGit tasks.
295 - Man pages and an improved tutorial.
297 ### Changed
298 - Improved bash tab-completion, automatically generated from the stg
299   command definitions.
302 ## [0.14.3] 2008-06-08
303 ## [0.14.2] 2008-13-24
304 ## [0.14.1] 2007-12-11
305 ## [0.14] 2007-12-09
306 ## [0.13] 2007-07-26
307 ## [0.12] 2007-02-06
308 ## [0.11] 2006-10-21
309 ## [0.10] 2006-06-11
310 ## [0.9] 2006-04-07
311 ## [0.8] 2005-12-23
312 ## [0.7] 2005-10-02
313 ## [0.6] 2005-08-21
314 ## [0.5] 2005-07-30
315 ## [0.4] 2005-07-10