-
Notifications
You must be signed in to change notification settings - Fork 53
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
Too many tiny repositories #45
Comments
From @mewmew on November 2, 2014 17:32 In general I agree that the project feels a bit messy with so many repositories and sub-repositories. It's difficult to get a good overview and general idea of which packages are related. The main benefit of keeping each package contained within a dedicated repository is that it prevents unnecessary version bumping. If too many packages were placed in the same repo, we would have to bump the major version any time one of them made a backwards incompatible change. However, grouping strongly related packages into a single dedicated repository makes a lot of sense to me. Specifically for the audio packages it seems that if the audio interface changes, the flac and wav packages have to be updated to use the new interface. Therefore it makes sense to simply bump the major version once and update all strongly related packages. I can't really say if this applies to the gfx packages etc, as I'm mostly familiar with the audio packages. All in all, I like the proposed plan. At least for the audio packages you have my +1 :) P.S. thanks for referencing this issue from the audio issue, otherwise I may have overlooked it. |
Thank you for the feedback!
Ironically, this right here is another reason that placing highly-coupled packages (the audio packages, the gfx packages) into one single repository makes sense. =) Then all audio issues are in, the EDIT: this also closes #28 I think. |
From @mdlayher on November 3, 2014 15:21 👍 for audio as well. It will make it much easier to discover when new functionality (such as a decoder) is added. |
In the spirit of making things concise and understandable: For each repository that is removed I am creating a I am also adding a README.md talking about where the repository has moved to. You can see this in effect already here and here for instance. (Of course, the actual code still exists in the other branches but I think this makes it obvious that it's no longer where the code lives.) |
Since the |
Fixed/merged as part of #1 |
From @slimsag on November 2, 2014 9:40
Something I've thought about for a while now, is that we have too many tiny repositories, which makes the project hard to track. Here is a complete list of all the repositories we currently have:
audio
audio-wav
binpack
clock
dstarlite
dstarlite-grid
examples
gfx
gfx-window
gfx-gl2
keyboard
lmath
mouse
native-freetype
native-cp
native-al
native-glfw
These ones are unstable, i.e. no version 1 release yet:
audio-flac
tmx
These are used for the website and/or issue tracker (they must be kept):
issues
(issue tracker)semver
(semantic versioning package)azul3d.github.io
(website file hosting)cmd-webgen
(website generator)appengine
(website versioned package proxy, usessemver
and servesazul3d.github.io
files)These are deprecated and we have recommended not to use them for a while now:
chippy
(replaced by GLFW)native-gles2
(replaced by Glow)thirdparty-resize
(never intended to be used)cmd-glwrap
(replaced by Glow)native-gl
(replaced by Glow)cmd-azulfix
(not deprecated, but probably not useful anymore.)What can we do?
I fear that the problem will only grow worse as more packages are added. Before on Google Code, we had one single repository and it made it annoying to utilize single packages (what if I want to use audio but not anything else?), now we have an inverse problem: we have so many repositories it's hard to sort through them all or even watch them.
I've contacted GitHub support regarding the ability to "watch" an organization the same way you would any other user, and they said it's on their TODO but there is no ETA.
The Plan - audio
audio/wav
andaudio/flac
packages become subpackages. This would be done in the upcoming version 2 of theaudio
package:azul3d.org/audio.v1
azul3d.org/audio.v2
azul3d.org/audio/wav.v2
azul3d.org/audio.v2/wav
azul3d.org/audio/flac.v0
azul3d.org/audio.v2/flac
The Plan - gfx
gfx/window
andgfx/gl2
packages become subpackages. This would be done in the upcoming version 2 of thegfx
package:azul3d.org/gfx.v1
azul3d.org/gfx.v2
azul3d.org/gfx/window.v2
azul3d.org/gfx.v2/window
azul3d.org/gfx/gl2.v2
azul3d.org/gfx.v2/gl2
azul3d.org/clock.v1
azul3d.org/gfx.v2/clock
The Plan - dstarlite
dstarlite/grid
package should be removed -- and thegrid.Data
type would be merged into thedstarlite
package instead (224 LOC).azul3d.org/dstarlite.v1
azul3d.org/dstarlite.v2
azul3d.org/dstarlite/grid.v1
azul3d.org/dstarlite.v2
The Plan - native
Nothing changing yet.
native-glfw
andnative-al
will most likely always exist.native-freetype
: maybe we can deprecate it in the future in favor of freetype-go. I want to wait until I have some text rendering stuff going to know for certain.native-cp
: might break with Go 1.5 GC changes, it uses an insane amount of callbacks. At the very least it will be a hateful kind of joy to update properly. Maybe a full rewrite in Go is in order? Who knows.The Plan - deprecated packages
I do want to make sure that Azul3D has a nice amount of backwards compatibility. Since we moved to GitHub not a single API-incompatible change has been made. As far as I am aware of, a program wrote against Azul3D packages almost a year ago will still build fine today. I'd like to keep this mindset unless it's a serious problem.
Aftermath
In the aftermath, the repositories we have (excluding deprecated ones and website ones) should look like:
audio
(audio
,audio/wav
andaudio/flac
packages).binpack
dstarlite
(dstarlite
package with grid support merged)examples
gfx
(gfx
,gfx/window
,gfx/clock
, andgfx/gl2
packages)keyboard
lmath
mouse
native-freetype
native-cp
native-al
native-glfw
tmx
semver
Before any action is taken I'd like to hear your suggestions/concerns? Please let me know what you think!
Copied from original issue: azul3d-legacy/issues#33
The text was updated successfully, but these errors were encountered: