ipython2cwl
ipython2cwl copied to clipboard
Add new annotations and add a GitHub Action for testing
This pull request introduces major enhancements to the CI/CD pipeline, dependency management, and the ipython2cwl Python package, focusing on improved testing, security, code quality, and extensibility for Common Workflow Language (CWL) features. Key changes include new GitHub Actions workflows for testing and quality assurance, a comprehensive CI/CD configuration file, expanded dependency update rules, and significant additions to the iotypes.py module to support advanced CWL requirements, metadata, and namespaces.
CI/CD and Workflow Improvements
- Added
.ci-config.tomlto centralize configuration of project metadata, supported Python versions, test directories, code quality, security tools, Docker settings, and release automation, improving maintainability and reproducibility. - Introduced new GitHub Actions workflows:
test.ymlfor multi-version testing (including Docker-dependent tests and CWL validation), andquality.ymlfor security scanning (Bandit, Safety), code analysis (CodeQL), code style (Pylint, MyPy, Radon), and documentation coverage, ensuring robust CI/CD and code health. [1] [2]
Dependency Management
- Expanded
.github/dependabot.ymlto automate updates for GitHub Actions, Python, and Docker dependencies, with custom scheduling, labeling, commit message conventions, and rules to ignore major version updates for stability.
Core Package Enhancements (CWL Features)
- Added new input/output types in
ipython2cwl/iotypes.py:CWLFloatInputfor float inputs andCWLDirectoryPathOutputfor directory outputs, increasing flexibility in workflow definitions. [1] [2] [3] - Introduced annotation classes for advanced CWL features:
CWLRequirement(for workflow requirements),CWLMetadata(for schema.org metadata), andCWLNamespaces(for namespace specification), enabling richer and more interoperable CWL tool generation directly from notebooks.
Miscellaneous
- Updated
ipython2cwl/__init__.pyto reflect the new package version0.0.4.
These changes collectively modernize the development workflow, improve code quality and security, and extend the functionality of ipython2cwl for advanced CWL use cases.
@gfenoy Sorry for the delay, I'm trying to get your new GitHub Actions to run on the PR..
Thanks for your feedback @mr-c.
If I can do anything to help get this PR merged, please let me know.