GC-14: Cleaned-up testing and development configuration and documentation:
- Enforce 100% coverage in tests (fail the tests otherwise). - Updated development documentation to list: - How to run tests with coverage. - How to generate coverage in html format. - How to build documentation. - What tests are included when running test via tox. - Default to running just the unit tests when not passing in any arguments to pytest. - Removed use of pytest-flake8. - Do not run coverage tests by default outside of tox. - Ensure documentation is built inside of tox environment, and that it does not pollute the source directory. - Have all Python interpreters specified in same section in tox configuration file.
GC-3: Added usage instructions to documentation for init command:
- Added beginnings of a quickstart section. - Added more detailed description on how initialisation behaves, what it generates and how, and what options can be provided.
GC-3: Implement option for specifying CA hierarchy depth during initialisation:
- Minor fix for option checks to make the more reliable (for short flags). - Added functional test for initialising a CA hierarchy with custom depth. - Added option for specifying the CA hierarchy depth (defaults to 1). - Updated the init command to accept and process the CA hierarchy depth option correctly. - Updated function used for issuing certificates to accept list of extensions to be added to certificate. - Updated function used for generating the CA hierarchy to add the CA basic constraint extension.
GC-3: Added ability to provide custom CA base name to init command:
- Added functional test to cover the new scenario (providing CA base name). - Updated init command to accept the CA base name to be used when constructing the CA subject DN. - Updated the existing tests to pass-in the CA base name explicitly. - Updated the CLI code to allow for user to pass-in the CA base name via option (both short and long form available).
GC-3: Updated init command to avoid errors and overwrites on already initialised directories:
- Added functional test covering the scenario where user has already initialised the directory and is re-running the tool. - Updated the init command to return status based on whether the directory is already initialised or not. - Implemented unit tests.
GC-3: Add example for init command to CLI help and fix formatting:
- Updated CLI help to include example on initialising the CA hierarchy. - Use formatter class that preserves description formatting (otherwise everything ends-up in a single paragrpah).
GC-3: Refactored main functionality of the init command into separate function:
- Introduced a new module (commands) where the majority of command implementation should reside. - The cli module should now be a thin wrapper around commands, in charge of processing input system arguments. - Refactored the tests accordingly.
- Added functional test for initialising hierarchy on a fresh directory. - Implemented the init command. - Added two new modules for working with storage and crypto. - Added cryptography (for certificate issuance and crypto) and python-dateutil (for better handling of certificate validities) as installation dependencies. - Added freezegun as test dependency (helps with testing validity dates). - Implemented necessary unit tests.
- Updated functional test for checking on the help subcommand as well. - Implemented the 'help' subcommand. - Updated required function signature for the subcommand_parser decorator (functions should return ArgumentParser instance). - Fixed a typo in inline documentation. - Updated the test for subcommand_parser decorator to be a more robust when checking if function registration works.
- Added terse description to the CLI. - Implemented small mechanism for invoking callback functions attached to parser. - Fixed some linting issues in setup script.
- Register entry point in the package setup script. - Implemented a very basic main function as entry point that constructs an empty argument parser. - Implemented functional test for testing if the CLI tool gets invoked correctly after installation. - Added unit tests for implemented functionality.
- Updated package manifest file to include the flake8 configuration file in generated source distribution. - Set the maximum line length limit to 160 characters.
GC-2: Added coverage configuration and updated manifest file:
- Include only the actual module files in the coverage reporting. - Addd comments to gitignore file. - Updated gitignore file to exclude test artefacts. - Updated manifest file to include documentation files, as well as test configuration file. - Added pytest configuration file that ensures coverage plugin is enabled and that report is stored in html format in the coverage directory.
- Updated gitignore to exlude some of the build and Python artefacts. - Added manifest file, including a number of files that are not normally being distributed. - Created setup.cfg that overrides default command for running tests. - Added initial setup.py.
GC-2: Adding initial documentation skeleton with some basic information about the project:
- Added basic documentation describing the project. - Updated gitignore file to ensure documentation build artifacts stay out of the repository. - README file placed at top directory for convenient access.