We have a few columns in the ci_builds table with type varchar 255, but we don't have any model validations for them. We should add validations to match, but this is a breaking change for self-managed because there is no limit at the column level for new installs: #321685
status
stage
ref
type
target_url
description
This validation must be implemented under a feature flag called ci_builds_columns_size_validation.
@mbobin we should be able to release this behind a feature flag toggled off by default sooner and remove it in 16.0 as a breaking change what I don't know is if we can ship it a few milestones before that toggled on by default for new installs only vs. upgrades. @grzesiek may have some insights.
We can probably release this on GitLab.com sooner (as on GitLab.com it would not be a breaking change, since you can't store longer data anyways today), and then enable by default in 16.0, right?
@mbobin@shampton@carolinesimpson is this still something we think we can deliver with 16.0 for Self Managed users? If so we need to create a deprecation notice this week. Thanks!
@jheimbuck_gl I will defer to @mbobin as he has the most knowledge about an issues that we could run into with this. If he thinks it is fine to go forward with this, then I think we should do it.
thanks @mbobin yeah we would break even more of those than we do already today. Can we remove that from the validation for now? what tradeoffs in performance would we make if we do that?
@jheimbuck_gl we're not doing this for performance reasons since we can't have fields with length greater than 255 on .com. We're doing it for consistency, to have the same sizes everywhere so that we don't develop future features/optimizations with wrong assumptions.
We should remove name from the validation/deprecation notice because it will likely break new pipelines that use parallel:matrix with a a lot of variables since it's easy to go over the limit in that case and we don't have a good alternative for it: #362262 (closed)