OAI / OpenAPI-Specification

The OpenAPI Specification Repository
https://openapis.org
Apache License 2.0
29.07k stars 9.07k forks source link

Should we-organize our GitHub pages to a separate repo (by way of a directory on main)? #3717

Open handrews opened 7 months ago

handrews commented 7 months ago

Splitting this out from #3766, to which it is still somewhat related as we should consider the impact on how many PRs to how many different branches are required for a change that spans the spec and the registries.

Originally, gh-pages sites needed to be on a gh-pages branch that (as ours does) typically has a completely different layout than main. That is no longer required, and it is much more common to deploy from a directory on main. Or at least from a directory on a branch that is no more different from main than any other working branch.

Bellangelo commented 6 months ago

I totally agree with this one. This might be a personal preference but I usually find it confusing when each branch is a different project completely. I can start with this one after this is closed https://github.com/OAI/OpenAPI-Specification/issues/1823

handrews commented 6 months ago

Note that the current build process seems spread across both main and gh-pages, plus duplication for the OAS and Arazzo specs, which probably needs to be unraveled.

Also, there are infrastructure bits under the curren top-level directory on main which should probably be pushed down into the directory that will replace the gh-pages branch to reduce clutter.

frankkilcommins commented 5 months ago

We should consider having a dedicated repo for spec.openapis.org? As we have now moved to a multi-specification project (and likely more coming - Overlays), nesting the website housing the specs under one of the specification repos is a little confusing.

Each separate specification repo that wants to publish can issue PRs to the repo housing the HTML versions and other information relevant to spec.openapis.org. We could then have the same process in place for both OpenAPI-Specification and Arazzo-Specification repos.

Bellangelo commented 5 months ago

@frankkilcommins Should each spec has its own domain maybe? For example, arazzo.openapis.org, overlays.openapis.org etc. Or a single repo for everyone is the best option?

handrews commented 5 months ago

@Bellangelo We want a unified brand across the different specs, so I think we'll want to stick with spec.openapis.org.

Bellangelo commented 5 months ago

@handrews Fair enough. I see that @darrelmiller invited me to the organization, so now I have access to create a repo. Should I create a spec.openapis.org repo and move there the website?

handrews commented 5 months ago

@Bellangelo I was surprised about repository creation privileges but it looks like a recent change that GitHub made, giving members more abilities. Let's make sure @darrelmiller or another admin is OK with the separate-repository choice.

There might need to be a bit of work to figure out how the publishing of specs and schemas changes. Not so much the technical logistics (which I'm sure you can sort out) but the policy side of things.

lornajane commented 5 months ago

We are generally in favour. But we will need some process, governance and maintenance setup to enable this change. A good discussion in TDC, but we are not ready to make the change immediately.

lornajane commented 5 months ago

Discussed in TSC and agreed that a new repository will be a good home for our web presence and having it separate will give us a few advantages:

@Bellangelo does it make sense to proceed with #3868 to apply the changes you already worked on since I assume we'll use the main branch in a new repo too? Let us know what you think.

handrews commented 5 months ago

@Bellangelo @frankkilcommins I think when moving to a separate repository, we should endeavor to move as much infrastructure as possible out of this repository. As obnoxious as git submodules are, if we need to run build steps from this or other specification repositories, I think it would be better to pull in the common repo as a submodule rather than have any duplicated build infrastructure.

Bellangelo commented 5 months ago

@Bellangelo does it make sense to proceed with https://github.com/OAI/OpenAPI-Specification/pull/3868 to apply the changes you already worked on since I assume we'll use the main branch in a new repo too? Let us know what you think.

@lornajane Hmm.. that's a good question. Since we want to immediately move to a new repo we might not need to proceed with the https://github.com/OAI/OpenAPI-Specification/pull/3868 as it will require double the work from the Arazzo team since they will have to create a PR for this change and a second one for when we will move to the new repo. But what is missing from our side is the mechanism that they have implemented in Arazzo that builds the site and opens a new PR in the repo. If we think that this whole progress will take too much time we might want to proceed with https://github.com/OAI/OpenAPI-Specification/pull/3868 just so we can get things moving. To sum up, I am ok to proceed with both ways. If we go immediately with the new repo I will need someone to create a new repo for me.

I think it would be better to pull in the common repo as a submodule rather than have any duplicated build infrastructure.

@handrews Yes and no. While I agree that we should minimize our infrastructure, the truth is that it is just a coincidence that these 2 specs both use the same building mechanism. I am 100% sure that Arazzo copied our mechanism for a faster release. Other than this, I think there isn't any rule / constraint / limitation for Arazzo to choose whatever site builder it wants. Perhaps, I might have lost your point and actually what you are suggesting is that they should be handled as a single site instead.