This release mainly feature a huge rework of how identities are handled. While they were previously fully embedded in every single bug operations, they are now deported in their own data structure.
Reworking git-bug
to add this whole new identity data model has been a long and arduous journey. Indeed, the concept of identity is so central in a bug tracker that it touched pretty much every file of the project. It took two months to be able to fully compile the project again. Good thing that golang allow to proceed step by step and check that everything works with a set of tests!
This work already yielded some benefits: less memory and storage usage, more performance, or simply being able to query bugs by author or participants. But the real benefit is that is will, once we add cryptographic keys to the identities, serve as a foundation to build more advanced features:
- commit signature to authenticate bug edition or even code authors
- an access right policy with different role (administrator , ...)
- encrypted comment or bugs for sensitive discussion
Note: while git-bug
will only guarantee a stable data model when the 1.0 version is reached, this huge change is backward compatible !
Core
- a whole new data model has been added to store user identities, allowing to store the identity only once, update it, and in the future, to store cryptographic keys. This change spread to the whole stack including the cache layer, all the UI and the bridges
- go 1.8 is not supported anymore due to a dependency update
- bugs now expose the list of actors and participants, thanks to @A-Hilaly
- it's now possible to have empty comments, thanks to @Steap. This change was necessary to import data from external bug trackers
- the shortened version of a hash is now consistently 7 characters long, thanks to @seeduvax
Query language
- it's now possible to filter the bug list with a title pattern, thanks to @sladyn98
- it's now possible to filter the bug list by actors or participants, thanks to @A-Hilaly
- multiple label filter now match bugs with either one of them instead of bugs with all of them, thanks to @njthomas and @sladyn98
- identities can now also be queried with an ID or an ID prefix (
author:3bb1db1
) in addition to the normal string pattern (author:descartes
), thanks to @A-Hilaly
CLI
- new command
git bug user
to display the current identity - new command
git bug user create
to create a new identity - new command
git bug user ls
to list existing identities - new command
git bug user adopt
to select an identity as your own, for example after an import from an external bug tracker - new command
git bug ls-id [<prefix>]
to list either all bug ids or the matching ones, thanks to @sladyn98. This command is intended to help scripting. - new command
git bug version
that display a complete view of what version is running, including the git hash git bug show
can now output specific fields with--field <name>
, thanks to @seeduvax- commands now catch properly interruption signals and unlock the cache before exiting, thanks to @auyer
Building bug cache...
and friends are now properly sent tostderr
for easier filteringgit bug ls
is now super fast by using only cache data, thanks to @sladyn98- @jfacchini cleaned and improved the commands documentation !
TermUI
- the bug table now only use data from the cache, making it super fast
- text layout and display of Chinese and other non-latin languages has been fixed, big thanks to @ProgramFan
- minor layout improvements to better use the screen space
- browsing the bug is now more natural, as reaching the bottom load the next page, thanks to @Steap
- fixed a crash when trying to edit a comment while none were selected, thanks to @ludovicm67
WebUI
- the webUI now use the
Timeline
API and properly display updated comments, thanks to @sandhose - the timeline page now looks better, thanks to @sandhose
GraphQL
- now expose bug's actor and participants, thanks to @A-Hilaly
- now expose valid labels, thanks to @ludovicm67
Bridges
- there is now a partial Launchpad importer (!), thanks to @Steap
And of course, the usual bug fixes and minor improvements.
🚀 ☀️