- Dropped support for Python 3.9 and added support for Python 3.14.
- Upgraded
bottleto fix import errors.
- Added support for Python 3.13.
- BREAKING: Dropped support for Python 3.6, 3.7, and 3.8.
- BREAKING: Removed
--no-body-levelsoption 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
markdownto fixAttributeErrorindoorstop-server.
- Removed
mdx_outlineMarkdown extension, which is incompatible with Python 3.9.
- Fixed tree builder to skip virtual environments.
- Fixed missing
sixdependency.
- Updated dependencies.
- BREAKING: Switched to SHA256 for tracking changes to files and reviews of extended attributes. Use
doorstop review allfollowed bydoorstop clear allto 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
editandreordercommands to use$EDITOR. - Promoted support for item headers out of beta.
- Fixed bug with Doorstop attempting to import formulas from XLSX.
- Added support for
!includestatements in YAML to share configuration. - Added
--defaultoption toaddto 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 createdeleting the whole project.
- Disabled excessive text cleanup in items. (@michaelnt)
- Running
doorstop review allwill 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-levelswill 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.0as a dependency version.
- Limit the maximum version of
openpyxlto 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.idandidentiferarguments touid - Added '--no-body-levels' to
doorstop publishto hide levels on non-headings. - Added
doorstop-serverto launch a REST API for UID reservation. - Added '--server' argument to
doorstop addto 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
Itemlevels into aLevelclass. - Refactored
Itemidentifiers into anIDclass. - Refactored
Itemtext into aTextclass (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 publishto publish child links. - Added
doorstop import ...CLI to import documents and items. - Refactored
Documentprefixes in aPrefixclass. - Added '--no-level-check' to disable document level validation.
- Added '--reorder' option to
doorstopto enable reordering.
- Converted
Item.issues()to a property and addedItem.get_issues(). - Added '--level' option to
doorstop addto force an item level. - Added warnings for duplicate item levels in a document.
- Added warnings for skipped item levels in a document.
- Renamed
Itemmethods: add_link -> link, remove_link -> unlink, valid -> validate. - Renamed
Documentmethods: add -> add_item, remove -> remove_item, valid -> validate. - Renamed
Treemethods: new -> new_document, add -> add_item, remove -> remove_item, link -> link_items, unlink -> unlink_items, edit -> edit_item, valid -> validate. - Added
doorstop.importerfunctions to add exiting documents and items.
- Fixed storage of 2-part levels ending in a multiple of 10.
- Fixed a case where
Item.rootwas 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
Itemtext 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.extendedto get a list of extended attribute names.
- Documents can now have item files in sub-folders.
- Updated
doorstop.core.reportto 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
Itemin theDocumentclass. - 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
Itemcreation.
- 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.septo separate prefix and item numbers.
- Fixed missing package data.
- Added
Item.activeproperty to disable certain items. - Added
Item.derivedproperty to disable link checking on certain items.
- Switched to embedded CSS in generated HTML.
- Shortened default
ItemandDocumentstring 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, andunlinkcommands. - Added basic tree validation.
- Added the initial
Documentclass. - Items can now be ordered by 'level' in a document.
- Initial tutorial created.
- Changed
doorstop inittodoorstop new. - Added the initial
Itemclass. - Added stubs for the
Documentclass.
- Initial release of Doorstop.