Releases: mrossinek/cobib
v5.2.3
v5.2.2
[5.2.2] - 2024-12-06
Pypi: https://pypi.org/project/cobib/5.2.2/
Breaking Change
- The
config.theme.dark
andconfig.theme.design
settings have been replaced
by the newconfig.theme.theme
setting, which can be either the name of one
of textual's builtin themes, or a customtextual.theme.Theme
instance
(#147,!279). Due to how recent these settings have been introduced (as part of
5.2.0), I am opting for a quick removal in this bugfix release rather than a
proper version bump (in the sense that they have likely not been adopted, yet)
and the severness of the bug that this is causing outweighs the needs here.
Fixed
- compatibility with
textual>=0.86
v.5.2.1
[5.2.1] - 2024-10-30
Pypi: https://pypi.org/project/cobib/5.2.1/
Fixed
- compatibility with
textual>=0.80
v5.2.0
[5.2.0] - 2024-10-30
Pypi: https://pypi.org/project/cobib/5.2.0/
Prelude
With the addition of the new note
command, the database entry fields called
"note"
have obtained a special meaning. Use the lint
command to check
whether your database is affected by this. If it is, you should rename those
fields.
Added
- new configuration settings to customize the appearance of coBib (!222):
cobib.config.theme.dark
: to specify whether a dark or light theme is usedcobib.config.theme.design
: to customize the colors themselves- the following settings to customize the appearance of
rich.Syntax
displays:cobib.config.theme.syntax.theme
cobib.config.theme.syntax.background_color
cobib.config.theme.syntax.line_numbers
- the
note
command (#139,!206).
Please refer to its online documentation or the man-page for more details on
how to use it.
This new command comes with:- the
cobib.config.commands.note.default_filetype
setting - the
PreNoteCommand
andPostNoteCommand
event hooks
- the
- (DEV) the
add_files
argument to theBaseCommand.git
function - Python 3.13 is now officially tested and supported
- new configuration settings for the search command (#146,!269)
- For dealing with skipping/including associated files during searches:
cobib.config.commands.search.skip_files
sets the default--skip-files
overwrites this at runtime (this is not actually new)--include-files
overwrites this at runtime (the opposite)
- For dealing with skipping/including associated notes during searches:
cobib.config.commands.search.skip_notes
sets the default--skip-notes
overwrites this at runtime (this is not actually new)--include-notes
overwrites this at runtime (the opposite)
- For dealing with skipping/including associated files during searches:
Changed
- the keybinding to recursively toggle all folds in the TUI's search result view
was changed fromENTER
toBACKSPACE
(!218) - (DEV)
cobib.ui.components.entry_points
was moved tocobib.utils.entry_points
- replaced the custom help screen with textual's new builtin help panel (!240)
Fixed
- the behavior of the
Home
andEnd
keybindings in the TUI's list view (!217) - gracefully handles Zotero imported entries without a
journal
field (#145)
v5.1.2
[5.1.2] - 2024-06-23
Pypi: https://pypi.org/project/cobib/5.1.2/
Fixed
- support database locations in nested folders of a git repository (!204)
v5.1.0
[5.1.0] - 2024-05-28
Pypi: https://pypi.org/project/cobib/5.1.0/
Prelude
Check out my blog post to learn more about the features of this new release:
https://mrossinek.gitlab.io/programming/cobib-becomes-fuzzy/
Added
- approximate (or fuzzy) filter matching and search functionality (#107,#130,!177)
- the
list
andsearch
commands now support the following features to
perform approximate filter matching and searching, respectively:- LaTeX sequences can be decoded to Unicode characters:
- using
--decode-latex
from the command-line - setting
config.commands.list_.decode_latex = True
- setting
config.commands.search.decode_latex = True
- using
- Unicode characters can be converted to a close ASCII equivalent:
- using
--decode-unicode
from the command-line - setting
config.commands.list_.decode_unicode = True
- setting
config.commands.search.decode_unicode = True
- using
- a number of fuzzy errors can be set (this requires the optional dependency
regex
to be installed):- using
--fuzziness <int>
from the command-line - setting
config.commands.list_.fuzzines
to some integer - setting
config.commands.search.fuzzines
to some integer
- using
- LaTeX sequences can be decoded to Unicode characters:
- the
- (DEV) the following method arguments have been converted to be accepted only
as keyword arguments:- in
cobib.database.Entry.matches
:ignore_case
- in
cobib.database.Entry.search
:context
,ignore_case
, andskip_files
- in
- (DEV) the return-type of
cobib.database.Entry.search
has been changed
v5.0.1
[5.0.1] - 2024-05-01
Pypi: https://pypi.org/project/cobib/5.0.1/
Fixed
- the ability to use an empty string as the separator in
config.database.format.label_suffix
(#138)
v5.0.0
[5.0.0] - 2024-04-28
Pypi: https://pypi.org/project/cobib/5.0.0/
Added
- the ability to add custom
commands
,importers
, andparsers
through entry points (#135, !139)- (DEV) a dummy plugin show-casing these extensions
Changed
- the entire
shell_helper
module has been replaced as follows (!139):- the following deprecated helper methods were removed without replacement:
_list_commands
_list_filters
_list_labels
- the following secondary commands have been refactored:
_lint_database
is nowcobib.commands.lint.LintCommand
_unify_labels
is nowcobib.commands.unify_labels.UnifyLabelsCommand
_example_config
is nowcobib.config.command.ExampleConfigCommand
- the following deprecated helper methods were removed without replacement:
- the interactive disambiguation mechanism during the
add
command now handles
multiple matching related entries (#121,!168)- this includes the ability to
cancel
the disambiguation and entry addition
- this includes the ability to
Removed
- the previously deprecated
console
attribute of all commands has been removed (!139) - the previously deprecated
prompt
attribute of all commands has been removed (!139) - the
cobib.ui.shell_helper
andcobib.utils.shell_helper
modules have been removed (!139) - the previously deprecated
--update
argument of theadd
command (!168) - the previously deprecated
--skip-existing
argument of theadd
command (!168) - the previously deprecated
LabelSuffix.CAPTIAL
attribute (!168) - Python 3.8 is no longer supported (!173)
v4.5.0
[4.5.0] - 2024-03-17
Pypi: https://pypi.org/project/cobib/4.5.0/
Added
- the new
cobib.utils.context.get_active_app
method which returns any running
textual App and replaces the need for thecobib.utils.prompt.Prompt.console
andcobib.utils.progress.Progress.console
(which have been removed) (!137) cobib.parsers.YAMLParser.parse
can now also parse strings directly (rather
than always interpreting the argument as the path to a file) (!137)- the
review
command (#131,!137).
Please refer to its online documentation or the man-page for more details on
how to use it. - the
cobib.database.Entry.merge
method (!137)
Changed
- log messages will now be displayed in the
LogPanel
of the TUI (which can be
toggled with thez
keybinding) (#132,!133) - the
cobib.ui.components.prompt
module has been refactored intocobib.utils.prompt
(!133)
Deprecated
- the
console
argument to all commands has been deprecated since it no longer
has any effect (!133) - the
prompt
argument to all commands has been deprecated since it no longer
has any effect (!133) - access to the following
shell_helper
commands will change in the next release:cobib _lint_database
will becomecobib lint
cobib _unify_labels
will becomecobib unify_labels
cobib _example_config
will becomecobib example_config
Fixed
- loading a cached database will be bypassed during
_lint_database
(#133)- to support this the
bypass_cache
keyword-argument was added to the
Database.read
method
- to support this the
Removed
- official Windows support label. It might work but no guarantees are made (#136)
v4.4.0
[4.4.0] - 2023-12-15
Pypi: https://pypi.org/project/cobib/4.4.0/
Added
- a primitive caching mechanism to speed up the database loading. This feature
is enabled by default and will store its cache at~/.cache/cobib/databases/
.
You can configure the location viaconfig.database.cache
or even disable
caching entirely by changing this setting toNone
. (see also #129 and !108) - added the
-r/--remove
option to themodify
command (#128)- this can achieve the opposite of
-a/--add
in the sense that it will try to
remove the specified modification from a list or subtract a number from
numeric values - other field types than lists or numbers are not supported by this option
- this can achieve the opposite of
- added the
-l/--limit
option to thelist
command (#127)- exposed the
ListCommand.sort_entries
method in the public API - added the
ListCommand.execute_dull
method in the public API
- exposed the
- the
search
,export
, andmodify
commands now also support sorting and limiting options to be
passed onto thelist
command (along with the already existing filtering options) - the
config.tui.tree_folding
setting which allows you to configure the
default folding state of the tree nodes in the TUI's search result view - the
ENTER
binding in the TUI's search result view to recursively toggle all
folds of the current node
Changed
- when using the TUI you may now use the
:show <label>
command to jump to the
specified label (#126,!116) - the
search
command now reports its progress live (!117)
Fixed
- unblocked the vertical scrollbar of the TUI's list view from the scroll offset