Skip to content
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

Specify Vector version in the Vector config file #1037

Open
binarylogic opened this issue Oct 16, 2019 · 6 comments
Open

Specify Vector version in the Vector config file #1037

binarylogic opened this issue Oct 16, 2019 · 6 comments
Labels
domain: administration Anything related to administration/operation domain: config Anything related to configuring Vector have: nice This feature is nice to have. It is low priority. meta: idea Anything in the idea phase. Needs further discussion and consensus before work can begin. type: enhancement A value-adding code change that enhances its existing functionality.

Comments

@binarylogic
Copy link
Contributor

binarylogic commented Oct 16, 2019

After talking with @a-rodin he had the following idea:

My thoughts about release process were mostly questioning the need to add version to the config file, similarly to how docker-compose files have version in the beginning. I see both benefits and downsides of this, but haven’t decided yet would it be better to have it or not.

He also mentioned:

I agree that it is possible to make breaking changes between 0.y.z releases according to semver. However, it could be nice to use configs from older versions in newer ones without manual changes, which can be done by running a special command which would take config from an older version and generate a config for the current version.

Something like running vector config upgrade which would bump the version in config and make necessary fixes, for example renaming config options or transforms names.

I don't think we should address this during the pre-1.0 phase of development, but I wanted to open this issue for discussion.

@binarylogic binarylogic added type: enhancement A value-adding code change that enhances its existing functionality. meta: idea Anything in the idea phase. Needs further discussion and consensus before work can begin. domain: config Anything related to configuring Vector needs: approval Needs review & approval before work can begin. labels Oct 16, 2019
@LucioFranco
Copy link
Contributor

I think the one issue that arises with this is our use of serde and defining the config via set of structs. I'm not sure this method supports the ability to go backwards with previous versions. We may want to consider more custom config loading methods using an external schema like vector.spec.toml

@ghost
Copy link

ghost commented Oct 18, 2019

I'm not sure this method supports the ability to go backwards with previous versions.

It might be not necessary to support previous versions, we can just load TOML, check version, and if the version is not the same as Vectors, exit with an error. And the "migration" steps for implementation of vector config upgrade command could be defined manually, similar to how database migrations are usually defined.

@LucioFranco
Copy link
Contributor

@a-rodin I am totally on board with that! I think this would provide a much better UX.

@binarylogic
Copy link
Contributor Author

I'm removing the needs: approval on this. I think this is worth supporting and will provide a much better UX in the face of changes.

@binarylogic binarylogic removed the needs: approval Needs review & approval before work can begin. label Feb 5, 2020
@binarylogic
Copy link
Contributor Author

Noting, we are deferring this until we actually need it.

@jszwedko
Copy link
Member

Idea from @bruceg : could version configuration at the component level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain: administration Anything related to administration/operation domain: config Anything related to configuring Vector have: nice This feature is nice to have. It is low priority. meta: idea Anything in the idea phase. Needs further discussion and consensus before work can begin. type: enhancement A value-adding code change that enhances its existing functionality.
Projects
None yet
Development

No branches or pull requests

5 participants