Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

exmh could use refresh #273

Open
hakansonOHSU opened this issue Jun 29, 2020 · 0 comments
Open

exmh could use refresh #273

hakansonOHSU opened this issue Jun 29, 2020 · 0 comments

Comments

@hakansonOHSU
Copy link

Current exmh in pkgsrc (I'm using on Mac) seems to be 2.7.2, circa 2015. I see there is a 2.9.0 from circa 2018.
https://sourceforge.net/projects/exmh/files/exmh/

jperkin pushed a commit that referenced this issue Sep 16, 2020
Update ruby-recog package to 2.3.14.


2.3.14 - 2020.08.07

Highlights:

* HTTP: Improved coverage of VNC related web services (#282)
* HTTP: Improved coverage and CPEs of SonicWall and Cisco Expressway (#283)

2.3.13 - 2020.08.03

Highlights:

* Improving coverage of Moxa devices (#280)
* Adding fingerprints for certain high volume services as observed by
  Project Sonar (#280, #281)
* CPE: Improving the number of fingerprints and Project Sonar matches that
  returned CPEs (#281)

2.3.12 - 2020.07.23

Highlights:

* HTTP: Additional SAP NetWeaver and Glassfish coverage and fixes (#279)
* FTP: Serv-U and Filezilla improvements (#279)
* CPE: Tweaks to vendor, service, and cpe-remap.yaml which resulted in much
  better coverage for services frequently seen on the Internet. See PR for
  stats. (#279)

2.3.11 - 2020.07.16

Highlights:

* HTTP: Adjust banner for $ProjectRevision (Treck TCP/IP) by Anderson Luan
  (#272)
* HTTP: SAP Internet Graphics Server and Message Server fingerprints (#275)
* DNS: Windows Server 2008 SP2, performance and other coverage tweaks (#276)
* DNS: Avoid spoofed Microsoft DNS Server, add Debian Buster (#277)
* CPE: Correct CPE generating automation (#278)

2.3.10 - 2020.07.14

Highlights:

* SAP NetWeaver: Telnet and HTTP tweaks (#274)

2.3.9 - 2020.07.14

Highlights:

* Upgrade lxml, improve fingerprint readability (#268)
* New fingerprints and completed normalization by HD Moore (#269)
* New Database: favicons.xml (MD5 fingerprints for favicon.ico files) by HD
  Moore (#270)
* HTTP: Project Sonar HTTP updates (including SAP Netweaver / Oracle) (#273)
jperkin pushed a commit that referenced this issue Jan 13, 2021
Changelog:
0.62
po4a tool:
 * Improve po_paths on misconfigurations, improve doc and error messages.

Asciidoc:
 * Unwrap all paragraphs by default (Github's #242).
   Introduce "forcewrap" option to re-enable line wrapping on output.
 * Support definition list continuations with indent (Github's #273)

DocBook:
 * Mark xreflabel attributes as translatable (GitHub's #267).

Documentation:
 * Fix some typos, thanks mestaritonttu.

Translations:
 * Updated: Croatian, thanks Milo Ivir.
 * Updated: Chinese (simplified), thanks taotieren.
 * Updated: Dutch, thanks Frans Spiesschaert.
 * Updated: French, thanks jmichault and Jean-Baptiste Holcroft.
 * Updated: German, thanks Helge Kreutzmann.
 * Updated: Hungarian, thanks Balázs Úr.
 * Updated: Italian, thanks Marco Ciampa.
 * Updated: Norwegian Bokmål, thanks Allan Nordhøy and Petter
   Reinholdtsen.
 * Updated: Portuguese, thanks Silvério Santos.
 * Updated: Portuguese (Brazil), thanks Rafael Fontenelle.
 * Updated: Russian, thanks Yuriy Balyuk and Artem.
 * Updated: Serbian (cyrillic), thanks Ivan Pesic.
 * Updated: Spanish, thanks Vladimir Támara Patiño and Emma Peel.
 * Updated: Ukrainian, thanks Yuri Chornoivan (українська).

Status of the binary translation:
 13 languages = 100%: de, es, fr, hr, hu, it, nb, nl, pt, pt_BR,
                      sr_Cyrl, uk, zh_CN.
 1 language  >= 90%: ru (91%).
 11 languages >= 50%: cs (61%), da (62%), eo (59%), et (66%), eu (60%),
                      id (61%), ja (66%), pl (66%), sl (59%), sv (64%),
                      vi (66%).
 1 language  >= 33%: ca (48%).
 5 starting languages: af (7%), ar (14%), kn (7%), ko (19%), zh_HK (3%).

Status of the documentation translation:
 4 languages = 100%: de, fr, pt_BR, uk.
 4 languages >= 95%: nl (99%), pt (99%), sr_Cyrl (99%), zh_CHS (99%).
 1 language  >= 80%: es (80%).
 2 languages >= 70%: ja (73%), pl (73%).
 2 languages >= 50%: it (64%), ru (61%).
 1 language  >= 33%: ca (47%).
 4 starting languages: eo (2%), hr (0%), hu (0%), nb (1%).

=======================================================================
0.61
po4a tool:
 * Robustify --srcdir and --destdir: When building the schroot package,
   these paths happen to be soft links to the same directory, making
   po4a believe that the POT file is specified twice (to the same value).
   po4a is now ignoring these dups (GitHub's #258).

Translations:
 * Updated: Chinese, thanks taotieren.
 * Updated: Czech, thanks to Michal Čihař.
 * Updated: Dutch, thanks Frans Spiesschaert.
 * Updated: French, thanks Jean-Baptiste and Martin Quinson.
 * Updated: German, thanks Helge Kreutzmann.
 * Updated: Portuguese, thanks Silvério Santos.
 * Updated: Portuguese (Brazil), thanks Rafael Fontenelle.
 * Updated: Serbian (cyrillic), thanks Ivan Pesic.
 * Updated: Ukrainian, thanks Yuri Chornoivan (українська).

Status of the binary translation:
  3 languages = 100%: fr, pt_BR, uk.
  6 languages >= 95%: de (98%), hr (98%), it (96%), nl (98%),
                      sr_Cyrl (98%), zh_CN (98%).
  2 languages >= 80%: hu (89%), ru (88%).
  3 languages >= 70%: es (77%), nb (71%), pt (79%).
 11 languages >= 50%: cs (62%), da (62%), eo (60%), et (67%), eu (61%),
                      id (62%), ja (67%), pl (67%), sl (60%), sv (65%),
		      vi (67%).
  1 language  >= 33%: ca (49%).
  1 language  >= 20%: ko (20%).
  4 starting languages: af (8%), ar (14%), kn (8%), zh_HK (3%).

Status of the documentation translation:
 3 languages = 100%: de, pt_BR, uk.
 1 language  >= 95%: nl (99%).
 1 language  >= 90%: pt (92%).
 1 language  >= 80%: fr (87%).
 3 languages >= 70%: es (78%), ja (74%), pl (73%).
 3 languages >= 50%: it (52%), ru (61%), sr_Cyrl (67%).
 1 language  >= 33%: ca (47%).
 1 language  >= 20%: zh_CHS (25%).
 3 starting languages: hr (0%), hu (0%), nb (1%).
jperkin pushed a commit that referenced this issue Jan 27, 2021
Most work done by leot@ and sjmulder@ in pkgsrc-wip.

tig-2.5.1
---------

Improvements:

 - bash/zsh completion: reimplement and decrease runtime by factor 1863. (#795)
 - Add binding to reflog view to toggle reference display.
 - Fail if tig is given an invalid or ambiguous ref. (#980)
 - Make tig process-group leader an option. (#986, #951)
 - Handle GIT_WORK_TREE environment variable.
 - The blame view requires a working tree.
 - Fix use of deprecated vwprintw() function.
 - Update utf8proc to v2.5.0.
 - Add --word-diff=plain colorizing support. (#221)

Bug fixes:

 - Fix segmentation fault. (#971)
 - Fix cursor position after "Move to parent" in blame view. (#973)
 - Fix crash on adding a line to a view. (#523)
 - Fix memory leak in diff unit.
 - Fix loop after refresh or change in refs/main split view. (#991)
 - Fix occasional crash on custom key bindings. (#1001)

tig-2.5.0
---------

Improvements:

 - Single file view enters blame mode on "b". (#804)
 - Show untracked files in the default view. (#762)
 - Disable graph if log.follow is enabled and there is only one pathspec.
   (#881)
 - Disable graph for author searches.
 - git_colors: interpret 'ul' as 'underline'.
 - Add refname variable. (#900)
 - Add -C option to specify the working directory. (#570)
 - Improve behaviour of auto and periodic refresh modes. (#389, #441, #482,
   #794, #888, #932)
 - Add support for repos created with git --work-tree. (#872)
 - Add diff-highlight to pager mode.
 - Show annotated commits in main view. (#819)
 - Introduce reflog view. (#538)
 - Add option to start with cursor on HEAD commit. (#755)
 - Support combined diffs with more than 2 parents.
 - Improve how a toggle option value is shown on the status line. (#879)
 - Add options to filter refs output. (#694)
 - Update utf8proc to v2.4.0. (#961)

Bug fixes:

 - Fix garbled cursor line with older ncurses versions.
 - Fix diff highlighting of removed lines starting with -- and added lines
   starting with ++. (#871, #875)
 - Fix loop when displaying search result if regex matches an empty string.
   (#866)
 - Add synchronous command description in tigrc.
 - Fix parsing of git rev-parse output. (#884)
 - Propagate --first-parent to diff arguments. (#861)
 - Use proper type for hash table size. (#858)
 - Fix incorrect cppcheck warning about realloc() use.
 - Don't shift signed int by 31 bits.
 - Fix Vim going background after running Tig outside of a git repository.
   (#906)
 - make-builtin-config: use "read -r". (#912)
 - Fix segfaults with readline 8.0. (#893)
 - Reset state before closing stage view automatically.
 - Don't use a child view as previous view.
 - Force reload of VIEW_FLEX_WIDTH views only when needed.
 - Combined diff uses @@@ as hunk marker.
 - Fix memory leak induced by 'tig grep'.
 - Fix memory leak in main view.
 - Exit gracefully if refs view was defined without ref column. (#897)
 - Fix pager view not moving up when child view is open.
 - make-builtin-config: Fix unportable sed usage in read_tigrc().
 - Properly detect combined diffs. (#942)

tig-2.4.1
---------

Bug fixes:

 - Add `CURSES_CFLAGS` to `CPPFLAGS`. (#856, Linuxbrew/homebrew-core#8440)

tig-2.4.0
---------

Improvements:

 - Add 'send-child-enter' option to control interaction with child views.
   (#791)
 - Update make config defaults for Cygwin to ncurses6. (#792)
 - Build against netbsd-curses. (#789)
 - Change the blame view to render more like `git blame`. (#812)
 - Improve worktree and submodule support. (#459, #781, #783)
 - Support running Tig via a Git alias. (#763)
 - Use ISO-8601 letters for short relative dates. (#759, #760)
 - Change date formatting to show time zones by default. (#428, #811)
 - Use utf8proc to handle Unicode characters. (#827)

Bug fixes:

 - Fix `file(1)` argument on Linux used for resolving encodings. (#788)
 - Fix underflow in the file search. (#800, #801)
 - Fix line numbers in grep view when scrolled. (#813)
 - Pass command line args through to the stage view. (#569, #823)
 - Fix resource leak. (#780)
 - Fix various compiler warnings and pointer arithmetic. (#799, #803)
 - Workaround potential null pointer dereferences. (#824)
 - Bind to single and double quotes by using the *<SingleQuote>* and
   *<DoubleQuote>* key mappings. (#821)
 - Make Tig the process-group leader and clean child processes. (#828, #837)
 - Fix sh compatibility in `contrib/tig-pick`. (#832)
 - Fix incorrect behaviour of up and down keys in diff view when opened from
   diff preview. (#802, #835)
 - Open the stage view when maximizing a split diff view of (un)staged changes.
   (#836)
 - Use fully qualified reference name for tags when conflicting with branch
   name. (#746, #787, #849)
 - Fix resize not working after entering command. (#845) (#846)
 - Use stack allocated memory to handle `TIG_LS_REMOTE`. (#839)
 - Fix deleted file mode line remains highlighted after hovering in diff or
   stage view. (#851)
 - Fix `TIG_LS_REMOTE` not working with git-ls-remote(1). (#853, #854)

tig-2.3.3
---------

Bug fixes:

 - Revert "Handle \n like \r (#758)". (GH #769)
 - Fix GH #164 by catching SIGHUP.
 - Change `refs_tags` type to `size_t`.

tig-2.3.2
---------

Bug fixes:

 - Fix busy loop detection to handle large repos. (GH #164)

tig-2.3.1
---------

Improvements:

 - Restore TTY attributes. (GH #725)
 - Handle `\n` like `\r`. (GH #758)

Bug fixes:

 - Add workaround that detects busy loops when Tig loses the TTY. This may
   happen if Tig does not receive the HUP signal (e.g. when started with
   `nohup`). (GH #164)
 - Fix compatibility with ncurses-5.4 which caused copy-pasting to not work
   in the prompt. (GH #767)
 - tig(1): document correct environment variable. (GH #752)

tig-2.3.0
---------

Incompatibilities:

 - The `width` setting on the `status`, `text` and `commit-title` columns was
   never applied and has been removed. (GH #617)

Improvements:

 - Improve load performance by throttling screen updates. (GH #622, #629)
 - Speed up graph rendering. (GH #638)
 - Enable scroll optimizations for Terminal.app and iTerm2. (GH #637)
 - Improve the test suite portability to not depend on GNU sed. (GH #609, #614)
 - Make build reproducible. (https://reproducible-builds.org/) (GH #613)
 - Enable binding to more symbolic keys and keys with control modifier:
   `F13`-`F19`, `ShiftLeft`, `ShiftRight`, `ShiftDel`, `ShiftHome`, `ShiftEnd`,
   `ShiftTab`, `Ctrl-C`, `Ctrl-V`, `Ctrl-S`, and `Ctrl-@`. (GH #314, #619,
   #642)
 - Persist readline history to `~/.tig_history` or `$XDG_DATA_HOME/tig/history`.
   Use `history-size` to control the number of entries to save. (GH #620, #713,
   #714, #718)
 - Preload last search from persistent history. (GH #630)
 - Add `view-close-no-quit` action, unbound by default. (GH #607)
 - Add `mouse-wheel-cursor` option (off by default) when set to true causes
   wheel actions to prefer moving the cursor instead of scrolling. (GH #608)
 - Add `truncation-delimiter` option, set to `~` by default. (GH #646)
 - Add `-q` parameter to `source` for "source-if-present". (GH #612)
 - Add `:echo` prompt command to display text in the status bar. (GH #626, #636)
 - Make `diff-highlight` colors configurable. (GH #625, #633)
 - Let Ctrl-C exit Y/N dialog, menu prompts and the file finder. (GH #632, #648)
 - Hide cursor unless at textual prompt. (GH #643)
 - Expand tilde ('~') in `:script` paths. (GH #674)
 - Show single-line output of external command in status bar. (GH #200, #557,
   #678)
 - Disable the graph when `--no-merges` is passed. (GH #687)
 - Print backtraces on segfault in debug mode.
 - Ignore script lines starting with `#` (comment). (GH #705)
 - Complete `repo:*` variables when readline is enabled. (GH #702)
 - Incorporate XTerm's `wcwidth.c` to find Unicode widths. (GH #691)

Bug fixes:

 - Fix graph display issues. (GH #419, #638)
 - Fix and improve rendering of Unicode characters. (GH #330, #621, #644, #682)
 - Handle hyphenated directory names when listing content. (GH #602)
 - Do not jump to next match when cancelling the search prompt. (GH #627)
 - Fix clearing of the status line after `Ctrl-C`. (GH #623, #649)
 - Fix handling of width on line-number and trimmed width of 1. (GH #617)
 - Set cursor position when not updating prompt contents. (GH #647)
 - Erase status line at exit time for users without altscreen-capable terminals.
   (GH #589)
 - Fix unexpected keys when restoring from suspend (`Ctrl-Z`). (GH #232)
 - contrib/vim.tigrc: Also bind G in the main as a workaround for limitations of
   the `none` action. (GH #594, #599)
 - Only override `blame-options` when commands are given and fix parsing of
   `-C`. (GH #597)
 - Fix diff name discovery to better handle prefixes.
 - Interpret button5 as wheel-down. (GH #321, #606)
 - Fix `back` / `parent` in tree view. (GH #641)
 - Fix memory corruption in `concat_argv` and file finder. (GH #634, #655)
 - Fix reading from stdin for `tig show`.
 - Document problem of outdated system-wide `tigrc` files in Homebrew. (GH #598)
 - Repaint the display when toggling `line-graphics`. (GH #527)
 - Fix custom date formatting support longer strings. (GH #522)
 - Don't segfault on ":exec" irregular args. (GH #686)
 - Fix segfault when calling htab_empty. (GH #663, #745)

tig-2.2.2
---------

Upgrade instructions:

 - The `status-untracked-dirs` option was renamed to
   `status-show-untracked-dirs` to match the new `status-show-untracked-files`
   option.

Improvements:

 - Use `diff-options` when preparing the diff in the stage view to make the diff
   state configurable. (GH #545)
 - Add 'status-show-untracked-files' option mirroring Git's
   'status.showUntrackedFiles' to toggle display of untracked files.  in the
   status view. On by default. (GH #562)
 - Update `ax_with_curses.m4` and use `pkg-config` to detect. (GH #546)
 - Add `tig-pick` script for using Tig as a commit picker. (GH #575, #580)
 - Add "smart case" option ('set ignore-case = smart-case') to ignore case when
   the search string is lower-case only. (GH #320, #579)

Bug fixes:

 - Fix author ident cache being keyed by email only. (GH #424, #526, #547)
 - Fix periodic refresh mode to properly detect ref changes. (GH #430, #591)
 - Add workaround for detecting failure to start the diff-highlight process.
 - Show diffs in the stash view when `set mailmap = true`. (GH #556)
 - Fix parsing of git-log revision arguments, such as `--exclude=...` in
   conjunction with `--all`. (GH #555)
 - Fix diff stat parsing for binary copies.
 - Fix crash when resizing terminal while search is in progress. (GH #515, #550)
 - Fix argument filtering to pass more arguments through to Git.
 - Check for termcap support in split tinfo libs. (GH #568, #585)

tig-2.2.1
---------

Improvements:

 - Support Git's 'diff-highlight' program when `diff-highlight` is set to either
   true or the path of the script to use for post-processing.
 - Add navigation between merge commits. (GH #525)
 - Add 'A' as a binding to apply a stash without dropping it.
 - Bind 'Ctrl-D' and 'Ctrl-U' to half-page movements by default.
 - manual: Mention how to change default Up/Down behavior in diff view.

Bug fixes:

 - Reorganize checking of libraries for termcap functions.
 - Fix `:goto <id>` error message.

tig-2.2
-------

Incompatibilities:

 - Note that all user-defined commands are now executed at the repository root
   instead of whatever subdirectory Tig was started in. (GH #412)
 - Remove `cmdline-args` option to avoid problems where setting it in `~/.tigrc`
   potentially breaks other views due to its "context-sensitive" nature, where
   a `git-log` option maybe cause `git-grep` to fail. (GH #431)

Improvements:

 - Use .mailmap to show canonical name and email addresses, off by default.
   Add `set mailmap = yes` to `~/.tigrc` to enable. (GH #411)
 - Highlight search results, configurable via `search-result` color. (GH #493)
 - Wrap around when searching, configurable via `wrap-search` setting.
 - Populate `%(file)` with file names from diff stat. (GH #404)
 - `tig --merge` implies `--boundary` similar to gitk.
 - Expose repository variables to external commands, e.g. `%(repo:head)` gives
   the branch name of the current HEAD and `%(repo:cdup)` for the repo root
   path.
 - Add `make uninstall`. (GH #417)
 - Add ZSH completion file (based on Bash completion) (GH #433)
 - Expose the text of the currently selected line as the %(text) (GH #457)
 - Allow users to specify rev arguments to blame (GH #439)
 - Update OSX make config to find brew installed ncurses
 - Add sample git-flow keybinding (GH #421)
 - Add chocolate theme (GH #432)
 - Show stash diffs. (GH #328)
 - Make user tigrc location configurable. (GH #479)
 - Compact relative date display mode. (GH #331)
 - Add date column option controlling whether to show local date.
 - Move to parent commit in the main view. (GH #388)
 - Add `:goto <rev>` prompt command to go to a `git-rev-parse`d revision, e.g.
   `:goto some/branch` or `:goto %(commit)^2`.
 - Respect the XDG standard for configuration files. (GH #513)
 - Show tracking information in `tig status` (GH #504)
 - Resolve diff paths when `diff.noprefix` is true. (GH #487, #488)
 - Support for custom `strftime(3)` date formats, e.g.:

	set main-view-date = custom
	set main-view-date-format = "%Y-%m-%d"

Bug fixes:

 - Prevent staged rename from displaying unstaged changes (GH #472, #491)
 - Fix corrupt chunk header during staging of single lines. (GH #410)
 - Fix out of bounds read in graph-v2 module. (GH #402)
 - Add currently checked out branch to `%(branch)`. (GH #416)
 - Size diff stats correctly for split views.
 - Fix `git-worktree` support by using `git-show-ref`. (GH #437)
 - Add currently checked out branch to `%(branch)` (GH #416)
 - Fix segfault when hitting return in empty file search (GH #464)
 - Remove separator on horizontal split when switching from vertical split
 - Do not expand `--all` when parsing `%(revargs)` (GH #442, #462)
 - Fix exit when the main view is reloaded due to option toggling. (GH #470)
 - Expand all whitespace and control characters to spaces. (GH #485)
 - Restore ability to unbind a default keybinding with `none`. (GH #483)
 - Fix blob view to honor the `wrap-lines` setting.

tig-2.1.1
---------

Improvements:

 - Add support for key combos. (GH #67)
 - See `contrib/vim.tigrc` for Vim-like keybindings. (GH #273, #351)
 - Add GitHub inspired file finder to search for and open any file. (GH #342)
 - Add `search` keymap for navigating file finder search results.

Bug fixes:

 - Fix display of multiple references per commit. (GH #390, #391)
 - Sync the prompt's cursor position with readline's internal position.
   (GH #396)
 - Keep unstaged changes view open after an staging command. (GH #399)

tig-2.1
-------

Improvements:

 - Improve C99 compliance so Tig compiles with the native compilers on
   Solaris (SunStudio cc) and AIX (xlc). (GH #380)
 - Add move-half-page-up and move-half-page-down actions. (GH #323)
 - Preserve the cursor position when changing the diff context.
 - Show 'Unstaged changes' above 'Staged changes' in the main view. (GH #383)
 - Add `:exec <flags><args...>` prompt command to execute commands.
 - Add shorthand for changing the view settings of a single column,
   eg. `set main-view-author = short`. (GH #318)
 - Show better diff context info in the stage view.
 - Add `%(lineno)` state variable. (GH #304)
 - Use hash table to speed up refs lookup. (GH #350)
 - Show the file path in the blob view when available.
 - Use `set commit-order = default` to use Git's default commit order, even when
   the commit graph is enabled. The option will turn off automatic enabling of
   `--topo-order` when the graph is shown in the main view. (GH #310, #324)
 - Speed up the diff view in large repos by loading git-describe info after the
   diff content has been read. (GH #324)
 - Add the old graph rendering as an option. (GH #310, #324)
 - Add `main-options` setting for specifying default main view options.
   Example: `set main-options = --max-count=1000`. (GH #368)
 - See `contrib/large-repo.tigrc` for settings that will help to speed up Tig in
   large repos. (GH #368)
 - Add `:save-options <file>` prompt command to save config to file. (GH #315)

Bug fixes:

 - Update manual to reflect default keybinding changes. (GH #325)
 - Fix graph support for `--first-parent`. (GH #326)
 - Fix off-by-one error when opening editor from the grep view.
 - Fix status on-branch information.
 - Fix main view to handle the case when git-log doesn't find any commits.
 - Fix corner case when parsing diff chunk when lines information is missing.
 - Ensure main view changes commits are shown right before the current HEAD.
 - Fix rendering of boundary commits.
 - Fix compilation with GNU Make 3.80 by removing `$(abspath)`. (GH #362)
 - Fix config parsing to support shell-like quoting in user-defined command,
   e.g. `bind generic <Ctrl-f> :!git log -G"%(prompt Prompt: )"` (GH #371)
 - Make diff meta information colors more consistent with Git. (GH #375)
 - Fix segfault when updating changes in a maximized stage view opened via the
   main view. (GH #376)
 - Handle line number configs where the interval is not specified. (GH #378)
 - Fix display of error messages during startup. (GH #385)
 - Show untracked files outside the current directory like git-status. (GH #230)

tig-2.0.3
---------

Improvements:

 - Add `:save-display <file>` prompt command to save the current display.
 - Add `:script <file>` prompt command for scripting the Tig UI.
 - Add test framework and convert existing tests to use it.
 - Add command-line option for starting in refs view: `tig refs`. (GH #309)
 - Make blame commit ID colors stable across reloads. (GH #303)
 - Increase blame ID and graph rendering color palette to 14 colors.
 - New setting 'split-view-width' controls the width for vertical splits. It
   takes the width of the right-most view either as a number or a percentage.
 - Expose settings holding command line argument lists: `file-args`, `rev-args`,
   and `cmdline-args`. They are mainly intended for testing purposes but also
   allows to change the filtering arguments dynamically. (GH #306)
 - Add `log-options` setting for specifying default log view options.
   Example: `set log-options = --pretty=fuller`.
 - Use option specific view flags to reload view after `:set` commands.

Bug fixes:

 - Refresh the current view when returning from an external command and
   `refresh-mode=after-command`. (GH #289)
 - Fix readline completion.
 - Fix '/' to `find-next` when readline support is enabled. (GH #302)
 - Fix readline prompt to correctly handle UTF-8 characters.
 - Add warnings for more obsolete actions and colors.
 - Fix passing of commit IDS via stdin to the main view.
 - Fix commit title overflow drawing for multibyte text. (GH #307)
 - Fix installation directory permissions.
 - Handle binary files matches reported by git-grep.
 - Toggling of "args"-typed options without any arguments will clear the current
   arguments. Example: `:toggle blame-options`.
 - Detect custom `pretty.format` settings that break the log view and fallback
   to use the `medium` format. (GH #225)
 - Fix invocation of git-diff for the blame view's line tracking. (GH #316)
 - Fix blame completion of directory names. (GH #317)
 - Fix display of conflicts in the main view when 'show-changes' is enabled.
 - Fix off-by-one error when displaying line numbers in the grep view.
 - When showing the commit graph ensure that either topo, date or author-date
   commit order is used. (Debian #757692) (GH #238)

tig-2.0.2
---------

Improvements:

 - Use git-status for diffing the index.
 - Group toggle options together in the help view.

Bug fixes:

 - Fix refs, main and grep loading when 'gui.encoding' is set. (GH #287)
 - Ignore 'gui.encoding' and 'i18n.commitencoding' when set to 'UTF-8'.
 - Add work-around for missing strndup() on Mac OS X v10.6. (GH #286)
 - Fix spurious abbreviation of author names. (GH #288)
 - Don't show empty action groups in the help view.

tig-2.0.1
---------

Bug fixes:

 - Fix compilation in watch.c.
 - Fix parsing of key bindings mapped to '^' and '<'. (GH #280, #282)

tig-2.0
-------

Incompatibilities:

 - In preparation for key combo support, key mappings for symbolic keys (e.g.
   `Up` and `Down`) must now start with `<` and end with `>`, e.g. `<Up>` and
   `<Down>`. Furthermore, escape key combos must now use `<Esc>key` instead of
   `^[key`, and control key mappings must now use `<Ctrl-key>` instead of
   `^key`.
 - Only use 'diff-options' for the diff view and introduce '%(cmdlineargs)' to
   hold non-file and non-revision flags passed on the command line. Affects all
   user-defined commands that expect '%(diffargs)' to hold both 'diff-options'
   arguments and those passed on the command line. (GH #228)
 - Remove built-in keybinding for `git gc`. Add the following line to `~/.tigrc`
   to restore it: `bind generic G ?git gc`.
 - To support view specific colors, '.' can no longer be used interchangeably
   with '-' and '_' in settings names and in particular color names.
 - Replace 'stage-next' action with prompt command using a predefined search
   (see below) and add binding (`@` by default) to also work in the diff view.
 - Most view display options must now be set via the new `*-view` options in
   tigrc. Existing options are no longer recognized, but a warning is shown.
 - Remap default bindings to have more consistent convention: use lower-case
   keys primarily for view switching and non-destructive actions, use upper-case
   keys for view-specific actions including user-defined commands. To preserve
   old default key bindings see `contrib/bindings-v1.x.tigrc`. (GH #257)

Improvements:

 - Add mouse support: scroll view, click line to move cursor, double click line
   (or click again) to "Enter" cursor line, e.g. open commit diff. Disabled by
   default, since it makes text selection less intuitive. If you enable this
   remember to hold down Shift (or Option on Mac) when selecting text.
 - Rewrite and improve the rendering of the commit graph. (GH #144, #46)
 - Add completion and history support to the prompt via readline. (GH #185)
 - Options can be configured and toggled individually for each view. Use the new
   view settings to configure the order and display options for each view
   columns. See system tigrc and tigrc(5) for examples. (GH #89, #222)
 - Add grep view as a front-end to git-grep(1): `tig grep -p strchr`. From
   within Tig, the key for switching or grepping is bound to 'g' by default.
 - Rename 'branch' view to 'refs' view and show tags. (GH #134)
 - Add main view pager mode that reads git-log's '--pretty=raw' data
   from stdin, e.g. `git reflog --pretty=raw | tig --pretty=raw`.
 - Add support for `--graph` and highlight diff stats in the log view.
 - Add default command bindings: `!` to delete branch, `!` to drop stash.
 - Add 'stage-split-chunk' action for splitting chunks in the stage view.
   Bound to '\' by default. (GH #107)
 - Add 'back' action bound to '<' by default, which will return the blame view
   to the previous revision and line after moving e.g. to the parent. (GH #124)
 - Auto-refresh views based on watched repository changes. Configure by setting
   `refresh-mode` to 'manual', 'auto', 'after-command', or 'periodic'. (GH #190)
 - All default settings are in well-documented system `tigrc`.
 - Add `:toggle` prompt command to manipulate options using keybindings. For
   example: `bind diff D :toggle diff-options --patience --notes`. (GH #69)
 - Add a new "auto" value for the 'vertical-split' option to let Tig choose the
   split orientation (this is the new default behavior). Can be toggled.
 - Make it possible to toggle the display of files in untracked directories.
 - Allow Tig to be started with no default configuration by specifying an
   alternative system `tigrc` file, e.g.: `TIGRC_SYSTEM=~/.tigrc.safe tig`. Set
   `TIGRC_SYSTEM` to the empty string to use built-in configuration instead of
 - Key mappings can contain UTF-8 multibyte unicode keys.
 - Warn about conflicting keybindings using Ctrl, e.g. `<Ctrl-f>` and
   `<Ctrl-F>`. (GH #218)
 - Extend key bindings for prompt commands (ie. `bind <keymap> <key> :<prompt>`)
   to support predefined searches, eg.: `bind stage 2 :?^@@`.
 - Git color mappings can be configured in tigrc.
 - More informative configuration error messages.
 - Make reference label formatting configurable, for example:
   `set reference-format = (branch) <tags> remote`. (GH #201)
 - Adjust author width and other view columns automatically. (GH #49)
 - Support view specific colors: `color stage.diff-add yellow default`.
 - Copy `-S`, `-G` and `--grep=` pattern to search buffer so 'find-next' and
   'find-prev' work as expected.
 - Optionally specify custom prompt for `%(prompt)` in shell commands, e.g.
   `bind main B ?git checkout -b "%(prompt Enter new branch name: )"`.
 - Add `%(remote)` and `%(tag)` symbols to complement `%(branch)`.
 - User-defined commands can now be prefixed with any of the supported flags,
   e.g. `?git checkout -b %(branch)`.
 - Open editor at line number for combined diffs e.g. diffs of unmerged files.
 - Add build configuration for Cygwin (OS name: CYGWIN_NT-6.1). (GH #92)
 - Document the Git commands supported by the pager mode.  (GH #1)
   system `tigrc` configuration. (GH #235)

Bug fixes:

 - Fix stash diff display when reloading the stash view after a deleting.
 - Set the commit reference when opening the blame view from the blob view.
 - Correctly identify and highlight the remote branch tracked by HEAD.
 - Pass --no-color after user defined arguments to ensure that colors do not
   break the output parsing. (GH #191)
 - Close stdin when pager mode is not supported.
 - Show newly created branches in the main view. (GH #196)
 - File with 0 changes breaks diffstat highlighting (GH #215)
 - Update %(branch) variable in the main view. (GH #223)
 - Disable graph rendering when either of `--reverse`, `-S`, `-G`, and `--grep`
   are passed to the main view. (GH #127)
 - Only refresh views that support it.
 - Fix author and date annotation of renamed entries in the tree view.
 - Fix use of unsafe methods in the signal handler. (GH #245)
 - Fix rendering in non-UTF8 terminals.
 - Fix stage-update-line by rewriting the diff chunk containing the line instead
   of using `--unidiff-zero` and a diff context of zero. (GH #130)
 - Fix status-update to work for untracked directories. (GH #236)
 - Don't pass log parameters given on the command line to the diff view.
jperkin pushed a commit that referenced this issue Jun 15, 2021
# pillar 1.6.1

- Bump required versions of ellipsis and vctrs to avoid warning during package load.
- `obj_sum()` no longer includes shape twice (#315).


# pillar 1.6.0

## Features

- New `num()` and `char()` offer a flexible way to customize the display of numeric and character columns (#191, #84).
- New `"pillar.max_dec_width"` option (#308).
- New `format_type_sum.AsIs()` avoids the need to implement your own `format_type_sum()` method (#286).
- `align()` gains `space` argument to control the character used for filling (#285).
- Numbers in scientific and decimal notation are formatted with the same rules regarding significant or decimal digits (#297).

## Bug fixes

- Load the debugme package only if the `DEBUGME` environment variable is set.
- More accurate detection if the decimal dot is necessary, and how many digits to show after the decimal dot (#298).
- Use display width instead of number of characters when truncating character columns.

## Documentation

- New `vignette("numbers")` and `vignette("digits")` (#308).

## Internal

- Compatibility with vctrs 0.3.7 (#291).
- `format.pillar_shaft_simple()` requires `"na"` attribute and no longer defaults to `pillar_na()` (#273).


# pillar 1.5.1

## Features

- New `format_glimpse()` (#177).

## Bug fixes

- Color and formatting can now be reliably turned off by setting the `"cli.num_colors"` option to 1 (#269).

## Documentation

- Add examples for new functions (#264).
- Fix lifecycle badges everywhere.


# pillar 1.5.0

## Breaking changes

- `obj_sum()` now always returns a string. `pillar_shaft.list()` iterates over its elements and calls `obj_sum()` for each (#137).

- Breaking: `print.pillar()` and `print.pillar_ornament()` now show  `<pillar>` `<pillar_ornament>` in the first line (#227, #228).

- pillar has been re-licensed as MIT (#215).

## Extensibility

- New `size_sum()` generic (#239).

- New `ctl_new_pillar()` and `ctl_new_compound_pillar()` used via `print.tbl()`, `format.tbl()` and `tbl_format_setup.tbl()` (#230).

- New `new_pillar()` low-level constructor (#230).

- New `new_pillar_component()` and `pillar_component()` (#230).

- New articles `vignette("extending")` and `vignette("printing")` (#251).

## Formatting

- All printing code has been moved from tibble to pillar (#179), including `glimpse()` (#234). This concentrates the printing code in one package and allows for better extensibility.

- Improve formatting for `"Surv"` and `"Surv2"` classes from the survival package (#199).

- Vectors of the `vctrs_unspecified()` class are formatted better (#256).

- Arrays are now formatted by showing only their first slice (#142).

- Avoid wrapping extra column names with spaces (#254).

## Internal

- Now using debugme to simplify understand the complex control flow, see `vignette("debugme")` (#248).

- New `format.pillar_ornament()` (#228).

- Using testthat 3e (#218).

- Avoid pillar.bold option in most tests (#216).

- Change internal storage format for `colonnade()` and `extra_cols()` (#204).


# pillar 1.4.7

- Adapt to changed environment on CRAN's Solaris machine.


# pillar 1.4.6

- Restore compatibility with R 3.2.


# pillar 1.4.5

## Features

- New `pillar.min_chars` option allows controlling the minimum number of characters shown for a character column (#178, @statsmaths).

- `bit64::integer64()` columns are now formatted the same way as numeric columns (#175).

- New `align()` to support easy alignment of strings within a character vector (existing function exported by @davidchall, #185).

## Technical

- `pillar_shaft()`, `format_type_sum()` and `extra_cols()` issue a warning if dots are unused.

- `new_pillar_title()` and `new_pillar_type()` warn if `...` is not empty.

## Internal

- Use lifecycle package.

- Remove compatibility code for R < 3.3.


# pillar 1.4.4

- `obj_sum()` uses `vctrs::vec_size()` internally.

- `is_vector_s3.default()` is soft-deprecated and no longer used. Please ensure that `vctrs::vec_is()` is `TRUE` for your class.

- Rely on vctrs for type abbreviations.


# pillar 1.4.3

- `new_pillar_shaft_simple()` gains `na` argument to control appearance of `NA` values.

- String columns are quoted if at least one value needs quotes (#171).

- Apply subtle style to `list_of` columns (#172).

- Fix formatting if mantissa is very close to 1 (#174).

- Use `as.character()` instead of `as_character()`.

- Remove compatibility with testthat < 2.0.0.
jperkin pushed a commit that referenced this issue Jun 21, 2021
* Prevent an AttributeError that occurs when a server returns HTTP 3xx
  but doesn't include a Location header as well. (#267)
* Prevent a TypeError crash that may occur when including a username and
  password in the feed URL. (#276)
* Prevent a UnicodeDecodeError crash that may occur when the title
  element's type attribute exists but is empty. (#277)
* Prevent a UnicodeEncodeError crash that may occur if the URL contains
  Unicode characters in the path. (#273)
* Fix an issue with the HTTP request status on Python >= 3.9.

Updating during the freeze for the bugfixes.
jperkin pushed a commit that referenced this issue Jul 1, 2021
Changes since v3.18:

- Fixes a variable-font interpolation bug with Roman numeral eight. #382
- Fixes spacing of the latin epsilon glyph thanks to @hcsch. #377
- Adds new glyph U+25AA "blackSmallSquare" including calt mappings for
  case sensitivity. #373
- Removes U+20E3 "uni20E3" COMBINING ENCLOSING KEYCAP which triggers a
  bug in chromium, causing certain emoji to not render properly. #371
- Improvements to Roman numerals

Changes since v3.17:

- Adjusts vertical metrics metadata to that of v3.15 and older. This
  should fix any vertical alignment issues that might have occurred with
  v3.17. #361
- Fixes several issues with italics introduced by Glyphs 3 upgrade:
- Fixes an issue with backslash in Italic masters. #362
- Fixes issues with afii10026 and uni0376 in italic masters
- Fixes issue with italic q U+0071 by inlining the shape instead of
  using components. #360
- Fixes issue with U+035E COMBINING DOUBLE MACRON and U+20F0 COMBINING
  ASTERISK ABOVE in Thin Italic. #363
- Fixes positioning issue with U+0358 COMBINING DOT ABOVE RIGHT
- Improvements to U+20DC COMBINING FOUR DOTS ABOVE and U+20DB COMBINING
  THREE DOTS ABOVE
- Improvements to U+204E LOW ASTERISK
- Improved positioning via mark anchors of combining glyphs U+20F0,
  U+035E and U+035F. #363
- Changes glyph shape of Latin upper-case iota. #359
- Improved glyph composition via ccmp for enclosed glyphs like
  U+0041,U+20DD. #335

Changes since v3.15:

- Fixes issues with appearance in Microsoft Word. #352 (note that #156
  is still unresolved although we have made some progress in v3.16 toward
  developing workarounds for certain printers.)
- Fixes double grave interpolation issue. #317
- Fixes design issue with glyphs acutedblnosp, dblgravecmb, uni02F6 and
  uni02F5. #339
- Fixes missing or incorrect mark anchors in several turn* glyphs. #336
- Adds Baht currency glyph U+0E3F. #323
- Improvement to Latin iota (lower and upper case) glyphs. #340
- Improvement to some numerical fraction glyphs
- Adds a dummy DSIG table to address issues with Microsoft Office 2003
  and older
- Improvements when using Inter with certain older Microsoft products
  by decomposing any nested components which some of that software has
  issues with
- Addresses a major regression in v3.16 where several italic glyphs got
  messed up due to a Glyphs 3 version upgrade of the source file. This
  only affected users of v3.16 which was only released for about 12 hours
  before being replaced with this release v3.17. #360

Changes since v3.14:

- Fixes an issue with the variable font, where some software would not
  list the various weights correctly. #308
- Fixes an issue with rendering on Windows with ClearType where some
  glyphs using advanced OpenType features (component transformations)
  would render incorrectly, with a slight vertical offset. #251
- Improvements to Elfdalian, improving the /yogonek and /eth glyphs #285
- Improvements to /eth U+00F0 glyph f7924a2#commitcomment-41610142

Changes since v3.13:

- Fixes position of ring at bottom of /Aringbelow U+1E00. #266
- Fixes interpolation issues with /omegatitlocyrillic /omega and
  /pisymbolgreek. #272
- Fixes an issue with /dotmacroncomb.cn used by glyphs like
  /Adotmacron. #298
- Adds /bitcoin glyph U+20BF. #284
- Adds /insertionsymbol U+2380. #290
- Adds specialized glyphs /Aringogonek, /aringogonek, /Yogonek and
  /yogonek to fully support Elfdalian script. #285
- Adds U+EE01, a vertically-centered colon used by Android on the lock
  screen #212
- Improves kerning of /quotedblright,/quoteright and /period,/comma. #299
- Improves design of "Theta" U+03F4, U+0398 and "Fita" U+0472,
  U+0473. #263, #264
- Improves design of /yhook and use /ucyrillic in /Ukcyrillic
  /ukcyrillic. #273
- Improves design of /dzaltone and /dzcurl. #268
- Improves design of /percent, /perthousand and /pertenthousand
  glyphs. #237
- Improves variable-font metadata (STAT table). #265
- Improves (tunes) calt case substitutions, e.g. "x -X". #251
- Changes codepoint mapping of /q.sups from U+146B to private-area
  U+E163. #275

Changes since v3.12:

- Improvements to Greek and Cyrillic glyphs #240
- New stylistic set ss04 which is almost identical to ss02 with the
  exception of no slashed zero #252
- Fixes interpolation issues with several diacritics in the light
  weights #257
- Removes codepoint mappings for some math-related enclosed glyphs that
  would be too large when using the circle-enclosed glyphs #250
- Various improvements and adjustments to glyph shapes, spacing and
  kerning
- Improves OpenType feature name metadata

Changes since v3.11:

- This release includes major improvements Thin, Light and ExtraLight
  styles (including italic counterparts) incorporating months of work
  by @KatjaSchimmel
jperkin pushed a commit that referenced this issue Aug 23, 2021
# rio 0.5.27
* Documentation fixes for CRAN.

# rio 0.5.26
* Added support for "zsav" format. (#273)

# rio 0.5.25
* Modified tests per email request from CRAN.
* Added `coerce_character` argument (default FALSE) to `factorize()`
  to enable coercing character columns to factor. (#278)

# rio 0.5.24
* Fix handling of "label" and "labels" attributes when exporting using
  haven methods (SPSS, Stata, SAS). (#268, h/t Ruben Arslan)
* Fix (a different bug?) handling factors by haven::labelled() (#271,
  Alex Bokov)
* HTML import can now handle multiple tbody elements within a single
  table, a th element in a non-header row, and empty elements in
  either the header or data. (#260, #263, #264 Bill Denney)

# rio 0.5.23
* CSVY support is now provided by `data.table::fread()` and
  `data.table::fwrite()`, providing significant performance gains.
* Added an internal `arg_reconcile()` function to streamline the task
  of removing/renaming arguments for compatibility with various
  functions (#245, Alex Bokov)

# rio 0.5.22
* Added an `export_list()` function to write a list of data frames to
  multiple files using a vector of file names or a file
  pattern. (#207, h/t Bill Denney)
* Added an `is_file_text()` function to determine whether a file is in
  a plain-text format. Optionally narrower subsets of characters can
  be specified, e.g. ASCII. (#236 Alex Bokov)

# rio 0.5.21
* Added support for Apache Arrow (Parquet) files. (#214)
* Fix dropping of variable label in `characterize()` and
  `factorize()`. (#204, h/t David Armstrong)
* `import_list()` now returns a `filename` attribute for each data
  frame in the list (when importing from multiple files), in order to
  distinguish files with the same base name but different extensions
  (e.g., `import_list(c("foo.csv", "foo.tsv"))`). (#208, h/t Vimal
  Rawat)
* Import of DBF files now does not convert strings to factors. (#202,
  h/t @jllipatz)
* Implemented `import()` method for .dump R files. (#240)

# rio 0.5.20
* Additional pointers were added to indicate how to load .doc, .docx,
  and .pdf files (#210, h/t Bill Denney)
* Ensure that tests only run if the corresponding package is
  installed.  (h/t Bill Denney)
* Escape ampersands for html and xml export (#234 Alex Bokov)

# rio 0.5.19
* Fix behavior of `export()` to plain text files when `append = TRUE`
  (#201, h/t Juli�$BC!�(Bn Urbano)
* `import_list()` now preserve names of Excel sheets, etc. when the
  'which' argument is specified. (#162, h/t Danny Parsons)
* Modify message and errors when working with unrecognized file
  formats. (#195, h/t Trevor Davis)
* Add support for GraphPad Prism .pzfx files (#205, h/t Bill Denney)

# rio 0.5.18
* Adjust `import()`/`export()` for JSON file formats to allow non-data
  frame objects. Behavior modeled after RDS format. (#199 h/t Nathan
  Day)

# rio 0.5.17
* Fix `the condition has length > 1 and only the first element will be
  used` warning in `gather_attributes()`. (#196, h/t Ruben Arslan)
jperkin pushed a commit that referenced this issue Sep 20, 2021
# version 0.7-2

* enhance `pillar` integration; #273, #275, #280 @krlmlr

* new `unique` method for `units` and `mixed_units` objects; #283 addressing
  #277 @lewinfox
jperkin pushed a commit that referenced this issue Jul 24, 2022
What's Changed

    feature: support for CycloneDX schema 1.4.2 - adds
    vulnerability.properties to the schema by @madpah in #273
jperkin pushed a commit that referenced this issue Sep 17, 2022
Patches privately shared by <pin> and RVP, thanks!

Changes:
608
---
* Add the --header option (github #43).
* Add the --no-number-headers option (github #178).
* Add the --status-line option.
* Add the --redraw-on-quit option (github #36).
* Add the --search-options option (github #213).
* Add the --exit-follow-on-close option (github #244).
* Add 'H' color type to set color of header lines.
* Add #version conditional to lesskey.
* Add += syntax to variable section in lesskey files.
* Allow option name in -- command to end with '=' in addition to '\n'.
* Add $HOME/.config to possible locations of lesskey file (github #153).
* Add $XDG_STATE_HOME and $HOME/.local/state to possible locations
  of history file (github #223).
* Don't read or write history file in secure mode (github #201).
* Fix display of multibyte and double-width chars in prompt.
* Fix ESC-BACKSPACE command when BACKSPACE key does not send 0x08
  (github #188).
* Add more \k codes to lesskey format.
* Fix bug when empty file is modified while viewing it.
* Fix bug when parsing a malformed lesskey file (githb #234).
* Fix bug scrolling history when --incsearch is set (github #214).
* Fix buffer overflow when invoking lessecho with more than 63 -m/-n
  options (github #198).
* Fix buffer overflow in bin_file (github #271).
* Fix bug restoring color at end of highlighted text.
* Fix bug in parsing lesskey file.
* Defer moving cursor to lower left in some more cases.
* Suppress TAB filename expansion in some cases where it doesn't make sense.
* Fix termlib detection when compiler doesn't accept
  calls to undeclared functions.
* Fix bug in input of non-ASCII characters on Windows (github #247)
* Escape filenames when invoking LESSCLOSE.
* Fix bug using multibyte UTF-8 char in search string
  with --incsearch (github #273).

590
---
* Make less able to read lesskey source files (deprecating lesskey).
* If XDG_CONFIG_HOME is set, find lesskey source file
  in $XDG_CONFIG_HOME/lesskey rather than $HOME/.lesskey.
* If XDG_DATA_HOME is set, find and store history file
  in $XDG_DATA_HOME/lesshst rather than $HOME/.lesshst.
* Add the --lesskey-src option.
* Add the --file-size option.
* With -F, if screen is resized to make file fit on one screen, don't exit.
* Fix bug which could leave terminal in mouse-reporting mode
  after exiting less.
* Fix bug which caused failure to respond to window resize.
* Fix backslash bug searching in tag file.

581
---
* Change ESC-u command to toggle, not disable, highlighting per man page.
* Add ESC-U command.
* Add ctrl-W search modifier for wrapping search.
* F command can be interrupted by ^X.
* Support OSC 8 hyperlinks when -R is in effect.
* g command with no number will ignore -j and put first line at top of screen.
* Multiple + or -p command line options are handled better.
* Add the --incsearch option.
* Add the --line-num-width option.
* Add the --status-col-width option.
* Add the --use-color and --color options.
* Display -w highlight even if highlighted line is empty.
* If search result is in a long line, scroll to ensure it is visible.
* Editing the same file under different names now creates only
  one entry in the file list.
* Make visual bell more visible on some terminals.
* Ring end-of-file bell no more than once per second.
* Build can use either Python or Perl for Makefile.aut operations.
* Fix crash when using the @ search modifier.
* Fix crash in the 's' command due to duplicate free.
* Fix realpath crash on Darwin.
jperkin pushed a commit that referenced this issue Sep 29, 2022
## 1.7.0 - 2022-09-28

* `FD_CLOEXEC` is now set on platforms that do not support `O_CLOEXEC`.
  Reported by rittneje. GitHub #273.
* When building with Visual Studio, you may now build a static runtime with
  CMake by setting `MSVC_STATIC_RUNTIME` to `ON`. Pull request by Rafael
  Santiago. GitHub #269.
* The CMake build now works on iOS. Pull request by SpaceIm. GitHub #271.
* The CMake build now uses the correct library directory on Linux systems
  using alternate directory structures. Pull request by Satadru Pramanik.
  GitHub #284.
* File size check now correctly compares the size to `SSIZE_MAX`. Reported
  by marakew. GitHub #301.
jperkin pushed a commit that referenced this issue Mar 12, 2023
# rgl 1.0.1

## Major changes

* The long promised deprecations of the `rgl.*` functions
have happened.  Now deprecated: `rgl.abclines`,
`rgl.bbox`, `rgl.bg`, `rgl.clear`, `rgl.clipplanes`,
`rgl.close`, `rgl.light`, `rgl.lines`,
`rgl.linestrips`, `rgl.material`,  `rgl.open`,
`rgl.planes`, `rgl.points`, `rgl.quads`,
`rgl.select3d`, `rgl.set`, `rgl.setAxisCallback`,
`rgl.sprites`, `rgl.surface`, `rgl.texts`,
`rgl.triangles`, and `rgl.viewpoint`.
* A vignette "Deprecating the `rgl.*` interface"
has been added.
* Also deprecated: `elementId2Prefix`, `writeWebGL`

## Minor changes

* Since `rgl.material` is deprecated and no
longer contains the list of material types in its
argument list, `rgl.material.names` and `rgl.material.readonly` have been
added.
* Similarly, `rgl.par3d.names` and `rgl.par3d.readonly`
contain lists of properties that may be set or queried
in `par3d()`.
* The flexibility improvements for `surface3d()` in
0.111.6 were incomplete.
* Argument `flip` has been added to `surface3d()` to allow
front and back to be switched.

# rgl 0.111.6

## Minor changes

* Added a panning example to the help page for `setUserCallbacks()`.
* Replaced all calls to `sprintf` from C/C++ code with calls to
`snprintf`.
* `surface3d` and `rgl.surface` are now more flexible,
allowing any of the 3 coordinates to be a vector or matrix
as long as at least one is a matrix.
* `material3d` can now specify an `id` to query properties
for individual objects.
* Since `rgl.material` is soon to be deprecated and no
longer contain the list of material types in its
argument list, `rgl.material.names` and `rgl.material.readonly` have been
added.
* Similarly, `rgl.par3d.names` and `rgl.par3d.readonly`
contain lists of properties that may be set or queried
in `par3d()`.
* Made some examples conditional on interactive use
to save time on CRAN.

## Bug fixes

* Default mouse modes used when a window is opened by an `rgl.*`
call (which is not recommended!) now match
the defaults in `rgl::r3dDefaults`.
* Missing values could cause `surface3d()` to segfault.
* The C source code for `gl2psGetFileFormat` missed declaring
a prototype.

# rgl 0.110.2

## Major changes

* Material property `"blend"` has been added, to allow
various kinds of blending for semi-transparent objects
(issue #245).

## Minor changes

* The `Buffer` object now handles reading of sparse
accessors.
* Low level drawing of primitives has been made more
memory efficient.  This is only likely to make a
noticeable change with very large objects, where R
was running out of memory because of unnecessary
duplication. (Related to issue #260.)
* Recycling of x, y and z vectors in several functions
is more consistent.
* The `polygon3d()` function now chooses coordinates
automatically, as `triangulate()` does (PR #262.)
* The `mtext3d()` and related functions such as
`title3d()` now accept language objects
other than expressions, as `plotmath3d()` always has
(issue #273).

## Bug fixes

* The bounding box could be calculated incorrectly
if data all had large values (issue #250).
* Shiny displays failed to load the shaders (issue #249).
* `transform3d()` failed due to missing argument (issue #253).
* `readOBJ()` is now more flexible in what kinds of
separators it will accept. (issue #258).
* Failure to initialize could cause a segfault.
* On non-macOS platforms, gray-scale textures failed
to display, with a message about an invalid enumerant.
* The third coordinate for `adj` that was added in 0.108.3
was not rendered properly in `rglwidget()` displays of
text.  This sometimes caused text to disappear when it
was near the far limit of the display (issue #269).
* The X11 error fix in 0.109.6 could result in R
freezing in `Rcmdr`.
* Low level drawing functions are now more consistent
about returning an invisible `NULL` if asked to plot zero
items, rather than raising an error or crashing (issue #274).
* Calling `axis3d()` with no ticks or labels no longer triggers
an error, it now silently returns `NULL`.

# rgl  0.109.6

## Minor changes

* `rglwidget()` displays now act on "pointer" events,
not just "mouse" events, so they should be more usable
on touch screens and tablets (PR #240).

## Bug fixes

* Plotting `scene3d()` objects didn't handle suppressed
axes properly, drawing the default axis instead (issue
#241).
* On some systems using X11, `rgl` would segfault when
the "fixed" font was not found.
* X11 errors could cause R to abort.

# rgl  0.109.2

## Major changes

* Changes to support glTF animation:
  - Handling of `embedding = "modify"` for the model matrix
    has changed.  Now the centering step is only done for
    `embedding = "replace"`.  In addition, various bugs
    have been fixed.
  - If a subscene has no lights defined, the lights from the parent
    are used.
  - `plot.rglscene()` now ends with the root subscene as
    current.  It also allows specification of `open3d()`
    parameters in a list.
  - The `MATn` types in `Buffer` are returned as arrays with
    dim `c(n, n, count)`.
  - The `plot3d.rglscene` method now passes `...` to `open3d()`.
  - The `setUserShaders()` function now allows arrays of 4x4 matrices as "uniforms", and allows additional textures to be specified.
* `sprites3d()` now has the option of
`rotating = TRUE`, to allow 3D sprites to rotate with
the scene.
* Added `getShaders()` function to get shaders used in WebGL.
* Now detects if `rgl` is running within `reprex::reprex()`
and if so arranges that a screenshot will be included in the
output.
* Added default shaders to be used in `rglwidget()`, rather than
constructing them on the fly.  This incompatibly affects the use
of lights and clipping planes with user shaders:  their data
is now stored in arrays rather than multiple numbered variables.

## Minor changes

* Now that `pkgdown` 2.0.0 has been released, a number
of internal workarounds to support the development version
have been removed.
* Added `as.mesh3d()` methods for `"rglsubscene"` and `"rglscene"`.
* `open3d()` now handles `useNULL` and `silent` arguments
passed in `params`.
* Controls passed to `playwidget()` may now include a
component specifying HTML dependencies.
* Added `rglwidgetClass.readAccessor()` method to let other
code use the buffering.
* Changed the internal organization of bounding box calculations.
* All functions that produce meshes now accept
material properties.  Newly modified to do so using the `...`
argument:  `cylinder3d()`, and `getBoundary3d()`.
* Updated the system requirements and installation instructions.
* Solid bounding box decorations now try harder to display 3 faces (issue #206).
* Now that `webshot2` is on CRAN, instructions for
installing it from Github have been removed.
* Sometimes `webshot2` snapshots are very slow, so
the default for the `webshot` argument to `snapshot3d()`
now depends on the `RGL_USE_WEBSHOT` environment
variable, using `TRUE` if it is unset. (Reported by Prof. B. D. Ripley.)
* If the Chrome browser is not found, `snapshot3d(webshot = TRUE)` now issues a warning and
reverts to using `rgl.snapshot()`.
* Buffers now use "normalized integers" to store
color or texture coordinate values that lie between 0
and 1 when it saves some space.
* At the request of CRAN, the `akima` package is no
longer suggested.

## Bug fixes

* `as.mesh3d.rglobject()` didn't handle objects with indices
properly.
* In WebGL, the front vs back calculation sometimes
got the wrong result (issue #164).
* `pop3d(tag = x)` did not always find the objects with `tag == x` if they were not in the current subscene.
* The default values for `front` and `back` in `rgl.material`
and `material3d` are now `"filled"`, as documented in some
places.
* The `fog` setting wasn't handled properly by `bg3d()`.
* Numerous cases of partial argument matching were fixed
(suggestion of Henrik Bengtsson in issue #170.)
* Argument `col` is accepted as a synonym for `color` in `material3d()` and `rgl.material()`.
* `planes3d()` objects were not displayed consistently
in `rgl` windows and WebGL displays, because the bounding
boxes were not computed consistently (issue #169).
* Some initialization wasn't done properly in Shiny apps,
so they failed after a redraw (issue #173).
* Buffers are now optional, as they don't work with
Shiny scene changes (also issue #173).
* The NULL device would sometimes miscalculate the
bounding box.
* `selectpoints3d(closest = TRUE)` selected too many points
when multiple objects were in the scene.
* Clearing nested subscenes could cause a segfault and crash.
* In `knitr` and `rmarkdown`, blank plots could be shown
when `par3d(skipRedraw=TRUE)` was set (issue #188).
* Objects drawn with `sprites3d()` weren't lit correctly
in WebGL (issue #189).
* Objects with textures were sometimes drawn more than once, both
before the texture loaded and after.  This was most noticeable for
objects with user textures.
* Axis mode `"pretty"` got lost when scenes were redrawn.
* Tick labels were sometimes lost in WebGL displays and
`snapshot3d()` results (issue #197).
* The new material properties from 0.107.10 and 0.108.3
were not handled properly by `plotmath3d()`.
* `rglMouse()` did not set the default value of the drop-down
selector properly (issue #213).
* `merge.mesh3d()`, used by `filledContour3d()`, didn't handle
colors properly (issue #212).
* `bg3d(sphere = TRUE)` has been fixed (issue #207).
* Textures were not appearing on spheres, and front-back
differences weren't being rendered (issue #217).
* When "knitting" within RStudio under R 4.2.0 on
Windows, `rgl` scenes didn't appear (reported by
Dieter Menne.) A workaround has been added.
* In `rglwidget()`, axis labels were not always
displayed, and did not move with solid bounding box
decorations properly (issue #206).
* On some systems, `lines3d()` using both missing values
and transparency did not draw properly (issue #234,
originally reported by Gaspar Jekely).
* The `rglShared()` example failed when `crosstalk`
was uninstalled.


# rgl  0.108.3.2

## Bug fixes

* Changes introduced in 0.100.50 lacked checks; these caused
segfaults in Windows with R 4.2.0 and RStudio (issue #208).
* A typo caused problems loading fonts on some systems.

# rgl  0.108.3

## Major changes

* Added `getBoundary3d()` function to extract the boundary
edges of a mesh.
* Added material property `tag`, a string associated
with each object.  The value is reported by `ids3d(tags = TRUE)` and
may be used to select objects in most functions that use ids,
but otherwise is
largely ignored by `rgl`.  The `tagged3d()` function returns
information on tags.
* Primitive types (points, lines, segments, triangles, quads)
can now accept an `indices` parameter, similar to the
indices in `mesh3d` objects.
* Added `Buffer` object, based on glTF design, for holding binary
data for `rglwidget()`.

## Minor changes

* Allowed for a third coordinate in `text3d()`'s `adj`
parameter.
* Added support for `adj`, `pos` and `offset` to
`sprites3d()`.
* Added support for `pos` values of `0` (at specified
location), `5` (in front of it), and `6` (behind it) in
`text3d()`, `sprites3d()` and `plotmath3d()`.
* `crosstalk` is now a Suggested package, rather than
a required one.
* The `Makevars.ucrt` file has been modified with
contributions from Tomas Kalibera to work with his `winutf8`
build of R.
* `bgplot3d()` no longer pauses for each page when running
examples.
* `deldir` version 1.0-2 is incompatible with `rgl`.  Added
the `checkDeldir()` function to avoid running it.
* `shade3d()` treated texture coordinates like colors, and
  duplicated the first one for the whole face when `meshColor = "faces"` was chosen.
  Instead, they are now treated like vertex coordinates.
  (Reported by Michael Sumner in issue #145).
* Corrected the documentation and made the implementations
of `asHomogeneous()`, `asEuclidean()` etc. more consistent.
* An `as.rglscene()` generic has been added, though no methods
are defined in this package.
* `downlit` 0.4.0 has been released with support for `rgl`, so instructions
for installing the devel version have been removed.

## Bug fixes

* Fixed rendering of text as sprites3d() objects.
* Added `--static` flag to configure script for FreeType
  installation.  (Suggestion of Simon Urbanek and Prof. Brian Ripley.)
* `shade3d()`, `wire3d()` and `dots3d()` overrode
  `"front"` and `"back"` material settings in mesh objects.
* `rglwidget()` handling of bounding box decorations had
  several bugs.
* `rgl` could not find routines in the DLL on some Windows
installs (Issue 148.)
* Some cases where allocations were not protected have been fixed.
jperkin pushed a commit that referenced this issue Jun 8, 2023
## 3.0.0 - 2023-06-03

⚠️ This release contains some minor breaking changes in the internal API and improvements to the parsing strictness.

**Full Changelog**: <executablebooks/markdown-it-py@v2.2.0...v3.0.0>

### ⬆️ UPGRADE: Drop support for Python 3.7

Also add testing for Python 3.11

### ⬆️ UPGRADE: Update from upstream markdown-it `12.2.0` to `13.0.0`

A key change is the addition of a new `Token` type, `text_special`, which is used to represent HTML entities and backslash escaped characters.
This ensures that (core) typographic transformation rules are not incorrectly applied to these texts.
The final core rule is now the new `text_join` rule, which joins adjacent `text`/`text_special` tokens,
and so no `text_special` tokens should be present in the final token stream.
Any custom typographic rules should be inserted before `text_join`.

A new `linkify` rule has also been added to the inline chain, which will linkify full URLs (e.g. `https://example.com`),
and fixes collision of emphasis and linkifier (so `http://example.org/foo._bar_-_baz` is now a single link, not emphasized).
Emails and fuzzy links are not affected by this.

* ♻️ Refactor backslash escape logic, add `text_special` [#276](executablebooks/markdown-it-py#276)
* ♻️ Parse entities to `text_special` token [#280](executablebooks/markdown-it-py#280)
* ♻️ Refactor: Add linkifier rule to inline chain for full links [#279](executablebooks/markdown-it-py#279)
* ‼️ Remove `(p)` => `§` replacement in typographer [#281](executablebooks/markdown-it-py#281)
* ‼️ Remove unused `silent` arg in `ParserBlock.tokenize` [#284](executablebooks/markdown-it-py#284)
* 🐛 FIX: numeric character reference passing [#272](executablebooks/markdown-it-py#272)
* 🐛 Fix: tab preventing paragraph continuation in lists [#274](executablebooks/markdown-it-py#274)
* 👌 Improve nested emphasis parsing [#273](executablebooks/markdown-it-py#273)
* 👌 fix possible ReDOS in newline rule [#275](executablebooks/markdown-it-py#275)
* 👌 Improve performance of `skipSpaces`/`skipChars` [#271](executablebooks/markdown-it-py#271)
* 👌 Show text of `text_special` in `tree.pretty` [#282](executablebooks/markdown-it-py#282)

### ♻️ REFACTOR: Replace most character code use with strings

The use of `StateBase.srcCharCode` is deprecated (with backward-compatibility), and all core uses are replaced by `StateBase.src`.

Conversion of source string characters to an integer representing the Unicode character is prevalent in the upstream JavaScript implementation, to improve performance.
However, it is unnecessary in Python and leads to harder to read code and performance deprecations (during the conversion in the `StateBase` initialisation).

See [#270](executablebooks/markdown-it-py#270), thanks to [@hukkinj1](https://github.com/hukkinj1).

### ♻️ Centralise indented code block tests

For CommonMark, the presence of indented code blocks prevent any other block element from having an indent of greater than 4 spaces.
Certain Markdown flavors and derivatives, such as mdx and djot, disable these code blocks though, since it is more common to use code fences and/or arbitrary indenting is desirable.
Previously, disabling code blocks did not remove the indent limitation, since most block elements had the 3 space limitation hard-coded.
This change centralised the logic of applying this limitation (in `StateBlock.is_code_block`), and only applies it when indented code blocks are enabled.

This allows for e.g.

```md
<div>
  <div>

    I can indent as much as I want here.

  <div>
<div>
```

See [#260](executablebooks/markdown-it-py#260)

### 🔧 Maintenance changes

Strict type annotation checking has been applied to the whole code base,
[ruff](https://github.com/charliermarsh/ruff) is now used for linting,
and fuzzing tests have been added to the CI, to integrate with Google [OSS-Fuzz](https://github.com/google/oss-fuzz/tree/master/projects/markdown-it-py) testing, thanks to [@DavidKorczynski](https://github.com/DavidKorczynski).

* 🔧 MAINTAIN: Make type checking strict [#](executablebooks/markdown-it-py#267)
* 🔧 Add typing of rule functions [#283](executablebooks/markdown-it-py#283)
* 🔧 Move linting from flake8 to ruff [#268](executablebooks/markdown-it-py#268)
* 🧪 CI: Add fuzzing workflow for PRs [#262](executablebooks/markdown-it-py#262)
* 🔧 Add tox env for fuzz testcase run [#263](executablebooks/markdown-it-py#263)
* 🧪 Add OSS-Fuzz set up by @DavidKorczynski in [#255](executablebooks/markdown-it-py#255)
* 🧪 Fix fuzzing test failures [#254](executablebooks/markdown-it-py#254)
jperkin pushed a commit that referenced this issue Jul 7, 2023
Changelog:
This release adds a script for bash autocompletion for nsd-control. Also
nsd-control can be configured to use unencrypted operation also when
compiled without openssl. There is also a systemd service unit example
file contributed. The dnstap log service can be contacted over TCP, with
the dnstap-ip: ip option. It is also possible to use TLS, with
dnstap-tls, it is enabled by default, and can be configured with the
dnstap-server-name, dnstap-cert-bundle, dnstap-client-key-file and
dnstap-client-cert-file options. The configure option
--enable-root-server is obsolete, it is no longer used and defaults to
on. In addition, the build file should support multicore build with
flex and bison more easily.

FEATURES:

    Merge #263: Add bash autocompletion script for nsd-control.
    Fix #267: Allow unencrypted local operation of nsd-control.
    Merge #269 from Fale: Add systemd service unit.
    Fix #271: DNSTAP over TCP, with dnstap-ip: "127.0.0.1@3333".
    dnstap over TLS, default enabled. Configured with the
    options dnstap-tls, dnstap-tls-server-name, dnstap-tls-cert-bundle,
    dnstap-tls-client-key-file and dnstap-tls-client-cert-file.

BUG FIXES:

    Fix #239: -Wincompatible-pointer-types warning in remote.c.
    Fix configure for -Wstrict-prototypes.
    Fix #262: Zone(s) not synchronizing properly via TLS.
    Fix for #262: More error logging for SSL read failures for zone
    transfers.
    Merge #265: Fix C99 compatibility issue.
    Fix #266: Fix build with --without-ssl.
    Fix for #267: neater variable definitions.
    Fix #270: reserved identifier violation.
    Fix to clean more memory on exit of dnstap collector.
    Fix dnstap to not check socket path when using IP address.
    Fix to compile without ssl with dnstap-tls code.
    Dnstap tls code fixes.
    Fix include brackets for ssl.h include statements, instead of quotes.
    Fix static analyzer warning about nsd_event_method initialization.
    Fix #273: Large TXT record breaks AXFR.
    Fix ixfr create from adding too many record types.
    Fix cirrus script for submit to coverity scan to libtoolize
    the configure script components config.guess and config.sub.
    Fix readme status badge links.
    make depend.
    Fix for build to run flex and bison before compiling code that needs
    the headers.
    Fix to remove unused whitespace from acx_nlnetlabs.m4 and config.h.
    For #279: Note that autoreconf -fi creates the configure script
    and also the needed auxiliary files, for autoconf 2.69 and 2.71.
    Fix unused variable warning in unit test, from clang compile.
    Fix #240: Prefix messages originating from verifier.
    Fix #275: Drop unnecessary root server checks.
jperkin pushed a commit that referenced this issue Aug 8, 2023
0.29.0.gfm.10 (2023-03-31)

Changes since last release (0.29.0.gfm.9...0.29.0.gfm.10):

* Fixed polynomial time complexity issue per
* GHSA-r8vr-c48j-fcc5
* Fixed polynomial time complexity issues per
* GHSA-66g8-4hjf-77xh

Note: these changes remove redundant bold tag nesting which may result in
existing rendering tests failing, e.g. rendering ____bold____ to html will
no longer yield <p><strong><strong>bold</strong></strong></p>.

0.29.0.gfm.11 (2023-04-06)

Changes since last release (0.29.0.gfm.10...0.29.0.gfm.11):

NOTE: this is a re-release of 0.11 due to missing a version/Changelog PR

* Improved fixes for polynomial time complexity issues per
  GHSA-66g8-4hjf-77xh (#323, #324)
* Added fuzzing target for bracketed patterns (#318)
* Fixed bug in list numbering introduced in 763587e (#322) which caused list
  numbers to increment by 2
* Fixed strict prototype clang warning (#310)
* Fixed regression test (#312)
* Added additional output formats to quadratic fuzzer (#327)
* Fixed buffer overflow in fuzzing harness (#326)

Note: these changes may lead to minor changes in expected output on
plaintext rendering of list items.  Notably, blank lines may no longer
delineate the start of a list when rendering to plaintext due to changes in
how the tight list status is calculated.

0.29.0.gfm.12 (2023-07-13)

Changes since last release (0.29.0.gfm.11...0.29.0.gfm.12):

* Fixed polynomial time complexity issues per GHSA-w4qg-3vf7-m9x5
* Added CodeQL project integration (#337)
* Addressed const qualifier discard compiler warnings (#330, #331)

0.29.0.gfm.13 (2023-07-22)

Changes since last release (0.29.0.gfm.12...0.29.0.gfm.13):

* Normalized marker row vs. delimiter row nomenclature (#273)
* Exposed CMARK_NODE_FOOTNOTE_DEFINITION literal value (#336)
* Fixed format specifier for printing a size_t (#340)
jperkin pushed a commit that referenced this issue Aug 8, 2023
pkgsrc change:

* Update DESCR based on README.md.
* Remove dependency on textproc/cmark since this package contains source
  code of textproc/cmark-gfm.


0.23.10 (2023-07-31)

* Update GFM release to 0.29.0.gfm.12 and 0.29.0.gfm.13, thereby fixing a
  polynomial time complexity security vulnerability.

* Of note to users of this library, GFM releases 0.29.0.gfm.12 and
  0.29.0.gfm.13 also:

    o Normalized marker row vs. delimiter row nomenclature (#273)
    o Exposed CMARK_NODE_FOOTNOTE_DEFINITION literal value (#336)
jperkin pushed a commit that referenced this issue Sep 1, 2023
2.6.4 (2023-08-25)

* If a task returns an exception value, do not raise it in #wait. (#270)
* Minor improvement to test performance.
* Test multiple process waits. (#273)
* Failing timeout while getting from stdin. (#266)
* Fix handling of TimeoutError in io_wait. (#274)
* Add test for blocking IO#gets in task. (#267)
jperkin pushed a commit that referenced this issue Sep 10, 2023
ruby-csv is default gem but 3.2.7 is newer version for both Ruby 3.1 and 3.2
with a few bug fixes.

3.2.7 (2023-06-26)

Improvements

* Removed an unused internal variable.  GH-273 [Patch by Mau Magnaguagno]
* Changed to use https:// instead of http:// in documents.  GH-274 [Patch by
  Vivek Bharath Akupatni]
* Added prefix to a helper module in test.  GH-278 [Patch by Luke Gruber]
* Added a documentation for liberal_parsing: {backslash_quotes: true}.
  GH-280 [Patch by Mark Schneider]

Fixes

* Fixed a wrong execution result in documents.  GH-276 [Patch by Yuki
  Tsujimoto]

* Fixed a bug that the same line is used multiple times.  GH-279 [Reported
  by Gabriel Nagy]

Thanks

* Mau Magnaguagno
* Vivek Bharath Akupatni
* Yuki Tsujimoto
* Luke Gruber
* Mark Schneider
* Gabriel Nagy
jperkin pushed a commit that referenced this issue Oct 23, 2023
This is the biggest update ever, with 36 new features, 24 bug fixes,
and 3 performance improvements.

Thank you to every contributor for making Yazi better and better!
What's Changed

    feat: add Mintty (Git Bash) image preview support by @sxyazi in #103
    refactor: use Url instead of PathBuf by @sxyazi in #107
    fix: mime of javascript by @XYenon in #106
    perf: load large folders in chunks by @sxyazi in #117
    fix: set cursor block after closing input prompt from insert mode
         by @auvred in #109
    fix: doesn't redirect the stderr of the clipboard command to null
         by @sxyazi in #119
    feat: suspend process (Ctrl-Z) by @sxyazi in #120
    fix: notification of file changes in linked directories by @sxyazi in #121
    feat: file size sorting under the simplified file system by @sxyazi in #123
    fix: show_hidden not properly applied to hovered folder by @sxyazi in #124
    fix: recognize symlink directories as files by @sxyazi in #125
    fix: respect symlink paths without canonicalizing them by @sxyazi in #126
    feat: make Input streamable by @sxyazi in #127
    perf: doesn't wait for the process of killing by @sxyazi in #128
    feat: find by @sxyazi in #104
    feat: tab-specific sorting by @sxyazi in #131
    feat: new V, D, C keybinding for Input component by @sxyazi in #139
    fix: swap description for search commands by @knutwalker in #141
    fix: image position calculation by @sxyazi in #144
    feat: support for image preview within tmux by @sxyazi in #147
    feat: show keywords when in search mode by @sxyazi in #152
    feat: fallback to built-in highlighting if jq is not installed
          by @ndtoan96 in #151
    feat: make the glob expr case insensitive by default, and prepend \s to
          make it sensitive by @sxyazi in #156
    fix: check relative path on expand_path by @sxyazi in #165
    feat: support for FreeBSD permission type by @yggdr in #169
    feat: multiple openers for a single rule by @Linus789 in #154
    fix: leave upwards only if an IO error occurs in current by @sxyazi in #172
    docs: add archlinuxcn installation guide by @Integral-Tech in #176
    fix: image preview not working on Zellij by @Eric-Song-Nop in #181
    feat: make trash optional by @sxyazi in #178
    fix: inconsistent Shift key behavior on Unix and Windows
         by @ndtoan96 in #174
    feat: new force option added for the remove command, which does not show
          the confirmation dialog on trashing/deleting by @sxyazi in #173
    fix: typo of LICENSE file by @conradojordan in #201
    feat: add flake.nix by @XYenon in #205
    feat: include ignored files on search when hidden files are shown
          by @PhotonQuantum in #212
    feat: new orphan option for opener rules, to keep the process running even
          when Yazi exited by @sxyazi in #216
    feat: scroll half/full page with arrow percentage supported, and new
          Vi-like <C-u>, <C-d>, <C-b>, and <C-f> keybindings added by
          @TD-Sky in #213
    feat: highlight matching words on finding by @PhotonQuantum in #211
    feat: add BackTab support by @sxyazi in #209
    fix: set stdio to null when orphan is true by @sxyazi in #229
    feat: new force option for creating and renaming by @sxyazi in #208
    feat: loop through to find by @ndtoan96 in #234
    feat: backward/forward by @ndtoan96 in #230
    perf: reimplement optimized natural sorting algorithm, speed up ~6 times
          for case-insensitive sorting by @sxyazi in #237
    chore: changing the finding key to n/N to keep with Vim's conventions
           by @sxyazi in #238
    feat: added new options to the `find' command for smart-case/
          case-insensitive finds by @ndtoan96 in #240
    feat: add new --no-cwd-file option to quit command for flexible cwd-file
          setting by @XOR-op in #245
    fix: avoid adding non-regular paths to backstack by @ndtoan96 in #249
    fix: support RGBA16 images by @sxyazi in #250
    feat: support trash for NetBSD by @sxyazi in #251
    feat: support environment variable in cd path by @ndtoan96 in #241
    feat: new theme system by @sxyazi in #161
    fix: cannot cd if there is whitespace in path by @ndtoan96 in #255
    fix: add application/x-wine-extension-ini to text mime by @ndtoan96 in #259
    fix: collect and fix all hard coded themes and color
         by @Eric-Song-Nop in #221
    fix: some colors not readable in light mode by @sxyazi in #264
    feat: better file hover state by @sxyazi in #269
    refactor: split commands into separate files by @sxyazi in #272
    feat: cancel selected items automatically on entering, leaving, copying, or
          cutting by @sxyazi in #273
    feat: add a new Bar component, and make border styles customizable
          by @sxyazi in #278
    fix: adapt another $TERM value of foot-extra for foot by @sxyazi in #277
    refactor: simplify building conditions by @sxyazi in #280
    chore: add git rev to nix pkg version by @XYenon in #206
    feat: new Manager component for better style extensions by @sxyazi in #284
    feat: cross-system opener rule support by @sxyazi in #289
    fix: delegate the SIGINT signal of processes with orphan=true to their
    parent by @sxyazi in #290
    feat: line mode by @sxyazi in #291
    feat: shell completions & auto releasing by @TD-Sky in #282
jperkin pushed a commit that referenced this issue Dec 17, 2023
2.21.4 (2023-10-10)

Fixed

* Loofah::HTML5::Scrub.scrub_css is more consistent in preserving whitespace
  (and lack of whitespace) in CSS property values.  In particular,
  .scrub_css no longer inserts whitespace between tokens that did not
  already have whitespace between them.  [#273, fixes #271]

2.22.0 (2023-11-13)

Added

* A :targetblank HTML scrubber which ensures all hyperlinks have
  target="_blank".  [#275] @stefannibrasil and @thdaraujo
* A :noreferrer HTML scrubber which ensures all hyperlinks have
  rel=noreferrer, similar to the :nofollow and :noopener scrubbers.  [#277]
  @wynksaiddestroy
jperkin pushed a commit that referenced this issue Feb 13, 2024
Misc Fixes (updating JavaScript and more) by @amaanq in #273
jperkin pushed a commit that referenced this issue Mar 4, 2024
17.0.2 (2027-02-20)

Changed

* [Python] Updated the release workflow to use trusted publisher (#263,
  #264)

* [Ruby] Added subsidiary rubocop gems (RSpec/Rake/Performance), and did
  some initial refactoring (#247)

* Additional information for alternation inside optional error message on
  how to fix (#260)

Fixed

* Removed repeated 'the' from error message for use of alternations inside
  optionals (#252)

* [Python] Missing keyword argument defaults in parameter type class (#259)

* [Ruby] Added an explicit dependency on bigdecimal gem, to fix Ruby 3.4-pre
  builds where the gem has changed its status from default to bundled (#273)
jperkin pushed a commit that referenced this issue Mar 20, 2024
Changelog:

2.13.c.5
Highlights
New features

    New custom key commands (#256)
    Support basic control chars (\n, \r, \b, \t) in text options (#238)
    Added support for the XF86AudioMicMute media key (#273)
    Added tab completion for Bash and Zsh (#230)

Perf improvements

    Lazy-load slideshow images (#242)
    Disable debug build by default; faster blurring (#251)

Changes by PR

    fix --max and --fill not scaling image when the image has the same aspect ratio as the screen by @Rio6 in #228
    Add link to new active port by @loralighte in #233
    chore: rename variables for examples, remove unused variables by @graves501 in #229
    fix(typo): fix wrong greeter_y_expr and typo error message in arguments parser. by @cmsxbc in #237
    Tab completion (#204) by @JezerM in #230
    Slideshow images loaded when needed (#241) by @JezerM in #242
    feat(control char): add basic control char support by @cmsxbc in #238
    build: disable debug and sanitizers by default by @alanswanson in #251
    Shell command options for media keys by @jclds139 in #256
    Support for XF86AudioMicMute by @kwesthaus in #273
    Fix: Remove breaking space in zsh completion by @kwesthaus in #274
jperkin pushed a commit that referenced this issue Jul 20, 2024
Based on PR 58426 by jonathan buschmann.

## 2.4.7 2024-05-05

### Fixed
- docs(pop): clarify --spill behavior (#445)
- fix(branch): disallow branch before subcommand (#447)

### Changed
- refactor: get gix-command via gix with command feature
- Update gix to version 0.62


## 2.4.6 2024-04-07

### Fixed
- fix(bash): fix completion for "committish"

### Changed
- docs: Update copyright year
- chore: update gix to 0.61.1
- ci: update to wix 4.0.5


## 2.4.5 2024-02-18

### Fixed
- fix: stdout from hooks (#418)

### Changed
- chore: add category and keywords to Cargo.toml
- build: exclude some paths from crate
- docs(readme): enumerate more package repositories
- chore: update dependencies


## 2.4.4 2024-02-11

### Fixed
- fix: pass stdio for interactive editing (#415)
- fix: update gix-tempfile and gix-lock to 13.1.0 (#413)

### Changed
- chore: update dependencies


## 2.4.3 2024-02-04

### Added
- feat(branch): allow delete of current branch

### Fixed
- fix(branch): delete branch config with branch
- fix: use gix-command for interactive edit (#407)
- fix: improved interactive editor diagnostics
- chore: update gix to 0.58.0 (#407)
- docs: fix dates in changelog

### Changed
- refactor(branch): use gix to rename config section
- refactor: use gix to remove stgit branch config
- refactor: use gix-command for hooks
- refactor: use non-deprecated indexmap methods
- ci: update cargo-generate-rpm to 0.14.0
- ci: update to upload-artifact@v4
- ci: restore use of IO::Pty in MacOS build


## 2.4.2 2023-12-26

### Changed
- feat(pop): allow unescaped negative patch offsets
- feat(show): allow unescaped negative patch offsets
- chore: update dependencies


## 2.4.1 2023-12-10

### Fixed
- fix(zsh): short -r opt for `stg series`

### Changed
- chore: update gix to 0.56.0
- chore: update transient dependencies


## 2.4.0 2023-10-08

### Added
- feat(delete): --all -A -U -H options
- feat(sink): -T/--above option
- feat(branch): short opts for clone and delete


## 2.3.3 2023-10-04

### Fixed
- fix(zsh): -S option for float, import, and sync
- build: avoid non-portable install options
- test: improved test script portability

### Changed
- update dependencies


## [2.3.2] 2023-08-19

### Fixed
- fix!(uncommit): check for HEAD/top mismatch (#360)
- docs: docstring spelling and formatting fixes

### Changed
- feat(uncommit): print uncommited patches
- pin serde to avoid using precompiled binary
- update dependencies


## [2.3.1] 2023-07-25

### Fixed
- fix(zsh): typo in completion help for stg commit --all
- fix: use canonical Message-ID spelling
- fix(stgit.el): recognize new empty patch marker
- fix(import): Keep first line break in body

### Changed
- update dependencies


## [2.3.0] 2023-05-25

### Removed
- import-compressed is always enabled, no longer a feature

### Added
- unofficial deb and rpm packages
- msi package for Windows

### Fixed
- fix(import): would panic without import-url feature
- fix(import): patch numbers not stripped from name

### Changed
- use bzip2-rs instead of bzip2 crate
- update dependencies


## [2.2.4] 2023-05-15

### Added
- feat: Upgrade from ancient stack state formats (#235)

### Fixed
- fix(branch): create based on remote branch (#317)
- fix(import): lost subject lines resembling header (#321)
- fix(import): subject line may be discarded

### Changed
- chore: update dependencies


## [2.2.3] 2023-04-26

### Fixed
- fix: error using on Windows (#273)
- fix: path handling for Windows compatibility
- fix: commit-msg hook run from work root
- fix: avoid "stg.exe" in usage on Windows
- fix: use gitattributes to force LF endings on Windows
- fix: wrap hooks with sh on Windows

### Changed
- chore: update to gix 0.44.0
- chore: update other dependencies


## [2.2.2] 2023-04-01

### Fixed
- fix: rebase with '@' in ref names (#306)
- fix: improved error messages for unrecognized commands


## [2.2.1] 2023-03-29

### Changed
- chore: update to clap 4.2.0
- chore: update to gix 0.43.0
- chore: pin clap minor version

### Fixed
- fix(branch): allow reuse of partially deleted branch names (#290)
- fix(branch): branch list alignment
- fix: running hooks from worktree subdir (#295)
- fix: running from linked worktree (#297)
- fix(float): correct -S in usage string
- fix: correctly show bold command/subcommand in overidden usage


## [2.2.0] 2023-02-24

### Removed
- feat!: remove short -s option for --submodules
- fix!: patch name cannot be {base} or @

### Added
- feat: patch locator syntax
- feat: locate branches using @{-N} syntax
- feat(series): Add --reverse option
- feat(series): options for patch offsets and indices
- feat(series): --no-xxx options to override display options
- feat(series): optional value for --short
- feat!: short -s option for --signoff (#245)
- feat(init): add -b/--branch option

### Changed
- fix!: use -S as short opt for --series
- feat!: constrain refresh -p to visible patches
- feat(series)!: empty patch prefix changed to *
- feat!: spell errors in lowercase
- refactor: use gitoxide instead of git2
- refactor: use time crate instead of chrono
- feat!: update to clap 4.1
- chore: update to latest dependencies

### Fixed
- fix: Error if author or committer is not configured
- fix: Use correct base directory for core.hooksPaths
- fix(rename): colliding patch names
- fix(rebase): repair rebasing to a tag (#265)
- fix(branch): switch branch with detached head
- docs: Repair docstrings being confused as html
- docs: normalized spelling for --branch value


## [2.1.0] 2022-12-12

### Added
- feat: Configurable push conflict policy (#60)
- feat: Add --committer-date-is-author-date option (#47)
- feat(import): Add --3way option (#36)
- feat(import): Add --directory option (#36)

### Changed
- feat!: Relaxed stack initialization (#238)
- feat!: Only sign stack based on stgit.gpgsign (#238)
- fix!: Allow "---" separator in messages (#243)
- feat: More descriptive push conflict message (#60)
- feat: Avoid post-edit commits when no change
- chore: Update dependencies to latest versions

### Fixed
- fix: Improved error message for uninitialized stack
- fix: Improve error for re-initialization attempt
- fix(prev): Different error message for empty stack
- fix: Accept full ref name for branches
- fix(zsh): Complete --edit and --diff for stg new


## [2.0.4] 2022-11-30

### Changed
- docs: Document configuration variables
- refactor: Use is-terminal instead of atty
- chore: Update Cargo.lock with latest dependencies.

### Fixed
- fix: Don't generate new patch name until after edit (#239)
- fix: Run shell aliases from top-level of work tree
- fix: Use GIT_PREFIX in built-in aliases


## [2.0.3] 2022-11-21

### Changed
- chore: Update Cargo.lock with latest dependencies.

### Fixed
- fix: improved git version parsing on MacOS
- fix: StGit-specific branch config handling
- docs: fixed many typos


## [2.0.2] 2022-11-17

### Changed
- chore: Update Cargo.lock with latest dependencies.
- docs(init): Add long help for `stg init`.

### Added
- feat: Enable basic support for `extensions.worktreeconfig` to unblock
  sparse checkout with partial clone (#195).

### Fixed
- docs: More inter-command links
- docs: Normalize quoting


## [2.0.1] 2022-11-07

### Changed
- chore: Update to clap 4.0.22

### Fixed
- docs(readme): Clarify static versus dynamic linking (#230)
- build: Improve Documentation build performance (#229)


## [2.0.0] 2022-11-06

### Removed
- `stg clone` is removed. Use `git clone` and `stg init` instead.
- `stg mail` is replaced with `stg email format` and `stg email send`.
- `stg refresh --spill` is replaced with dedicated `stg spill` command.
- `stg edit` no longer accepts `-O/--diff-opts`. Custom diff options is
  in conflict with editable diffs since many (most?) diff options cause
  the diff to no long be applicable.
- `stg files` no longer accepts `-O/--diff-opts`. This option was of
  marginal value since it only had a possible side effect when `--stat`
  was being used.

### Added
- `stg id` now accepts the `-b/--branch` option.
- `stg completion` command provides runtime support for shell
  completions.
- `stg completion bash` generates bash shell completion script.
- `stg completion fish` generates fish shell completion script.
- `stg completion zsh` outputs zsh shell completion script.
- `stg completion list` shows StGit commands and aliases and is used at
  completion-time by shell completion scripts.
- `stg completion man` generates man pages in asciidoc format.
- `stg email format` wraps `git format-patch` and provides a mechanism
  to generate patch emails and optional cover letter in mbox format.
- `stg email send` wraps `git send-email` and allows sending patch
  emails, either from files generated by `stg email format` or by
  specifying patches directly.
- `stg new --refresh` allows a new patch to be refreshed with changes in
  one step. The `-i/--index`, `-F/--force`, `-s/--submodules`, and
  `--no-submodules` options from `stg refresh` are also available to
  `stg new` when using `-r/--refresh`.
- `stg series` gains the `-i/--commit-id` option to display patches'
  commit ids.
- `stg show` diff output can now be limited to certain paths by
  specifying path limits on the command line.
- `stg spill` replaces `stg refresh --spill`.
- `stg version` gains `-s/--short` flag to show shortened version info.
- Added documentation for patch range syntax to stg(1) man page.
- Added `install-all` target to top-level Makefile that installs the
  executable, man pages, html pages, and shell completions.

### Changed
- StGit is now implemented entirely in Rust instead of Python.
- StGit is generally much faster; many commands are up to 4x faster.
  There was an emphasis on making informational commands such as `stg
  id`, `stg series`, and `stg top` as fast as possible to make their use
  in interactive contexts (shell prompts, IDE extensions) more
  comfortable.
- StGit error messages have been updated; many have different, and
  hopefully better, wording. Error messages are also use color (when
  color is enabled). Scripts relying on exact error messages from StGit
  will need to be updated.
- StGit output to stdout is generally more terse. Commands that change
  the stack such as `push`, `pop`, and `commit`, use sigils to denote
  the changes made to the stack. E.g. `stg commit p0..p3` will output `$
  p0..p3` where the "$" sigil means that a patch, or patch range, has
  been committed. These are all the currently used stack change sigils:
  - `+` patch was pushed
  - `-` patch was popped
  - `>` patch became the current topmost patch
  - `&` patch was updated
  - `$` patch was committed
  - `#` patch was deleted
  - `@` patch was rolled-back
  - `!` patch was hidden
- StGit aliases are now more like Git aliases. Normal aliases refer to
  StGit subcommands, but aliases prefixed with '!' are shell aliases
  that may run arbitrary commands. An example normal alias would be `git
  config stgit.alias.list 'series --description --empty'`. An example
  shell alias would be `git config stgit.alias.st '!git status
  --short'`.
- Commands such as `stg goto`, `stg push`, and `stg pop` now require
  full/correct patch names on the command line and no longer accept
  unambiguous patch name prefixes. When an inexact patch name is
  provided on the command line, the error message will now suggest
  similar valid patch names.
- Additional template search paths were added. In addition to looking
  for template files in .git/, also look in
  `$XDG_CONFIG_HOME/stgit/templates/` and `$HOME/.stgit/templates`. This
  search strategy is consistent with how git looks for the global config
  file.
- The new `--signoff` patch edit option supersedes the deprecated
  `--sign` and `--sign-by` options. `--signoff` without its optional
  value does the same thing as `--sign`, while `--signoff=<value>` does
  the same thing as `--sign-by=<value>`.
- The `--ack` and `--review` patch edit options now optionally take a
  value. The `--ack-by` and `--review-by` options are deprecated.
- `stg branch` output is now generally less verbose.
- `stg branch --describe` replaces `stg branch --description`. The
  `--description` subcommand remains supported as a hidden alias to
  `--describe`, but the description string must now be provided as its
  own argument; i.e. `--description="description string"` is no longer
  supported.
- `stg branch --list` now produces colorized output. The `--color`
  option or `NO_COLOR` environment variable may be used to affect this
  behavior.
- `stg branch --rename` now supports renaming regular git branches in
  addition to StGit-enabled branches.
- `stg clean` now uses `-A` and `-U` short options for `--applied` and
  `--unapplied` instead of `-a` and `-u`. This is done for consistency
  with `stg series` and `stg show`.
- `stg import` now only recognizes compressed patches by their file
  extension (`.bz2` or `.gz`) and no longer proactively attempts to
  decompress using all known decompressors.
- `stg import` support for compressed input files is selectable at
  compile time using the `import-compressed` feature.
- `stg import` support for importing from a URL is selectable at compile
  time using the `import-url` feature. **N.B.** there is a measurable
  runtime performance impact of building with `import-url` due to the
  unconditional, pre-main initialization of `curl` which affects **all**
  `stg` commands.
- `stg log` now colorizes output by default. The `--color` option or
  `NO_COLOR` environment variable may be used to affect this behavior.
- `stgit.new.verbose` changed to `stgit.edit.verbose` and now also
  affects edit behavior for `edit`, `refresh`, and `squash` along with
  `new`.
- `stg new` now accepts `-e/--edit` and `-d/--diff` instead of
  `-v/--verbose`
- `stg pick` now allows a mix of commits and patches to be picked
  whereas previously only a single commit xor multiple patches could be
  picked.
- `stg pick` now performs a single stack transaction for all the picked
  patches/commits instead of one transaction per pick.
- `stg push` now attempts to perform three-way merges, which may improve
  conflict resolution in some cases. This feature is enabled by default
  when git >= 2.32.0 is detected.
- `stg rebase --interactive` the "squash" and "fixup" instructions may
  no longer be applied to the first patch in the instruction list. The
  stated semantics of both "squash" and "fixup" is that they squash the
  labeled patch with the preceding patch, which is not possible/valid
  when there is no preceding patch.
- `stg refresh` no longer has a `--spill` flag. Use `stg spill` instead.
- `stg series` has updated colorized output.
- `stg series` now requires patch range arguments to be both in-order
  and contiguous. Constraining patch ranges in this manner ensures that
  the output from `stg series` is always a valid/correct view of a
  subset of the series.
- `stg show` diff output respects the `--color` option.
- `stg squash` now allows the full suite of patch edit options,
  including `-d/--diff`. Previously only a few message-related options
  were available.
- `stg version` now displays copyright and license statements.

### Fixed

- `stg branch --create` inherits the current branch's remote branch
  configuration, if available. The Python implementation had an apparent
  bug that prevented inheriting the remote branch configuration when
  creating from the current branch.
- Avoid case insensitive patch name collisions. On operating systems
  with case-insensitive paths, patch names that only differ by case lead
  to patch reference collisions. StGit now ensures that patch names are
  distinct under case insensitive comparisons.
- `stg pull` and `stg rebase` record updated stack state instead of
  deferring until the next stack-modifying command to do so.

### Changed since 2.0.0-rc.2

#### Changed
- chore: Update Cargo.lock

#### Fixed
- fix(zsh): Repair broken completion of --git-opt
- fix(zsh): Add missing `stg email send --branch`
- fix(email): Send using --branch option
- fix: Avoid duplicate signoff with stgit.autosign
- fix: Do not use 3way for merged checks


## [2.0.0-rc.2] 2022-10-23

### Changed
- The `--diff-opts` option is renamed to `--diff-opt`. `--diff-opts`
  remains available as an alias.
- The `--diff-opt` option no longer allows multiple git options per
  occurrence. This allows git diff options with spaces in their values.
- The `--git-opts` option for `stg email format` and `stg email send` is
  renamed `--git-opt`.
- The `--git-opt` option no longer allows multiple git options per
  occurrence. This allows git options with spaces in their values.
- Zsh completion for `--diff-opt` and `--git-opt` leverage the
  full-featured git completion capability.

### Fixed
- Repair check for modifications to stack by external tools.
- `stg pull` and `stg rebase` record updated stack state instead of
  deferring until the next stack-modifying command to do so.
- Improve patch application with `git apply --3way` when pushing` (#225)
- Zsh completion for `--diff-opt` accommodates multiple occurrences


## [2.0.0-rc.1] 2022-09-30

### Added
- Added `--annotate` flag to `stg email send`.
- Added `-p`/`--patch` option to `stg show` as alternative way to select patch
  ranges (#216).
- Added `-n`/`--name` option to `stg new` as alternative way to specify new
  patch name (#216).

### Changed
- Update `git2` to 0.15.0, which may further help compatibility with
  sparse checkouts and multiple worktrees (#195).
- Update to `clap` 4.0, which changes the help formatting and coloring.
- Update other dependencies to latest versions in Cargo.lock.
- No longer depend on `lazy_static` crate.
- Use `std::thread::scope` instead of custom mechanism. This brings the
  total number of uses of `unsafe` in StGit to zero.
- Minimum rustc requirement is set to 1.63.0.
- The '$' sigil used for committed patches is now yellow instead of
  white.
- Patch names beginning with a hyphen '-' may be disambiguated from command
  line options by escaping the leading '-' with a backslash.
- `stg email format` and `stg email send` now use `-G`/`--git-opts` to pass
  additional options to `git format-patch` and `git send-email`.
- Patch name arguments to `stg email format` and `stg email-send` can now be
  placed after a `--` separator (#216).
- Update top-level usage help for `stg`.

### Fixed
- Various errors that may occur when executing a stack transaction are
  now handled more robustly such that the changes from the transaction
  are rolled-back so that the stack, repository, and worktree are all in
  a consistent state (#205).
- The `stg uncommit -h` usage indentation is repaired.
- The `stg float` usage now shows the two distinct usage modes.
- `stg squash --name` allows patch names with leading '-'.
- `stg diff --range` allows patch names and ranges with leading '-'.
- Fix some pre-indented paragraphs in help/about strings.
- Zsh completion for `stg edit` incorrectly included -O/--diff-opts.
- Zsh completion for `stg files` incorrectly included -O/--diff-opts.


## [2.0.0-beta.3] 2022-08-28

### Added
- Add install targets for `contrib/` directory.

### Changed
- Use `git` executable instead of `libgit2` for all status and index
  operations to improve compatibility with sparse index checkouts
  (#195).
- Show commit hash in `stg version` output when not built from tag.
- Use `cargo --locked` consistently in Makefiles.
- Use "patch" extension in temp file name when editing a patch with a
  diff.
- Updated transient dependencies in Cargo.lock.

### Fixed
- Repair `stg branch --describe` panic when run without arguments
- Repair zsh completions for `git branch`
- Repair `stgit.el` to use compatible `stg show` commands (#202).
- Repair `stg uncommit --to` to work with annotated tags (#203).
- Repair `make install` to not install cargo tracking files.


## [2.0.0-beta.2] 2022-08-05

### Changed
- Improved error when push conflicts with untracked files (#193)
- Removed a few transitive dependencies by turning-off features in bstr
  and chrono.
- Update Cargo.lock with latest dependencies
- Update to clap 3.2 and only use non-deprecated interfaces

### Fixed
- Repair `stg spill` when spilling newly added files and using path
  limits.


## [2.0.0-beta.1] 2022-07-28

### Removed
- Removed Python implementation of StGit.

### Added
- Man page generation in asciidoc format with `stg completion man`. This
  was needed for feature parity with the Python implementation.
- Added documentation for patch range syntax to stg(1) man page.
- Added `install-all` target to top-level Makefile that installs the
  executable, man pages, html pages, and shell completions.

### Changed
- Additional template search paths were added. In addition to looking
  for template files in .git/, also look in
  `$XDG_CONFIG_HOME/stgit/templates/` and `$HOME/.stgit/templates`. This
  search strategy is consistent with how git looks for the global config
  file.
- Makefile targets are updated such that they are all applicable to the
  Rust implementation.
- Argument value names are now all lowercase in help and man pages.
- Updated Cargo.lock with latest versions of dependencies.
- Release checklist is updated for Rust implementation.

### Fixed
- Minor typo fixes in help strings
- Improved documentation for top-level `stg` options.
- Improve error message in edge case of attempting to push a hidden
  patch by name when there are no unapplied patches.


## [2.0.0-alpha.2] 2022-07-07

### Added
- `stg email format` wraps `git format-patch` and provides a mechanism
  to generate patch emails and optional cover letter in mbox format.
- `stg email send` wraps `git send-email` and allows sending patch
  emails, either from files generated by `stg email format` or by
  specifying patches directly.

### Changed
- Bash completions for shell aliases now fallback to filename
  completions (#191).
- Help options listings now ensure --color and --help are shown last.
- Various zsh completion improvements:
  - Add descriptions for --color values
  - Complete -O/--diff-opts values (using `git diff-tree --git-completion-helper`)
  - Comprehend `stg -C <dir>` options
  - Improved/corrected alias expansion
  - Improved error messages when completion is attempted outside git
    repo and/or StGit-initialized branch
  - Patch name completions now look and feel like output from `stg
    series`
  - Complete patch range syntax ('patch0..patchN') for all relevant
    commands
  - Completion for `stg squash` no longer allows duplicate patch name
    arguments
  - Removed completions for removed `stg mail` command
  - Completion for `stg sink` no longer offers hidden patches
  - Completion for `stg rename` comprehends second, new patch name
    argument
  - Completion for `stg diff --range` now works

### Fixed
- Compatibility with git versions prior to 2.35.0 is repaired by
  avoiding using `git apply --allow-empty` (#192).
- Fish completions for -O/--diff-opts are repaired


## [2.0.0-alpha.1] 2022-06-17

### Added
- `stg series` gains the `-i/--commit-id` option to display patches'
  commit ids.
- `stg series` colorized output is modified. The main change is that
  patch descriptions are no longer yellow.
- `stg version` now displays copyright and license statements.
- `stg version` gains `-s/--short` flag to show shortened version info.
- The `stgit.diff-opts` configuration variable is now respected as it
  was in the Python implementation.
- `stg completion` command provides runtime support for shell completions.
- `stg completion bash` generates bash shell completion script.
- `stg completion fish` generates fish shell completion script.
- `stg completion zsh` outputs zsh shell completion script.
- `stg completion list` shows StGit commands and aliases and is used at
  completion-time by shell completion scripts.

### Changed
- The `-O/--diff-opts` flag now allows both multiple space separated
  opts in one value as well as multiple occurrences of `-O/--diff-opts`
  on the same command line. This behavior is compatible with the Python
  implementation.
- `stg series` help output splits options into a few sections.
- Dependencies are updated to more recent versions in Cargo.lock.

### Fixed
- `stg edit --set-tree` no longer causes the interactive editor to be
  implicitly invoked.
- Repair build for non-Linux unix targets (including MacOS) and Windows
  targets.
- Avoid case insensitive patch name collisions. On operating systems
  with case-insensitive paths, patch names that only differ by case lead
  to patch reference collisions. StGit now ensures that patch names are
  distinct under case insensitive comparisons.
- Add missing `-t` short option for `--set-tree` for `stg edit`.
- Add missing `-k` short option for `--keep`.


## [2.0.0-alpha.0] 2022-05-17

### Removed
- `stg edit` no longer accepts `-O/--diff-opts`. Custom diff options is
  in conflict with editable diffs since many (most?) diff options cause
  the diff to no long be applicable.
- `stg files` no longer accepts `-O/--diff-opts`. This option was of
  marginal value since it only had a possible side effect when `--stat`
  was being used.
- `stg clone` is removed (at least for the time being). Use `git clone`
  and `stg init` instead.
- `stg mail` is removed, but will be re-added or replaced prior to the
  2.0.0 release.

### Added
- `stg new --refresh` allows a new patch to be refreshed with changes in
  one step. The `-i/--index`, `-F/--force`, `-s/--submodules`, and
  `--no-submodules` options from `stg refresh` are also available to
  `stg new`.
- `stg id` now accepts the `-b/--branch` option.
- `stg spill` replaces `stg refresh --spill`.

### Changed
- StGit aliases are now more like Git aliases. Normal aliases refer to
  StGit subcommands, but aliases prefixed with '!' are shell aliases
  that may run arbitrary commands. An example normal alias would be
  `git config stgit.alias.list 'series --description --empty'`. An
  example shell alias would be `git config stgit.alias.st '!git status
  --short'`.
- The `--ack` and `--review` options now optionally take a value. The
  `--ack-by` and `--review-by` options are deprecated.
- Commands such as `stg goto`, `stg push`, and `stg pop` now require
  full/correct patch names on the command line and no longer accept
  unambiguous patch name prefixes. When an inexact patch name is
  provided on the command line, the error message will now indicate
  similar valid patch names.
- `stg branch` output is now generally less verbose.
- `stg branch --describe` replaces `stg branch --description`. The
  `--description` subcommand remains supported as a hidden alias to
  `--describe`, but the description string must now be provided as its
  own argument; i.e. `--description="description string"` is no longer
  supported.
- `stg branch --list` now produces colorized output. The `--color`
  option or `NO_COLOR` environment variable may be used to affect this
  behavior.
- `stg branch --rename` now supports renaming regular git branches in
  addition to StGit-enabled branches.
- `stg clean` now uses `-A` and `-U` short options for `--applied` and
  `--unapplied` instead of `-a` and `-u`. This is done for consistency
  with `stg series` and `stg show`.
- `stg import` now only recognizes compressed patches by their file
  extension (`.bz2` or `.gz`) and no longer attempts to decompress using
  all known decompressors.
- `stg import` support for compressed input files is selectable at
   compile time using the `import-compressed` feature.
- `stg import` support for importing from a URL is selectable at compile
  time using the `import-url` feature.
- `stg log` now colorizes output by default. The `--color` option or
  `NO_COLOR` environment variable may be used to affect this behavior.
- `stgit.new.verbose` changed to `stgit.edit.verbose` and now affects edit
  behavior for `edit`, `refresh`, and `squash` along with `new`.
- `stg new` now accepts `-e/--edit` and `-d/--diff` instead of `-v/--verbose`
- `stg pick` now allows a mix of commits and patches to be picked
  whereas previously only a single commit xor multiple patches could be
  picked.
- `stg pick` now performs a single stack transaction for all the picked
  patches/commits instead of one transaction per pick.
- `stg rebase --interactive` the "squash" and "fixup" instructions may
  no longer be applied to the first patch in the instruction list. The
  stated semantics of both "squash" and "fixup" is that they squash the
  labeled patch with the preceding patch, which is not possible/valid
  when there is no preceding patch.
- `stg refresh` no longer has the `--spill` flag. Use `stg spill`
  instead.
- Updated colorized output for `stg series`.
- `stg series` now requires patch range arguments to be both in-order
  and contiguous. Constraining patch ranges in this manner ensures that
  the output from `stg series` is always a valid/correct view of a
  subset of the series.
- `stg show` diff can now be limited to certain paths by specifying path
  limits on the command line.
- `stg show` diff output respects the `--color` option.
- The new `--signoff` patch edit option supersedes the deprecated
  `--sign` and `--sign-by` options. `--signoff` without its optional
  value does the same thing as `--sign`, while `--signoff=<value>` does
  the same thing as `--sign-by=<value>`.
- `stg squash` now allows the full suite of patch edit options,
  including `-d/--diff`. Previously only a few message-related options
  were available.

### Fixed
- `stg branch --create` inherits the current branch's remote branch
  configuration, if available. The Python implementation had an apparent
  bug that prevented inheriting the remote branch configuration when
  creating from the current branch.


## [1.5] 2022-01-28

### Removed
### Added
- Add Makefile targets for installing shell completions
- `stg rebase --interactive` learns 'hide' instruction

### Changed
- Picked patch names are preserved when possible (#175)
- Replace `--unapplied` option with `--noapply` for `stg pick` (#174)
- `stg pick --noapply` no longer reverses patch order (#174)
- Use `stg version` uses `sys.executable` to get Python version.

### Fixed
- Repair `stg repair` with amended first patch (#163)
- Repair corner cases where invalid patchnames could be generated by
  `stg new`, `stg uncommit`, etc. (#176)
- `stg mail` could crash due to a misspelled reference (#178)
- Zsh completion for `stg refresh -p` now completes against all patches
  (not just applied patches).
- Zsh gains missing completion for `stg push --noapply`
- Minor repair to help for `stg float --noapply` and `stg push
  --noapply`
- Restore `stg sink --nopush` capability.


## [1.4] 2021-10-27

### Removed
- Python 3.5, which became EOL 2020-09-13, support is deprecated and
  will be removed in a future StGit release
- Python 3.6, which will be EOL 2021-12-23, support is deprecated and
  will be removed in a future StGit release

### Added
- The new `stg import --message-id` option causes the Message-ID from
  imported emails to be included as the Message-Id trailer in the patch
  description (#42)
- The new 'stgit.import.message-id' config option also enables the
  Message-Id trailer (#42)

### Changed
- `stg import` no longer creates "Message-Id" trailer by default when
  importing patches from email (#42)
- StGit works with Python 3.10
- `stg version` prints a more abbreviated Python version
- `stg commit` will no longer commit empty patches by default; the
  `--allow-empty` option may be used to override this behavior (#158)
- The `stgit.main.main()` function now takes an argv parameter and
  returns an int return code in most cases instead of calling
  sys.exit(), thus making main() a bit easier to use as an API.

### Fixed
- Repair stack upgrade with `stg branch --list` (#155)
- Repair crash in `stg squash` with out of order patches and no name
  specified (#157)
- Zsh completions learn `stg float --noapply` option
- Zsh completion for `stg sink` now allows multiple patches


## [1.3] 2021-09-26

### Removed

### Added

### Changed

### Fixed
- Repair crash regression when using `stgit.autosign`

## [1.2] 2021-09-26

### Removed

### Deprecated
- Python 3.5, which became EOL 2020-09-13, support is deprecated and
  will be removed in a future StGit release
- Python 3.6, which will be EOL 2021-12-23, support is deprecated and
  will be removed in a future StGit release

### Added
- `stg rebase ` learns `--interactive`; easily re-order, edit, squash,
  fixup, or delete patches via your editor
- `stg rebase` learns `--autostash`; stash changes before the rebase and
  apply them after. Also configurable with the `stgit.autostash`
  configuration option
- `stg edit` can now rename patches (#119)
- `stg edit` gains helpful instructions (#138)
- `stg new` learns `--verbose`, which includes a diff in the editor
  window (similar to `git commit --verbose`). This behavior is also
  configurable with the `stgit.new.verbose` configuration option
- `stg push` and `stg float` learn `--noapply` option; allows patches
  to be reordered without updating worktree and deferring merge conflict
  resolution (#144)
- `stg edit`, `stg refresh`, and `stg new` learn the `--sign-by`,
  `--ack-by`, and `--review-by` options which allow those respective
  trailers' values to be specified by the user on the command line (#92)

### Changed
- Stack metadata version 5; stack metadata is moved from
  `refs/heads/<branch>.stgit` to `refs/stacks/<branch>` and the stack
  metadata file now uses a JSON format instead of the prior custom
  format; the stack metadata will be upgraded to v5 on first use of
  this version of StGit; like all stack metadata upgrades, **this is a
  one-way auto-upgrade for existing stacks** (#65)
- Use setuptools instead of distutils for packaging
- No git or python version checks in setup.py
- Use different dynamic versioning system
- Install `stg` executable as console_script entry point
- More sophisticated search for bash.exe on Windows when running hooks
- The editor window text for `stg squash` has been modified to mirror
  git's behavior -- the squash edit message now includes all commits
  (#71)
- Binary diffs are no longer shown when with `stg edit -d`
- Multiple trailers can now be added at once; this is now allowed, for
  example: `stg edit --sign --review --ack`
- Update zsh completion for `stg rebase` to show local and remote heads
  (#102)
- Zsh completions for commands with patch arguments now comprehend the
  effect of `-b/--branch` and `-B/--ref-branch`
- Zsh completions now guard patch names--one less TAB press to complete
  patch names in certain contexts
- `stg import` now extracts the `Message-ID` email header into the patch
  message (#42)

### Fixed
- Repair crash when attempting to export empty patch (#112)
- Exact command name matches are unambiguous (#110)
- Exiting with an empty `stg edit` editor will now abort the edit;
  previously it would delete your commit message. (#138)
- Repair completions when stg.series.description is enabled in config
- Workaround child process reaping race on Windows (#78)
- Repair crash with `stg float --series` when bad patch name in series
- Repair zsh completion for `stg float` to accept multiple patch names
- Repair zsh completion for changed files, affecting `stg refresh` and
  `stg diff`

### Internal
- Add link to coverage.io project to CONTRIBUTING.md
- Set smart `exclude_lines` default for 'coverage'
- Expanded test suite for `stg edit`
- Add pkgtest.py script to help test StGit packaging
- Cleanup .gitignore files


## [1.1] 2021-04-30

### Removed

### Added
- StGit GPG-signs patches when `commit.gpgsign` is set (#12)
- Support `core.hooksPath` in git config
- Add `-C` option for `stg import` and `stg fold` (#18)

### Changed
- Allow importing mail and series from urls (#94)
- `stg refresh --edit` may also use `--diff` and `--diff-opts` (#98)
- `stg goto` allows sha1 of a patch instead of patch name (#93)

### Fixed
- Repair hang in `stg pull -m`, `stg goto -m`, and `stg push -m`
- Repair `stg mail` to show diffstat of whole series (#104)
- Repair MANIFEST.in to include AUTHORS.md and README.md files


## [1.0] 2021-02-07

### Removed
- Drop support for Python < 3.5
- Remove previously deprecated `stg publish` command
- Removed contrib scripts: `stg-swallow`, `stg-fold-files-from`,
  `stg-dispatch`, `stg-whatchanged`, and `stg-show-old`

### Added
- The pre-commit hook is now run for `stg refresh`
- New `--spill` option for `stg refresh`
- Add stgit.series.description config option (#88)
- Official support for Python versions up to 3.9

### Changed
- Stack metadata format 4. All metadata now kept in Git objects; no more
  stack state files in .git/patches. **A one-way auto-upgrade to format
  version 4 will occur when StGit commands are run on an existing StGit
  branch.**
- Use `python3` in shebangs instead of `python`
- `contrib/stgbashprompt.sh` is no longer executable
- Internal docstrings now use reStructuredText instead of Epytext

### Fixed
- Importing large patches is much, much faster (#66)
- Other performance improvements when dealing with large patches
- Repair diffstat when outside work tree root (#62)
- Use encoded (string) environment variables on Windows (#79)
- Fix `stg pull` when no upstream is configured (#83)
- Fix `refresh` crash with path limiting and files added to index (#85)
- Repair `new` with patchdescr.template crash (#87)
- Repair `log` from worktree subdir with patches specified
- Repair `import` allowing/generating duplicate patch names (#64)
- Repair `mail --auto` to strip comments after addrs (#91)


## [0.23] 2020-06-12

### Removed
- Drop support for Python 3.3; Python 2 (2.6 and 2.7) remain
  deprecated, but supported for one last release
- Tutorial is removed; it now exists as part of the website

### Deprecated
- Python 2.x support is deprecated and will be removed in a future
  release

### Added
- Support html5 output of docs from asciidoc
- Add `--expose` option for `stg pick` to allow picked commit message to
  be customized

### Changed
- Limit mail diffstat to 72 columns
- Added pyproject.toml file for black configuration
- Minimum Git version is 2.2.0
- Quote stg and subcommand in man page synopsis
- Replaced RELEASENOTES with this CHANGELOG.md
- Replaces Documentation/SubmittingPatches with CONTRIBUTING.md

### Fixed
- Repair MANIFEST.in and generated source dist
- Repair importing mail with ": " (colon space) in subject
- Fix mail cover letter shortlog
- Fix mail cover letter diffstat
- `stg series` now only outputs colors when `isatty()`
- Repair mail SSL check (#57)
- Repair `stg mail` with both `-a` and `-e` options (#58)
- Remove empty short-opt for `--no-submodules` of `stg refresh`
- Repair build.py for Python 2 with explicit `flush()`
- `stgit.refreshsubmodules` added to sample gitconfig

### Internal
- Update docs build system from upstream Git docs
- Use coverage contexts to map commands to covered lines
- Improve mail tests
- Use GitHub Actions instead of TravisCI
- Format StGit source using black formatter

## [0.22] - 2020-03-02

### Removed
- Remove debian packaging; downstream Debian uses its own anyway

### Deprecated
- Python 2.x support is deprecated and will be removed in the next StGit
  release
- `stg publish` is deprecated and will be removed in the next StGit
  release

### Added
- `stg import` has new --keep-cr option, like `git mailsplit`

### Changed
- `stg new` now includes patch name in log message
- `stg branch --rename` can now rename the current branch
- `stg branch --create` now works even if the workspace is dirty,
  consistent with `git checkout`
- `stg branch --description` now works on both regular and stgit
  branches
- `stg edit --diff` now implies `--edit`
- `stg refresh` and `stg edit` now reset the committer information,
  consistent with `stg push`
- git notes are now preserved when patches are modified
- Tutorial improvements
- Many additional tests and test improvements
- All stgit commands now use "new" git library infrastructure

### Fixed
- `stg branch --create` inherits remote correctly from parent committish
- Patch names are checked earlier to avoid inconsistent stack states
- Improved commit data parsing and handling of non-UTF8 encodings
- Repair git error messages when checking stgit version from outside a
  git repo


## [0.21] - 2019-10-28

### Changed
- Faster handling of large patches (#44)

### Fixed
- Build reproducibility repairs (Thanks reproducible-builds.org team!)
- Python can now be run with optimizations (`python -O`)
- `stg log` now prints trailing newline
- Improved command line option parsing for `stg log`


## [0.20] - 2019-10-04

### Added
- `stg patches -d` can now output colored diffs.
- `stg publish --overwrite` allows branch to be overwritten instead of
  creating new commits.
- `stg log --clear` deletes the stack's log history. Use with caution.
- Fish shell completions for stg.
- Zsh completions for stg.
- `stg mail --domain` option overrides the host's domain in the message
  ID.

### Changed
- Branch protection metadata now captured in config instead of
  .git/patches/<branch>protect file. This updates stgit's metadata
  format from v2 to v3.
- `stg diff` no longer shows binary diffs by default. Use `-O--binary`
  or add `--binary` to stgit.diff-opts in config.
- Diagnostic output is now routed to stderr instead of stdout.
  Diagnostic output is also now sent to stderr unconditionally, i.e. no
  more isatty() test (#35).
- Converted to "new" lib infrastructure: `show`, `patches`, `diff`,
  `pick`, `pull`, `rebase`, and `fold`.

### Fixed
- `stg show` detects conflicting --applied and --unapplied options.
- `stg show --stat` now shows commit headers.
- `stg patches --diff` now shows proper diff instead of `b'...'` repr of
  diff.
- `stg diff --range` detects some invalid values (e.g. `-r ..`).
- Date parsing is now more portable, only use platform specific `date`
  as last parsing option. Affects, e.g., `stg refresh --authdate`.
- Repaired search path for templates to avoid looking in Python
  site-packages directory.
- Ensure stdout and stderr are flushed. Rarely affected `stg diff`.
- `stg repair` will now fail if extra command line arguments are
  provided.
- Bash completions are now generated in a reproducible manner.
- `stg edit --diff` on an empty patch no longer crashes.
- `stg pick` no longer fails when picked commit has empty message (#39).
- `stg rebase` no longer crashes when there are conflicts (#34).
- `stg pick` no longer crashes if --name is not provided when picking a
  regular commit object.
- Improved test coverage for: branch, diff, pick, sync,
- New tests for: files, patches, fold, series
- Portable use of iconv, sort, and sed in tests.
- Linting using flake8 and isort.
- All Python code now conforms to PEP-8.
- Updated test infrastructure from git 2.20.
- Parallel tests with coverage (`make -j4 coverage`) now works.
- Documentation build is not included in code coverage.
- Repaired log end messages when using `STGIT_SUBPROCESS_LOG=debug`.
- Renamed "dunder" instance attributes to improve debugging.
- Fail faster when patch name has slash ('/') (#24).


## [0.19] 2018-11-05

### Changed
- Python 3 support. StGit supports Python 2.6, 2.7, 3.3, 3.4, 3.5, 3.6,
  and 3.7. PyPy interpreters are also supported.
- Submodules are now ignored when checking if working tree is clean.
  Submodules are also not included by default when refreshing a patch.
- Config booleans are now parsed similarly to git-config.
- `contrib/stgit.el` is now licenced with GPLv2.
- Add continuous integration (travis-ci) and code coverage (coveralls)
  support.
- Many new test cases were added.

### Fixed
- Repair handling of emails with utf-8 bodies containing latin-1
  characters. Also correctly decode email headers containing quoted
  encoded words.
- StGit's version is now correct/available in the release archive.


## [0.18] 2017-08-14

### Added
- `commit-msg` hook support for easier integration with Gerrit, allowing
  a Change-Id line to be inserted in the commit message
- `stg mail` improvements for 'Suggested-by:' tag and auto generation of
  Cc for the cover letter based on all tags in the series
- `stg mail` bash completion for the --to, --cc and --bcc options based
  on the content of the [mail "alias"] section of Git configuration
- `stg edit --review` option to add a 'Reviewed-by:' tag
- `stg pop --spill` functionality to allow popping a patch from the
  stack while keeping its modification in the tree

### Changed
- Project page details updated (gna.org has been shut down)

### Fixed
- Various fixes and test coverage improvements
jperkin pushed a commit that referenced this issue Aug 7, 2024
Changelog for rest-server 0.13.0 (2024-07-26)
============================================

The following sections list the changes in rest-server 0.13.0 relevant
to users. The changes are ordered by importance.

Summary
-------

 * Chg #267: Update dependencies and require Go 1.18 or newer
 * Chg #273: Shut down cleanly on TERM and INT signals
 * Enh #271: Print listening address after start-up
 * Enh #272: Support listening on a unix socket

Details
-------

 * Change #267: Update dependencies and require Go 1.18 or newer

   Most dependencies have been updated. Since some libraries require newer language
   features, support for Go 1.17 has been dropped, which means that rest-server now
   requires at least Go 1.18 to build.

   restic/rest-server#267

 * Change #273: Shut down cleanly on TERM and INT signals

   Rest-server now listens for TERM and INT signals and cleanly closes down the
   http.Server and listener when receiving either of them.

   This is particularly useful when listening on a unix socket, as the server will
   now remove the socket file when it shuts down.

   restic/rest-server#273

 * Enhancement #271: Print listening address after start-up

   When started with `--listen :0`, rest-server would print `start server on :0`

   The message now also includes the actual address listened on, for example `start
   server on 0.0.0.0:37333`. This is useful when starting a server with an
   auto-allocated free port number (port 0).

   restic/rest-server#271

 * Enhancement #272: Support listening on a unix socket

   It is now possible to make rest-server listen on a unix socket by prefixing the
   socket filename with `unix:` and passing it to the `--listen` option, for
   example `--listen unix:/tmp/foo`.

   This is useful in combination with remote port forwarding to enable a remote
   server to backup locally, e.g.:

   ```
   rest-server --listen unix:/tmp/foo &
   ssh -R /tmp/foo:/tmp/foo user@host restic -r rest:http+unix:///tmp/foo:/repo backup
   ```

   restic/rest-server#272


Changelog for rest-server 0.12.1 (2023-07-09)
============================================

The following sections list the changes in rest-server 0.12.1 relevant
to users. The changes are ordered by importance.

Summary
-------

 * Fix #230: Fix erroneous warnings about unsupported fsync
 * Fix #238: API: Return empty array when listing empty folders
 * Enh #217: Log to stdout using the `--log -` option

Details
-------

 * Bugfix #230: Fix erroneous warnings about unsupported fsync

   Due to a regression in rest-server 0.12.0, it continuously printed `WARNING:
   fsync is not supported by the data storage. This can lead to data loss, if the
   system crashes or the storage is unexpectedly disconnected.` for systems that
   support fsync. We have fixed the warning.

   restic/rest-server#230
   restic/rest-server#231

 * Bugfix #238: API: Return empty array when listing empty folders

   Rest-server returned `null` when listing an empty folder. This has been changed
   to returning an empty array in accordance with the REST protocol specification.
   This change has no impact on restic users.

   restic/rest-server#238
   restic/rest-server#239

 * Enhancement #217: Log to stdout using the `--log -` option

   Logging to stdout was possible using `--log /dev/stdout`. However, when the rest
   server is run as a different user, for example, using

   `sudo -u restic rest-server [...] --log /dev/stdout`

   This did not work due to permission issues.

   For logging to stdout, the `--log` option now supports the special filename `-`
   which also works in these cases.

   restic/rest-server#217
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant