py-why / py-why/causal-learn

[RFC, META-ISSUE] Complete continuous integration (CI) for unit-testing, documentation, and test coverage

Open
#100 4 comments 4 reactions 2 assignees View on GitHub

@MarkDana is already working on this.

Since Mar 22, 2023.

Dominant language
Python
Stars
1.7k
Forks
274
PR merge metrics
No merged PRs in 30d

Description

Hi, this is a meta issue to track the items required to bring causal-learn into a more PRable repository:

This list is to track the high-level issues that need to be resolved in a series of PRs. Each may have some description as well associated regarding what needs to be done in detail, what the end result should look like and some motivation. My recommendation is using a combination of GH actions and circleCI as this has worked well in the past for me, but we can change based on discussion.

  • Implement easy-to-use build, test, docs, and formatting commands, such as https://github.com/py-why/dodiscover/blob/b0cb5c48317cf1c6859b3dc9646925fdac3ecf1f/pyproject.toml#L112-L122. These will be used to ease developer workflows and also make CIs easier to run.
  • Implement different requirement dependency groups e.g. for building, testing, doc-building and actually running of causal-learn
  • Enable CI that runs all unit-tests in each PR and commit to main. Should also upload test coverage via GH actions
  • Enable CI that builds (installs) causal-learn in each PR and commit to main. Testing installation for Windows, Mac OSX and Linux via GH actions.
  • Enable CI that builds the documentation in each PR and commit to main via circleCI
  • Add basic templates to GH issues and PRs: Can copy and modify files from https://github.com/py-why/dodiscover/tree/main/.github

Some possible issues that may need to be resolved along the way:

  • Ensure unit-tests run in a reasonable amount of time. I'm not sure how long the unit-tests takes to run currently, but if it requires some intensive computations, then it might be beneficial to refactor to make the unit-tests faster
  • Ensure docs are built in a reasonable amount of time. Examples should be self-contained and short to illustrate a point. If large dataset is needed, one can always trim the dataset and then add a note saying why we did it.

Some implementation details related to CI:

Still a WIP to get this list fully flushed out, but here's a first go at it.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.