-
Notifications
You must be signed in to change notification settings - Fork 102
[DISCUSS] Package release and development process #252
Comments
Would all these "prerelease" packages be pushed to |
Actually good point, we could just push them to snapshot since that's what master is pointing at. |
@jonathan-buttner Yes, and we could still do you the prereleases but perhaps |
Ok cool, I'll start working on the ingest manager changes. I think we'll still what to do If we don't have the |
Good point about deciding what is newest. Any plans on your end how you will generated the preprelease incrementally or is it manual? |
Yeah my hope is to create a script for the endpoint package that allows a developer to run a make command to release the package. The script would ask whether the release is a prerelease or meant for production. If it is a prerelease it would keep the prerelease version that I'm working on here: https://github.com/jonathan-buttner/endpoint-package/blob/update-readme/.bumpversion.cfg#L2 It would open a PR against If it is a production release, We've been using |
I wonder that's the reason why we have the "experimental" tag. e.g. version 1.0.5 is "ga" |
@mtojek This is a good question. As package versions are not tied to stack release versions, we could indicate experimental and beta releases in the version number. Taking your example above, also |
I'm fine with this.
Yes. "Beta" or "experimental" or "ga" are just tags defining stability of the revision. Once defined I can't be changed/upgraded/downgraded.
I'm not sure if it answers your question, but I believe it's up to us and our level of confidence, whether we should release package as beta or it's still experimental. |
@mtojek Could you make an example of a revision for |
Beta samples:
Experimental samples:
|
@mtojek Based on your comment in #252 (comment) I somehow assumed, you meant beta/experimental can be indicated with the version itself. But taking Diving into your example for |
Just want to make sure I'm tracking correctly. The tag we're talking about that indicates whether it is
Oh I didn't realize that datasets themselves can be experimental but the package is GA. Is that something we support right now? Or something you're suggesting we add in the future? Also just a side note, I don't think |
@jonathan-buttner Each dataset can have it's own release tag: https://github.com/elastic/package-storage/blob/production/packages/aws/0.2.4/dataset/billing/manifest.yml#L2 We have it in the manifest today but don't expose it in the UI yet. |
Sorry, it's a typo. We can consider this as 12.3.0. |
@jonathan-buttner I think we can close this issue as we made quite a few decisions since August on this. |
* Use generic dataset in log package * Remove empty ingest pipeline * Add dashboards to system package
Endpoint's current flow for developing the endpoint package is to bump the
minor
version of the package and push it tostaging
(and which also gets picked up insnapshot
) to allow other developers who do not run the package registry locally to leverage new mappings. During the development cycle multiple "interim" packages could be released tostaging
. This has the side effect of skipping versions in the package.Developer1 might pushes a package for some feature at version
0.14.0
and a couple weeks later another developer adds new mappings and pushes0.15.0
to staging. When the package is finally released to production it might have skipped from0.13.0
to0.20.0
which could cause confusion to the user.The advantage of keeping each set of "features" versioned during a single production release of a package allows testing to determine if a single staging release of the package causes issues. If we keep the package as
0.14.0
for both features and an issue occurs, we have to find out what features are in version0.14.0
for the package that is in the remote registry. It also means that0.14.0
in the remote registry is not the same as what we have in our endpoint-package repo at0.14.0
. The endpoint-package repo might have 3 other features that haven't yet been pushed to staging.To support "interim" packages I think it'd be helpful to allow prereleases of a package. As we're developing features we can create packages with the version
0.14.0-dev.0
and the next one will have0.14.0-dev.1
etc. Then when we're ready to release a package to production we'll release0.14.0
tostaging
give it a quick check to make sure nothing crazy happened and finally cherry-pick that package fromstaging
to theproduction
branch.If we have prerelease packages and
0.14.0-dev.0
exists in staging and a new package0.14.0-dev.1
gets released to staging and it causes issues I can quickly find the commit or tag for0.14.0-dev.1
in the endpoint-package repo and figure out what changes happened between-dev.0
and-dev.1
.Bumping the version in some fashion between interim packages also has the benefit of allowing long standing testing environments built from
master
in the cloud to pull down new version of the package. If we keep the versions the same kibana will not identify that there is a new version and these cloud environments will not be able to install the new package.The text was updated successfully, but these errors were encountered: