Skip to content

Contributions To Core Packages

Core contributions are changes to AutoRA which aren't experimentalists, (synthetic) experiment runners, or theorists. The primary purpose of the core is to provide utilities for:

  • describing experiments and handling workflows (in the autora-core package
  • run synthetic experiments (currently in the autora-synthetic package. Synthetic experiment runners may be submitted as pull requests to the autora-synthetic package, providing they require no additional dependencies. However, if your contribution requires additional dependencies, you can submit it as a full package following the module contribution guide.

How to Contribute

In order to make a contribution to autora core, you may start by cloning the repository:

git clone https://github.com/AutoResearch/autora-core.git

You should then follow the Development Setup Guide, to set up your environment.

Suggested changes to the core should be submitted as follows, depending on their content:

  • For fixes or new features closely associated with existing core functionality: pull request to the existing core package
  • For new features which don't fit into the current module structure, or which are experimental and could lead to instability for users: as new namespace packages.

Success

Reach out to the core team about new core contributions to discuss how best to incorporate them by posting your idea on the discussions page.

Development Requirements

Core packages should as a minimum:

  • Follow standard python coding guidelines including PEP8
  • Run under all minor versions of python (e.g. 3.8, 3.9) allowed in autora-core
  • Be compatible with all current AutoRA packages
  • Have comprehensive test suites
  • Use the linters and checkers defined in the autora-core .pre-commit-config.yaml (see pre-commit hooks)