higan-emu / higan

higan is a multi-system emulator focused on accuracy, preservation, and configurability.
Other
1.15k stars 111 forks source link

Put libco, etc. in separate repositories #40

Open namandixit opened 4 years ago

namandixit commented 4 years ago

Currently, all libraries are a part of the monorepo, which makes it harder for others to use. Also, since bsnes and higan share some of these libraries, keeping these in sync is a challenge. For example, at the moment, the libco directory in higan and bsnes are out of sync.

It seems like putting these libraries in separate repositories and using either git's submodule feature or mentioning the dependencies in the README might be a good idea.

EDIT: Some relevant documentation

namandixit commented 4 years ago

For the time being, I have forked the libco directory alone here. Hopefully, maintaining this fork will not be necessary for long.

merryhime commented 4 years ago

https://github.com/higan-emu/libco is now available. I only just realized you did a filter-branch to preserve the history, but oh well. Extracting out other libraries is planned.

namandixit commented 4 years ago

@MerryMage Thanks. I'll leave this issue opened in case you want to use it to track the extraction of other libraries, as well as using the new libco in higan instead of keeping the files in directory.

Screwtapello commented 4 years ago

I only just realized you did a filter-branch to preserve the history...

Actually, git subtree split extracts all the commits that affect a particular directory tree into their own history. The opposite operation is git subtree merge.

FitzRoyX commented 4 years ago

This might be a stupid question, but I'm used to downloading the source from my browser and then compiling it as is. Do I need to now copy libco into the source folder after downloading it since it will be absent?

Screwtapello commented 4 years ago

No, libco is still there, it's just that now the commit history contains tags (all those "git-subtree" bits) that allow it to be automatically sync'd with the external repository.

Screwtapello commented 3 years ago

I've also split out a separate repo for nall, although I haven't yet spliced it into higan or bsnes: https://github.com/higan-emu/nall/