-
Notifications
You must be signed in to change notification settings - Fork 1
Add project acceptance criteria #5
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
Draft
th3james
wants to merge
1
commit into
main
Choose a base branch
from
project-characteristics
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.
Draft
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| # Topo Project acceptance criteria | ||
|
|
||
| Topo Projects extend the [Compose Specification](https://compose-spec.io), so any Compose Project can become a Topo Project and be used with Topo. However, the best Topo Projects exhibit the following characteristics. | ||
|
|
||
| Projects considered for inclusion in the default [Topo Project Catalog](https://github.com/arm/topo-project-catalog) are assessed against the following criteria. | ||
|
|
||
| ## Scope and purpose | ||
|
|
||
| ### Clear value for the end user | ||
|
|
||
| A Topo Project should deliver on one or more of the following: | ||
|
|
||
| #### Show the user how to leverage novel features of their hardware target | ||
|
|
||
| The Topo Project Specification supports describing the hardware features required by the demo, such as SIMD extensions like [SVE](https://developer.arm.com/architectures/scalable-vector-extensions). Topo can dynamically filter projects based on the availability of those features on a given target. | ||
|
|
||
| #### Support configuration | ||
|
|
||
| The Topo Project Specification supports parameterisation, allowing users to run `topo configure` for a given project to meet their specific needs. Projects should consider which `x-topo.parameters` they might expose to allow customisation. | ||
|
|
||
| #### A multi-processor application leveraging [remoteproc-runtime](https://github.com/arm/remoteproc-runtime) | ||
|
|
||
| Topo is compatible with remoteproc-runtime, supporting detection and automated installation of the runtime on the target. We welcome contributions that showcase heterogeneous applications enabled by remoteproc-runtime. | ||
|
|
||
| #### Showcase an end-to-end use case | ||
|
|
||
| A Project may be considered for inclusion in the catalog if it demonstrates a sufficiently interesting end-to-end software use case. | ||
|
|
||
| ### Be extensible and adoptable | ||
|
|
||
| Topo Projects are expected to be extensible. The goal is to help users bootstrap a working application quickly while providing the complete source code and build toolchain needed to modify and extend the project for their own use case. | ||
|
|
||
| #### Containerise all the build steps; don't package binaries | ||
|
|
||
| Where possible, container images should be built from the included source rather than importing pre-built binary blobs. This gives users the greatest opportunity to extend the project. | ||
|
|
||
| #### Document how the project works and suggest how to extend it | ||
|
|
||
| The `README.md` for a Project should provide an overview of how the application works, including links to the key entry points. It should also suggest next steps or explain how users can modify the Project and rerun `topo deploy` to see their changes. | ||
|
|
||
| ## Quality | ||
|
|
||
| ### Be semantically correct and leverage `x-topo` attributes as appropriate | ||
|
|
||
| `x-topo` contains attributes that help users discover and use your Project. Ensure you have considered all available attributes in the schema and used them as appropriate. | ||
|
|
||
| The [Topo project-authoring skills](https://github.com/arm/topo#project-authoring-skills) can help you lint and improve your Project. | ||
|
|
||
| ### Declare compatibility correctly and ensure the project is only recommended on compatible targets | ||
|
|
||
| Use the `x-topo.features` attribute to declare what features your project requires. Topo will use this to avoid recommending your project on targets where it is not compatible. | ||
|
|
||
| ### No vibe coding | ||
|
|
||
| If your project is purely LLM-authored with little or no testing or novelty, it will be rejected from the catalog. Users do not need us to vibe code on their behalf. | ||
|
|
||
| The catalog is home to Projects that are reliable, well tested, and novel. Every line of code is expected to be understood by the author, tested, and free from falsehoods. | ||
|
|
||
| ### Be fast to build and iterate | ||
|
|
||
| Topo Projects are expected to be fast to build and deploy. | ||
|
|
||
| See [Build Optimization](https://github.com/arm/topo/blob/main/docs/project-specification/04-build-optimization.md) or use the [`topo-project-optimize-deployment` skill](https://github.com/arm/topo#project-authoring-skills). | ||
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and easy! just
topo deploy+ x-topo args!