-
Notifications
You must be signed in to change notification settings - Fork 137
Add PyPI-distributable version of doxygen-awesome-css to simplify installation and dependency management #200
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
Open
MohammadRaziei
wants to merge
14
commits into
jothepro:main
Choose a base branch
from
MohammadRaziei:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add extensive .gitignore patterns for Python development environments including: - Python cache files and compiled artifacts - Virtual environments and environment files - Package distribution directories - Testing and coverage reports - IDE-specific files (VS Code, Rope) - Type checking cache (mypy) - Hatch build system artifacts These patterns prevent accidental commits of generated files and development environment artifacts commonly produced during Python development workflows.
Add pyproject.toml configuration file to set up modern Python packaging using hatch. This includes project metadata, build system configuration, version management from VERSION.txt, and code formatting tools (black and isort). The configuration enables proper package distribution with wheel builds and defines entry points for the doxygen-awesome-css command-line interface.
Add new Python module for installing Doxygen Awesome CSS theme files. The module provides an Installer class that handles copying CSS and JavaScript files to target directories with proper error handling and logging. This enables programmatic installation of the Doxygen Awesome theme files for documentation projects.
Add main entry point module to provide command-line interface for installing Doxygen Awesome CSS files. The CLI supports: - Installing CSS/JS files to specified directories - Verbose and quiet output modes - Version information display - Help documentation with usage examples This enables users to easily install the theme files via command line rather than manual file copying.
Add Python package installation method to README with usage examples for integrating the theme into Python projects. Also create VERSION.txt file to track project version (2.4.1). These changes make the theme more accessible to Python developers and improve version management.
Add a new GitHub Actions workflow that automates the build and release process for Python packages. The workflow includes: - Building source distributions (sdist) on Ubuntu - Building wheels for multiple platforms (Ubuntu and Windows) using cibuildwheel - Automated releases to GitHub with proper tagging - Publishing to PyPI when tags are pushed The workflow triggers on pushes to master, pull requests, and tag pushes (for releases), providing continuous integration and deployment capabilities for the project.
Rename .github/workflows/wheel.yml to .github/workflows/wheel.yaml to maintain consistency with other workflow files in the repository that use the .yaml extension. This change standardizes file naming conventions across GitHub Actions workflows.
Update GitHub Actions workflow to use 'main' as the default branch instead of 'master' to align with modern naming conventions and industry standards. The workflow now triggers on pushes to the main branch and tags starting with 'v'.
Add macos-latest to the matrix strategy in the wheel.yaml GitHub workflow to enable building wheels for macOS in addition to existing Ubuntu and Windows support. This expands platform compatibility for the project.
Move package version and license metadata from VERSION.txt and __init__.py to a dedicated __about__.py module. This follows Python packaging best practices by keeping metadata separate from code logic. Update hatch configuration to read version from the new location.
- Replace matrix-based multi-OS wheel building with single universal wheel build - Switch from cibuildwheel to standard python build tooling - Remove submodules checkout as they're no longer needed - Simplify artifact upload with single wheelhouse name and overwrite enabled - Maintain PyPI release functionality while streamlining build process
- Update pyproject.toml to use setuptools build backend instead of hatchling - Add setup.py with custom build step to copy CSS/JS assets - Fix package directory path in installer to correctly locate assets - Improve installer to create target directory if it doesn't exist - Add setuptools package-data configuration for proper asset inclusion The switch to setuptools provides better compatibility and allows proper inclusion of CSS/JS asset files in the package distribution. The installer now automatically creates missing target directories instead of failing.
Remove the build_sdist job from the GitHub Actions workflow since we're only building and releasing universal wheels. This simplifies the CI pipeline and reduces build time by eliminating redundant package distribution formats. The release job now only depends on the build_wheels job.
Update package version to 2.4.1.beta to indicate this is a beta release preparing for the next stable version. This helps distinguish development builds from production releases.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Hi! I’ve been using doxygen-awesome-css across several projects, and I often ran into the same issue:
to use the theme, I had to either add it as a submodule, clone the repo separately, or manually copy the files.
This makes updates harder, complicates CI setups, and sometimes leads to projects having outdated or inconsistent copies of the theme.
To solve this, I created a lightweight PyPI package that ships only the theme assets and provides a simple way to install them into any project.
How it works
Then install the files:
python -m doxygen_awesome_css --install .(Verbose and quiet modes are also available.)
This approach makes it easier to:
Notes
This PR doesn’t change the theme source code at all — it just adds an optional installation method for Python users.
I'm happy to maintain the PyPI package and keep it updated with future releases.
Thanks for the great project! 🚀