Giter Site home page Giter Site logo

pyk3d's Introduction

Python package to manage k3d instances

IDE

Visual Studio Code is the recommended IDE for this project. It was chosen for the Remote - Containers extension that guarantees the same development environment for every developer. The project is configured so that everything works out of the box.

Architecture

File system organization

  • src: the source code of the application, and nothing more.
  • tools: anything else that's required to make the project work but is not a part of the application. This may include source code, shell scripts, configuration files, etc.
  • tools/tooling is used to explicitely link the various configuration files to the software that requires it.
  • tests: holds tests that can be run with pytest.

Quality Assurance

Formatting

Linting

Testing

Type checking

CI/CD

Whenever pull request is opened against the fork or a new changeset is pushed on the fork (including when a pull request is merged), the CI/CD will run. This is controlled by .github/workflows/ci-cd.yml. The content of the file is kept to a minimum, to keep it both readable and clean.

The CI/CD is split into two jobs. CI ensures that the tests pass with supported python versions, except the one used for releasing. CI-CD ensures that the tests pass with the version of python used for releasing, and uploads the corresponding package without any action from the user. This guarantees that all uploaded packages have been tested with the expected python version.

The version and the upload destination of the package depend on the action that triggered the CI/CD as well as the branch on which this action was triggered. All branches will upload to test.pypi.org, but release/X.Y branches will also upload to pypi.org.

Versioning

Versioning for major and minor numbers is handled by creating release/X.Y branches. The patch number is automatically generated based on existing releases. See tools/releasing/version.py for more details.

Makefile

The project uses a Makefile as a way to provide quick access to common commands. It should not be used to write complex scripts. It was chosen over poetry scripts because make is shorter to type than poetry run. Despite the shortfalls of make it is everywhere and many developers are used to make target commands. Finally the Makefile syntax should be awful enough that one would want to write a shell or python script and call it from the Makefile if something complicated needed to be done.

pyk3d's People

Contributors

roming22 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.