container-common-scripts
container-common-scripts copied to clipboard
`latest` directory in container git repositories?
It is really ugly that we loose the git history all the time with new versions of our containers, speaking in examples - consider PostgreSQL container:
- working with
9.2directory, we iterated a lot (git blame and git history gives us useful info - but then we needed to work on
9.4, so we copied and pasted whole9.2directory into9.4, which means that the whole9.4directory lost all the useful commit history - moving to
9.5made this even worse, and upcoming9.6won't help obviously
Well, e.g. in Fedora dist-git, we have master branch which guarantees that all the necessary info for git blame persists. It is fair also to keep the "authorship" of contributions.
Perhaps we should have e.g. latest directory now (instead of 9.6) and make the 9.6 be a symbolic link to latest?
+1
To note, it seems to me that change only point 2. would work too for some git commands (eg. git blame).
- but then we needed to work on 9.4, so we rename whole 9.2 directory into 9.4 and commit this. Then copy 9.4 as 9.2 and add it. Push these two commits together.
But having latest directory seems more clean to me. Also
@bparees Are there any requirements for having directory for each version? I know that images should be able to build with docker build command.
In case we want to solve problem with multiple versions and would change the workflow - adding latest directory.
So why not to remove directories and have only one directory with dockerfiles: Dockerfile.9.2, Dockerfile.9.4, Dockerfile.9.5. Have only one scripts and in dockerfiles set some for example VERSION variable to allow differences in scripts.
+1 from me, having latest with the full git history would be really useful. I often find myself trying to find out what got changed where.
So why not to remove directories and have only one directory with dockerfiles: Dockerfile.9.2, Dockerfile.9.4, Dockerfile.9.5. Have only one scripts and in dockerfiles set some for example VERSION variable to allow differences in scripts.
This would work in case there are no major differences outside of Dockerfiles between the images (which I think is the case for most of the images right now). But not sure if that can be guaranteed (=we want to work around) in future.
@bparees Are there any requirements for having directory for each version?
there are no requirements, since you guys own the CI/CD infrastructure and getting the images built on OSBS, you're welcome to structure the directories in whatever way you see fit. As long as users can easily clone the repo and
- see/understand which files are for a given version
- build an image for a given version
it should be fine.
This would work in case there are no major differences outside of Dockerfiles between the images (which I think is the case for most of the images right now). But not sure if that can be guaranteed (=we want to work around) in future.
i think you're likely signing yourself up for a bit of pain here. How many versions of a given image does the SCL team imagine will be supported at a time? The small pain of maintaining 2-3 dockerfiles may be less than the pain of maintaining some scripting/tooling that produces those 2-3 dockerfiles w/ specialization. We've historically had cases where package names change or get added/removed, so you're going to have to deal w/ that if you are trying to generate multiple dockerfiles from a common definition.
Is this slowly moving to discussing sclorg/postgresql-container#139 ? That would be something where I would vote +1.
Closing this issue. We do not have capacity for implementing.