- BREAKING: Dropped support for Python 3.6 and 3.7.
- BREAKING: Removed
--no-body-levels
option todoorstop publish
. - Fixed overriding default attributes with
doorstop add
. (@tangoalx) - Fixed encoding error with special characters on Windows. (@urbasus)
- Added support for publishing to the LaTeX format. (@neerdoc)
- Added support for storing items in Markdown with YAML front matter. (@ckolumbus)
- Upgrade PyYAML to 6.x to fix installation on newer versions of Python.
- Added support for UTF-8 symbols in references. (@stanislaw)
- Added custom attributes to published documents. (@chrta)
- Fixed handling of special characters when reordering items. (@asimon-1)
- Updated
markdown
to fixAttributeError
indoorstop-server
.
- Removed
mdx_outline
Markdown extension, which is incompatible with Python 3.9.
- Fixed tree builder to skip virtual environments.
- Fixed missing
six
dependency.
- Updated dependencies.
- BREAKING: Switched to SHA256 for tracking changes to files and reviews of extended attributes. Use
doorstop review all
followed bydoorstop clear all
to update an existing project. WARNING: This marks all items as reviewed and clears all suspect links. - Dropped support for Python 3.5.
- Fixed a bug with items not getting saved after edits.
- Added the ability to explicitly name a requirement.
- Improved the error message when there are multiple root documents.
- Updated
edit
andreorder
commands to use$EDITOR
. - Promoted support for item headers out of beta.
- Fixed bug with Doorstop attempting to import formulas from XLSX.
- Added support for
!include
statements in YAML to share configuration. - Added
--default
option toadd
to specify a file with defaults values.
- Added preliminary support for item headers. (@rickeywang)
- Added major enhancements to the Desktop GUI. (@elarivie)
- Converted document outline to a tree view.
- Made documents navigable via clicking links.
- Added an icon for Linux and Windows.
- Fixed duplicate headings when publishing. (@guille-r)
- Added Python 3.7 support.
- Fixed issue running doorstop on CI. (@ojohnny)
- Fixed templates location for installation issue.
- Updated HTML templates.
- Bug fixes.
- Fixed issue where could
doorstop create
deleting the whole project.
- Disabled excessive text cleanup in items. (@michaelnt)
- Running
doorstop review all
will be required due to whitespace changes.
- Running
- Added
--no-levels={all,body}
publishing options. (@michaelnt) - Removed unnecessary line breaks (
<br>
) in generated HTML. (@michaelnt) - DEPRECATION WARNING:
--no-body-levels
will not be supported in a future release.
- Added '--strict-child-check' option to ensure links from every child document.
- Moved the documentation to ReadTheDocs.
- Fixed a bug checking levels across inactive items.
- Added error message for all IO errors.
- Added '--skip' options to disable documents during validation.
- Added Mercurial support. (@tjasz)
- Restrict
openpyxl < 2.2
(there appears to be a breaking change).
- Fixed a bug running VCS commands in subdirectories.
- Excluded
openpyxl == 2.1.0
as a dependency version.
- Limit the maximum version of
openpyxl
to 2.1.0 due to deprecation bug.
- Fixed a bug requesting new item numbers from the server.
- Added
doorstop clear ...
to absolve items of their suspect link status. - Added
doorstop review ...
to absolve items of their unreviewed status. - Added
Item.clear()
to save stamps (hashes) of linked items. - Added
Item.review()
to save stamps (hashes) of reviewed items. - Added
doorstop reorder ...
to organize a document's structure. - Renamed
Item.id
andidentifer
arguments touid
- Added '--no-body-levels' to
doorstop publish
to hide levels on non-headings. - Added
doorstop-server
to launch a REST API for UID reservation. - Added '--server' argument to
doorstop add
to specify the server address. - Added '--warn-all' and '--error-all' options promote warnings to errors.
- Fixed bug importing items with empty attributes.
- Added
doorstop delete ...
to delete document directories. - Added
doorstop export ...
to export content for external tools. - Fixed
doorstop publish ...
handling of unknown formats. - Added tree structure and traceability to
index.html
. - Added clickable links using Item IDs in HTML header tags.
- Fixed bug publishing a document to a directory.
- Fixed bug publishing a document without an extension or type specified.
- Updated
doorstop import ...
to import from document export formats. - Updated
doorstop edit ...
to support document export/import. - Renamed
doorstop new ...
todoorstop create ...
. - Made 'all' a reserved word, which cannot be used as a prefix.
- Refactored
Item
levels into aLevel
class. - Refactored
Item
identifiers into anID
class. - Refactored
Item
text into aText
class (behaves likestr
). - Methods no longer require nor accept 'document' and 'tree' arguments.
- Renamed
Item.find_rlinks()
toItem.find_child_links()
. - Changed '--no-rlink-check' to '--no-child-check'.
- Added
Item.find_child_items()
andItem.find_child_documents()
. - Added aliases to Item: parent_links, child_links/items/documents.
- Added '--with-child-links' to
doorstop publish
to publish child links. - Added
doorstop import ...
CLI to import documents and items. - Refactored
Document
prefixes in aPrefix
class. - Added '--no-level-check' to disable document level validation.
- Added '--reorder' option to
doorstop
to enable reordering.
- Converted
Item.issues()
to a property and addedItem.get_issues()
. - Added '--level' option to
doorstop add
to force an item level. - Added warnings for duplicate item levels in a document.
- Added warnings for skipped item levels in a document.
- Renamed
Item
methods: add_link -> link, remove_link -> unlink, valid -> validate. - Renamed
Document
methods: add -> add_item, remove -> remove_item, valid -> validate. - Renamed
Tree
methods: new -> new_document, add -> add_item, remove -> remove_item, link -> link_items, unlink -> unlink_items, edit -> edit_item, valid -> validate. - Added
doorstop.importer
functions to add exiting documents and items.
- Fixed storage of 2-part levels ending in a multiple of 10.
- Fixed a case where
Item.root
was not set.
- Fixed auto save/load decorator order.
- Added
Tree.delete()
to delete all document directories and item files. - Added
doorstop publish all <directory>
to publish trees andindex.html
.
- Added find_document and find_item convenience functions.
- Added
Document.delete()
to delete a document directory and its item files.
- All
Item
text attributes are now be split by sentences and line-wrapped. - Added
Tree.load()
for cases when lazy loading is too slow. - Added caching to
Tree.find_item()
andTree.find_document()
.
- Top-level items are no longer required to have a level ending in zero.
- Added
Item/Document.extended
to get a list of extended attribute names.
- Documents can now have item files in sub-folders.
- Updated
doorstop.core.report
to support lists of items.
- Updated doorstop.core.report to support items or documents.
- Removed the 'iter_' prefix from all generators.
- Fixed CSS bullets indent.
- Added caching of
Item
in theDocument
class. - Added
Document.remove()
to delete an item by its ID. Item.find_rlinks()
will now search the entire tree for links.
- Added
Item.find_rlinks()
to return reverse links and child documents. - Changed the logging format.
- Added a '--project' argument to provide a path to the root of the project.
- Fixed a mutable default argument bug in
Item
creation.
- Added
Tree/Document/Item.iter_issues()
method to yield all issues. Tree/Document/Item.check()
now logs all issues rather than failing fast.- Renamed
Tree/Document/Item.check()
tovalid()
.
- Added
Document.sep
to separate prefix and item numbers.
- Fixed missing package data.
- Added
Item.active
property to disable certain items. - Added
Item.derived
property to disable link checking on certain items.
- Switched to embedded CSS in generated HTML.
- Shortened default
Item
andDocument
string formatting.
- Added top-down link checking.
- Non-normative items with a zero-ended level are now headings.
- Added a CSS for generated HTML.
- The 'publish' command now accepts an output file path.
- Searching for 'ref' will now also find filenames.
- Item files can now contain arbitrary fields.
- Document prefixes can now contain numbers, dashes, and periods.
- Added a 'normative' attribute to the Item class.
- Always showing 'ref' in items.
- Reloading item attributes after a save.
- Inserting lines breaks after sentences in item 'text'.
- Added basic report creation via
doorstop publish ...
.
- Added item link and reference validation.
- Added cached of loaded items.
- Added preliminary VCS support for Git and Veracity.
- Implemented
add
,remove
,link
, andunlink
commands. - Added basic tree validation.
- Added the initial
Document
class. - Items can now be ordered by 'level' in a document.
- Initial tutorial created.
- Changed
doorstop init
todoorstop new
. - Added the initial
Item
class. - Added stubs for the
Document
class.
- Initial release of Doorstop.