-
Notifications
You must be signed in to change notification settings - Fork 54
Repository Setup Design doc
The Ecosystem consists of projects, tools, utilities, libraries and tutorials from a broad community of developers and researchers. The goal of the Ecosystem is to recognize, support and accelerate development of quantum technologies using Qiskit.
Submission workflow
Weekly management workflow
GitHub Actions
- workflow automation framework by GitHub. See GitHub Actions website.
Submission template
- github issue template for submission of project to join ecosystem.
Includes: name, summary, contact information, alternatives, project url, licence, affiliations, labels.
For more information see GitHub issue template documentation.
Repo manager
- CLI with a set of utils to run specific for repository tasks (like parse issues, generating new readmes, etc.)
Badge
- tag/badge for repository specifying membership tier of ecosystem
Tier
- level of membership. Levels: main
, partner
, candidate
(TBD)
- GitHub Actions - all CI processes are relying on actions.
- author submits issues with
Submission template
and specify all required information in it. - CI processes triggered on issue submission:
- checks that all necessary information is there
- if not: comment on issue and ask author to specify missing information
- runs tests, lint, coverage checks
- if something is failing: comment on submission issue and create issue against repository to fix what is missing
- add new entry to candidates list, generate new readme and push changes to branch
- create PR against ecosystem repository with new candidate
- checks that all necessary information is there
- core team review PR
- CI process triggered on PR merge
- generate badge
- create issue against submitted project repository with specification of adding badge to repository
- cron job (weekly)
- CI process:
- foreach candidate repository:
- clone repo and run tests, lint, coverage
- if something failed: create issue against repo with description of problems and remove from candidates tier to pending
- clone repo and run tests, lint, coverage
- create PR with weekly check and changes
- foreach candidate repository:
- core team review PR
Data will be stored as JSON serialized files within /resources
folder.
Files:
-
repos.json
- list of ecosystem's candidates repositories -
changes.json
- list of changes in tiers
Repository entry schema:
-
name: str
- name of project -
summary: str
- summary of project -
contact_information: optional[str]
- contact information of author -
alternatives: optional[list[str]]
- alternatives of project, if any -
project_repo_url: str
- repository url for project -
licence: str
- license -
affiliations: optional[list[str]]
- affiliated organizations -
labels: optional[list[str]]
- labels for project
Change entry schema:
-
date: timestamp
- datetime of event -
from: optional[str]
- tier change from -
to: str
- tier change to
Ecosystem management process is fully open and available for any member of community.
GitHub Actions load / concurrent jobs execution for organization.
- Ecosystem submission templates without CI
- Ecosystem membership: Main modules
- CI submission
- CI maintenance
- Ecosystem membership: Partners
- Ecosystem membership: Candidates
- Data integration with org site
- util tests for manager cli
- integration tests for manager
- manual regression submission tests