-
-
Notifications
You must be signed in to change notification settings - Fork 74
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
Releases should have many artifacts #525
Comments
Should v2 of the API drop JSON API compliance? Would make SDKs so much easier… Also, we could have the upgrade endpoint be Squirrel-compatible. |
Are we able to do this while maintaining backwards compatibility? |
Move release attributes over to the artifacts model, and update the release serializer to pull from there instead for older API versions. |
Releases and artifacts should always be scoped by product. |
Add link to a hosted "download page" where an account can generate a download link for a release, which leads to a download page where the user can select the appropriate artifact to download. E.g.
“Powered by Keygen.” |
Also, we could make these new endpoints |
To facilitate this move, we can start populating an artifact's platform/version/filetype/filename from the release, and pulling that into the release from the artifact (for backwards compatibility). Then we could migrate to a release has-many artifacts relationship. Finally, we can deprecate the singular resources, and deprecate the release platform/version/filetype/filename attributes. |
For the current endpoints, we should use |
Use the top-level artifacts relationship for creating multiple artifacts per-release? E.g.
|
You should not be able to re-upload (replace) an artifact. Artifact should be deleted and re-uploaded. This will prevent the artifact's
Edit: the upload URL is only available on create, so this kind of solves itself. |
Moved to #627 (comment) |
Moved to #627 (comment) |
May be a good time to introduce engines #493. Engines could require a specific artifact structure to become available, e.g. for Rubygems, it'd need an artifact structure like this:
|
Releases should also not have a platform, filetype or filename, etc. These should all be attributes on the artifacts. A release should be a way to group many artifacts together around a specific version tag.
This would reduce a lot of complexity around upgrades. An upgrade could be requested by version only, and the correct artifact could be selected from there, e.g. by platform and filetype.
The text was updated successfully, but these errors were encountered: