Skip to content

Latest commit

 

History

History
79 lines (70 loc) · 2.63 KB

CONTRIBUTING.md

File metadata and controls

79 lines (70 loc) · 2.63 KB

Project structure

This the current project structure.

── cryptographic_estimators
│   ├── base_algorithm.py
│   ├── base_estimator.py
│   ├── base_problem.py
│   ├── helper.py
│   ├── libtii-cryptalib-c.dylib
│   ├── libtii-cryptalib-c.so
│   ├── MQEstimator
│   │   ├── degree_of_regularity.py
│   │   ├── mq_algorithm.py
│   │   ├── MQAlgorithms
│   │   ├── mq_estimator.py
│   │   ├── mq_helper.py
│   │   ├── mq_problem.py
│   │   ├── series
│   │   ├── temp_utils.py
│   │   └── witness_degree.py
│   └── SDEstimator
│       ├── sd_algorithm.py
│       ├── SDAlgorithms
│       ├── sd_c_interface.py
│       ├── sd_c_library_loader.py
│       ├── sd_estimator.py
│       ├── sd_helper.py
│       └── sd_problem.py

If you want to add a new estimator please run make add-estimator and it will create the basic code and folder structure for you to edit, you also can review the DummyEstimator to see a minimal reproduction of whats its needed to start.

── cryptographic_estimators
 │   ├── base_algorithm.py
 │   ├── base_problem.py
 │   ├── base_estimator.py
 │   └── NEWEstimator
 │      ├── NEWestimator.py (Inherits from base_estimator)
 │      ├── NEWproblem.py (Inherits from base_problem)
 │      ├── NEWalgorithm.py (Inherits from base_algorithm)
 │      └── Algorithms
 │          ├── List of algorithms (Inherits from NEWalgorithm.py)

GIT Conventions

Commits

To contribute to this project please follow the conventional commits.

Branching

Branch names should be snake_case. Which means that all the text must be lowercase and replace spaces with dashes. Also we should add as a prefix based on the type of implementation. For example:

poc/some_testing_branch 
refactor/modify_base_problem
feature/implement_dummy_estimator
fix/algorithm_parameter

Pull request

  1. Last commit must be the CHANGELOG.md with a versioned tag e.g. vx.y.z. This version should match the one defined in setup.py.
  2. Create PR to master and fullfill the template.

Testing

Unit tests

To build and run the image based on Dockerfile.test

make test

or if you have Apple Silicon M1 Chip

make test-m1

Documenting

Remember to document your code using sphinx syntax.