Repair import sort in pkgtest.py
[stgit.git] / CHANGELOG.md
blob1aa09dd4b3601775529706dff68aaaadac4e55a8
1 # Changelog
3 ## [Unreleased]
5 ### Removed
7 ### Added
8 - `stg rebase ` learns `--interactive`; easily re-order, edit, squash,
9   fixup, or delete patches via your editor
10 - `stg rebase` learns `--autostash`; stash changes before the rebase and
11   apply them after. Also configurable with the `stgit.autostash`
12   configuration option
13 - `stg edit` can now rename patches (#119)
14 - `stg edit` gains helpful instructions (#138)
15 - `stg new` learns `--verbose`, which includes a diff in the editor
16   window (similar to `git commit --verbose`). This behavior is also
17   configurable with the `commit.verbose` configuration option
18 - `stg push` and `stg float` learn `--noapply` option; allows patches
19   to be reordered without updating worktree and deferring merge conflict
20   resolution (#144)
22 ### Changed
23 - The editor window text for `stg squash` has been modified to mirror
24   git's behavior -- the squash edit message now includes all commits
25   (#71)
27 ### Fixed
28 - Repair crash when attempting to export empty patch (#112)
29 - Exact command name matches are unambiguous (#110)
30 - Exiting with an empty `stg edit` editor will now abort the edit;
31   previously it would delete your commit message. (#138)
32 - Repair completions when stg.series.description is enabled in config
33 - Workaround child process reaping race on Windows (#78)
34 - Repair crash with `stg float --series` when bad patch name in series
36 ### Internal
37 - Add link to coverage.io project to CONTRIBUTING.md
38 - Set smart `exclude_lines` default for 'coverage'
39 - Expanded test suite for `stg edit`
42 ## [1.1] 2021-04-30
44 ### Removed
46 ### Added
47 - StGit GPG-signs patches when `commit.gpgsign` is set (#12)
48 - Support `core.hooksPath` in git config
49 - Add `-C` option for `stg import` and `stg fold` (#18)
51 ### Changed
52 - Allow importing mail and series from urls (#94)
53 - `stg refresh --edit` may also use `--diff` and `--diff-opts` (#98)
54 - `stg goto` allows sha1 of a patch instead of patch name (#93)
56 ### Fixed
57 - Repair hang in `stg pull -m`, `stg goto -m`, and `stg push -m`
58 - Repair `stg mail` to show diffstat of whole series (#104)
59 - Repair MANIFEST.in to include AUTHORS.md and README.md files
62 ## [1.0] 2021-02-07
64 ### Removed
65 - Drop support for Python < 3.5
66 - Remove previously deprecated `stg publish` command
67 - Removed contrib scripts: `stg-swallow`, `stg-fold-files-from`,
68   `stg-dispatch`, `stg-whatchanged`, and `stg-show-old`
70 ### Added
71 - The pre-commit hook is now run for `stg refresh`
72 - New `--spill` option for `stg refresh`
73 - Add stgit.series.description config option (#88)
74 - Official support for Python versions up to 3.9
76 ### Changed
77 - Stack metadata format 4. All metadata now kept in Git objects; no more
78   stack state files in .git/patches. **A one-way auto-upgrade to format
79   version 4 will occur when StGit commands are run on an existing StGit
80   branch.**
81 - Use `python3` in shebangs instead of `python`
82 - `contrib/stgbashprompt.sh` is no longer executable
83 - Internal docstrings now use reStructuredText instead of Epytext
85 ### Fixed
86 - Importing large patches is much, much faster (#66)
87 - Other performance improvements when dealing with large patches
88 - Repair diffstat when outside work tree root (#62)
89 - Use encoded (string) environment variables on Windows (#79)
90 - Fix `stg pull` when no upstream is configured (#83)
91 - Fix `refresh` crash with path limiting and files added to index (#85)
92 - Repair `new` with patchdescr.template crash (#87)
93 - Repair `log` from worktree subdir with patches specified
94 - Repair `import` allowing/generating duplicate patch names (#64)
95 - Repair `mail --auto` to strip comments after addrs (#91)
98 ## [0.23] 2020-06-12
100 ### Removed
101 - Drop support for Python 3.3; Python 2 (2.6 and 2.7) remain
102   deprecated, but supported for one last release
103 - Tutorial is removed; it now exists as part of the website
105 ### Deprecated
106 - Python 2.x support is deprecated and will be removed in a future
107   release
109 ### Added
110 - Support html5 output of docs from asciidoc
111 - Add `--expose` option for `stg pick` to allow picked commit message to
112   be customized
114 ### Changed
115 - Limit mail diffstat to 72 columns
116 - Added pyproject.toml file for black configuration
117 - Minimum Git version is 2.2.0
118 - Quote stg and subcommand in man page synopsis
119 - Replaced RELEASENOTES with this CHANGELOG.md
120 - Replaces Documentation/SubmittingPatches with CONTRIBUTING.md
122 ### Fixed
123 - Repair MANIFEST.in and generated source dist
124 - Repair importing mail with ": " (colon space) in subject
125 - Fix mail cover letter shortlog
126 - Fix mail cover letter diffstat
127 - `stg series` now only outputs colors when `isatty()`
128 - Repair mail SSL check (#57)
129 - Repair `stg mail` with both `-a` and `-e` options (#58)
130 - Remove empty short-opt for `--no-submodules` of `stg refresh`
131 - Repair build.py for Python 2 with explicit `flush()`
132 - `stgit.refreshsubmodules` added to sample gitconfig
134 ### Internal
135 - Update docs build system from upstream Git docs
136 - Use coverage contexts to map commands to covered lines
137 - Improve mail tests
138 - Use GitHub Actions instead of TravisCI
139 - Format StGit source using black formatter
141 ## [0.22] - 2020-03-02
143 ### Removed
144 - Remove debian packaging; downstream Debian uses its own anyway
146 ### Deprecated
147 - Python 2.x support is deprecated and will be removed in the next StGit
148   release
149 - `stg publish` is deprecated and will be removed in the next StGit
150   release
152 ### Added
153 - `stg import` has new --keep-cr option, like `git mailsplit`
155 ### Changed
156 - `stg new` now includes patch name in log message
157 - `stg branch --rename` can now rename the current branch
158 - `stg branch --create` now works even if the workspace is dirty,
159   consistent with `git checkout`
160 - `stg branch --description` now works on both regular and stgit
161   branches
162 - `stg edit --diff` now implies `--edit`
163 - `stg refresh` and `stg edit` now reset the committer information,
164   consistent with `stg push`
165 - git notes are now preserved when patches are modified
166 - Tutorial improvements
167 - Many additional tests and test improvements
168 - All stgit commands now use "new" git library infrastructure
170 ### Fixed
171 - `stg branch --create` inherits remote correctly from parent commitish
172 - Patch names are checked earlier to avoid inconsistent stack states
173 - Improved commit data parsing and handling of non-UTF8 encodings
174 - Repair git error messages when checking stgit version from outside a
175   git repo
178 ## [0.21] - 2019-10-28
180 ### Changed
181 - Faster handling of large patches (#44)
183 ### Fixed
184 - Build reproducibility repairs (Thanks reproducible-builds.org team!)
185 - Python can now be run with optimizations (`python -O`)
186 - `stg log` now prints trailing newline
187 - Improved command line option parsing for `stg log`
190 ## [0.20] - 2019-10-04
192 ### Added
193 - `stg patches -d` can now output colored diffs.
194 - `stg publish --overwrite` allows branch to be overwritten instead of
195   creating new commits.
196 - `stg log --clear` deletes the stack's log history. Use with caution.
197 - Fish shell completions for stg.
198 - Zsh completions for stg.
199 - `stg mail --domain` option overrides the host's domain in the message
200   ID.
202 ### Changed
203 - Branch protection metadata now captured in config instead of
204   .git/patches/<branch>protect file. This updates stgit's metadata
205   format from v2 to v3.
206 - `stg diff` no longer shows binary diffs by default. Use `-O--binary`
207   or add `--binary` to stgit.diff-opts in config.
208 - Diagnostic output is now routed to stderr instead of stdout.
209   Diagnostic output is also now sent to stderr unconditionally, i.e. no
210   more isatty() test (#35).
211 - Converted to "new" lib infrastructure: `show`, `patches`, `diff`,
212   `pick`, `pull`, `rebase`, and `fold`.
214 ### Fixed
215 - `stg show` detects conflicting --applied and --unapplied options.
216 - `stg show --stat` now shows commit headers.
217 - `stg patches --diff` now shows proper diff instead of `b'...'` repr of
218   diff.
219 - `stg diff --range` detects some invalid values (e.g. `-r ..`).
220 - Date parsing is now more portable, only use platform specific `date`
221   as last parsing option. Affects, e.g., `stg refresh --authdate`.
222 - Repaired seach path for templates to avoid looking in Python
223   site-packages directory.
224 - Ensure stdout and stderr are flushed. Rarely affected `stg diff`.
225 - `stg repair` will now fail if extra command line arguments are
226   provided.
227 - Bash completions are now generated in a reproducible manner.
228 - `stg edit --diff` on an empty patch no longer crashes.
229 - `stg pick` no longer fails when picked commit has empty message (#39).
230 - `stg rebase` no longer crashes when there are conflicts (#34).
231 - `stg pick` no longer crashes if --name is not provided when picking a
232   regular commit object.
233 - Improved test coverage for: branch, diff, pick, sync,
234 - New tests for: files, patches, fold, series
235 - Portable use of iconv, sort, and sed in tests.
236 - Linting using flake8 and isort.
237 - All Python code now conforms to PEP-8.
238 - Updated test infrastructure from git 2.20.
239 - Parallel tests with coverage (`make -j4 coverage`) now works.
240 - Documentation build is not included in code coverage.
241 - Repaired log end messages when using `STGIT_SUBPROCESS_LOG=debug`.
242 - Renamed "dunder" instance attributes to improve debugging.
243 - Fail faster when patch name has slash ('/') (#24).
246 ## [0.19] 2018-11-05
248 ### Changed
249 - Python 3 support. StGit supports Python 2.6, 2.7, 3.3, 3.4, 3.5, 3.6,
250   and 3.7. PyPy interpreters are also supported.
251 - Submodules are now ignored when checking if working tree is clean.
252   Submodules are also not included by default when refreshing a patch.
253 - Config booleans are now parsed similarly to git-config.
254 - `contrib/stgit.el` is now licenced with GPLv2.
255 - Add continuous integration (travis-ci) and code coverage (coveralls)
256   support.
257 - Many new test cases were added.
259 ### Fixed
260 - Repair handling of emails with utf-8 bodies containing latin-1
261   characters. Also correctly decode email headers containing quoted
262   encoded words.
263 - StGit's version is now correct/available in the release archive.
266 ## [0.18] 2017-08-14
268 ### Added
269 - `commit-msg` hook support for easier integration with Gerrit, allowing
270   a Change-Id line to be inserted in the commit message
271 - `stg mail` improvements for 'Suggested-by:' tag and auto generation of
272   Cc for the cover letter based on all tags in the series
273 - `stg mail` bash completion for the --to, --cc and --bcc options based
274   on the content of the [mail "alias"] section of Git configuration
275 - `stg edit --review` option to add a 'Reviewed-by:' tag
276 - `stg pop --spill` functionality to allow popping a patch from the
277   stack while keeping its modification in the tree
279 ### Changed
280 - Project page details updated (gna.org has been shut down)
282 ### Fixed
283 - Various fixes and test coverage improvements
286 ## [0.17.1] 2013-09-30
288 ### Changed
289 - Test suite improvements.
290 - Print tracebacks to stderr.
291 - Run test suite in parallel.
293 ### Fixed
294 - Fix dirty index errors when resolving conflicts.
295 - Fix --authdate date parsing.
298 ## [0.17] 2013-06-27
300 ### Added
301 - `stg delete --top` option for deleting the top patch.
302 - `stg branch --merge` option for merging the work tree changes into the
303   other branch.
304 - Support for sending patches both as attachment and inline.
306 ### Changed
307 - `stg mail` no longer filters explicitly added `--cc` sender address.
308 - `stg refresh` warns when index is dirty.
310 ### Fixed
311 - Fix for parsing the commit header correctly.
312 - Several `stgit.el` (Emacs mode) improvements.
313 - Fix `stg status --reset` error messages.
314 - HTML documentation fix.
315 - Email template fixes.
318 ## [0.16] 2012-01-09
320 ### Added
321 - UI adjustments to better match the Git commands.
322   - `stg status` is an alias for `git status`.
323   - `stg reset --hard` behaves similarly to the corresponding git
324     command and option.
325 - `stg branch --cleanup` option to remove the StGit metadata for a
326   given branch.
327 - `stg mail` can use `git send-email` directly.
328 - Vim syntax highlighting for StGit commit messages.
330 ### Fixed
331 - Several improvements to the Emacs mode (stgit.el).
332 - Many bug-fixes.
335 ## [0.15] 2009-10-24
337 ### Removed
338 - The commands "stg add", "stg rm", "stg cp", and "stg resolved" were
339   removed, since there are corresponding Git equivalents.
341 ### Added
342 - New core infrastructure for repository operations, including:
343   - Infinite undo/redo operations and corresponding commands.
344   - Automatic rollback of changes following a failed operation (using
345     transactions)---this ensures that StGit commands either succeed or
346     do nothing. Previously, every commands had its own ad hoc
347     implementation of this.
348 - Some commands were added, including
349   - `stg squash`, for combining two or more patches into one.
350   - `stg publish`, for maintaining merge-friendly branches (which are
351     not rebased).
352   - `stg prev/next` for printing the name of the previous or next patch
353     in the series.
354 - The `stg import` and `stg fold` commands support the `-p N` option for
355   stripping leading slashes from diff paths.
356 - The `stg import` and `stg fold` commands support the `--reject` option
357   for leaving rejected hunks in corresponding `*.rej` files.
358 - New patch identification syntax: `<branch>:<patch>` (see documentation
359   for the "stg id" command).
360 - Autosigning of imported patches when `sign.autosign` configuration
361   option is set.
362 - A powerful Emacs mode for StGit was added to the "contrib" directory.
363   It displays the patch stack in an Emacs buffer, and can handle all
364   common StGit tasks.
365 - Man pages and an improved tutorial.
367 ### Changed
368 - Improved bash tab-completion, automatically generated from the stg
369   command definitions.
372 ## [0.14.3] 2008-06-08
373 ## [0.14.2] 2008-13-24
374 ## [0.14.1] 2007-12-11
375 ## [0.14] 2007-12-09
376 ## [0.13] 2007-07-26
377 ## [0.12] 2007-02-06
378 ## [0.11] 2006-10-21
379 ## [0.10] 2006-06-11
380 ## [0.9] 2006-04-07
381 ## [0.8] 2005-12-23
382 ## [0.7] 2005-10-02
383 ## [0.6] 2005-08-21
384 ## [0.5] 2005-07-30
385 ## [0.4] 2005-07-10