Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Contributing guide #13

Open
bswck opened this issue Jul 30, 2024 · 1 comment
Open

Contributing guide #13

bswck opened this issue Jul 30, 2024 · 1 comment

Comments

@bswck
Copy link
Member

bswck commented Jul 30, 2024

As with all new systems, it might be unclear how to approach contributing the best.

This issue can be resolved with a new contributing guide, contributing.md, where a reference example is given of:

  1. where to clone the Coherent System projects (coherent.cli, coherent.build, coherent.cli) further called "components" and how to store them
  2. how to manage environments for them and develop them, ensuring latest local dev versions of components are visible for components
  3. how to organize testing without the necessity to cut new releases of particular components
@bswck
Copy link
Member Author

bswck commented Jul 30, 2024

Here's what CoherentGPT created (ChatGPT trained on sources of components and docs inside this repo) :

To address the issue #13 on GitHub about the contributing guide, here’s an updated version of the contributing guide that is more consistent and cohesive:

Contributing to the Coherent Software Development System

Thank you for your interest in developing the Coherent Software Development System. This guide provides setup instructions and recommended workflow practices.

Overview

The Coherent System consists of three key components:

  • coherent.build: Simplifies and automates the packaging process.
  • coherent.cli: Provides commands for building, testing, and managing projects.
  • coherent.test: Integrates for running tests and ensuring code quality.

Setting Up Your Development Environment

  1. Clone the Repositories:

    git clone https://github.com/coherent-oss/coherent.build.git
    git clone https://github.com/coherent-oss/coherent.cli.git
    git clone https://github.com/coherent-oss/coherent.test.git
  2. Create a Virtual Environment:

    python -m venv env
    source env/bin/activate  # On Windows use `env\Scripts\activate`
  3. Install Dependencies:

    pip install -e coherent.build -e coherent.cli -e coherent.test

Workflow Practices

Branching and Pull Requests

  1. Create a New Branch:

    git checkout -b feature/your-feature-name
  2. Make Changes:
    Implement your changes and ensure they include appropriate documentation.

  3. Run Tests:

    coh test
  4. Commit Changes:

    git add .
    git commit -m "Description of changes"
  5. Push Changes and Create a Pull Request:

    git push origin feature/your-feature-name

Testing and Quality Assurance

  • Write and Run Tests:
    Add tests in the tests directory and run them:

    coh test
  • Code Quality:
    Ensure high code quality by adhering to linting and formatting guidelines. Use your preferred tools to lint and format your code.

Documentation

  • Update Documentation:
    If your changes affect the public API or are user-facing, update README.md or other relevant documentation files.

  • Generate Documentation:

    coh docs

Submitting Your Contribution

  1. Review:
    Review your changes and ensure they meet the project’s contribution guidelines.

  2. Create Pull Request:
    Provide a detailed description of your changes, why they were made, and any additional context.

  3. Address Feedback:
    Be prepared to make changes based on feedback from maintainers.

Thank You

Your contributions help make the Coherent Software Development System more robust and user-friendly. If you have questions, reach out to the project maintainers. For more detailed information, refer to the Essential Layout Guide.

This updated guide maintains coherence and clarity, ensuring that contributors have a clear understanding of the process and requirements for contributing to the Coherent Software Development System.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant