ipython2cwl icon indicating copy to clipboard operation
ipython2cwl copied to clipboard

Add new annotations and add a GitHub Action for testing

Open gfenoy opened this issue 1 month ago • 2 comments

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.toml to 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.yml for multi-version testing (including Docker-dependent tests and CWL validation), and quality.yml for 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.yml to 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: CWLFloatInput for float inputs and CWLDirectoryPathOutput for 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), and CWLNamespaces (for namespace specification), enabling richer and more interoperable CWL tool generation directly from notebooks.

Miscellaneous

  • Updated ipython2cwl/__init__.py to reflect the new package version 0.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 avatar Nov 04 '25 09:11 gfenoy

@gfenoy Sorry for the delay, I'm trying to get your new GitHub Actions to run on the PR..

mr-c avatar Nov 11 '25 13:11 mr-c

Thanks for your feedback @mr-c.

If I can do anything to help get this PR merged, please let me know.

gfenoy avatar Nov 17 '25 16:11 gfenoy