Skip to content

Conversation

@cdcore09
Copy link

@cdcore09 cdcore09 commented Apr 19, 2024

The purpose of this PR is to update the package structure to modern Python development standards and add developer tools. These changes should allow the package to be more sustainable and extensible while encouraging more open source contribution over time.

Features

Package Structure

  • Pre-commit (including Black, Ruff, Pylint, Codespell and Prettier support)
  • Pyproject.toml + hatchling for modern Python installation instructions
  • Added a Requirements.txt
  • Framework for JupyterBook deployment
  • CI to ensure pkg compatibility using...
    • Python: 3.8 to 3.11
    • Windows, Mac, and Linux OS
  • Dependabot to update GitHub Action dependencies
  • Community Health files

Developer Tools

  • Codespaces support (devcontainer.json with postBuild.sh support)
  • Auto-building Docker image (from Dockerfile)
  • Conda environment (environment.yml)
  • Added __init__.py files for local package importing
  • Nox framework to enable CLI testing of multiple Python versions

cdcore09 added 30 commits March 28, 2024 03:07
@@ -0,0 +1,14 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
{
"image": "ghcr.io/swarm-io-internal/docker:latest",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Umm.. may not appropriate here

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gotcha @kapilt! I can remove the .devcontainer. I had added it because it makes open source contribution and trying out the package easier and faster.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In addition, if you would like me to keep the devcontainer but adjust the Docker image, I can create an auto-building Docker image in your org, so you don't have to reference my organization.

@kapilt
Copy link

kapilt commented May 17, 2024 via email

@cdcore09
Copy link
Author

Oh okay! Would you recommend that I just remove the Codespaces functionality?

@kapilt
Copy link

kapilt commented May 17, 2024 via email

@cdcore09
Copy link
Author

Done.

@vprelovac
Copy link
Contributor

Thank you @uwcdc and @kapilt

This is a pretty large PR that is hard to review so trying to find some time to do it.

@cdcore09
Copy link
Author

@vprelovac definitely understandable. A lot of the changes are just updating to modern packaging standards. I also added in some framework, so you can create a readthedocs (JupyterBook) implementation for rendering the documentation. The Codespaces is for more convenient package testing and contribution. I hope that helps. If you have any questions, feel free to reach out to me anytime.

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

Successfully merging this pull request may close these issues.

3 participants