{"action":"created","issue":{"url":"https://api.github.com/repos/DFHack/dfhack/issues/723","labels_url":"https://api.github.com/repos/DFHack/dfhack/issues/723/labels{/name}","comments_url":"https://api.github.com/repos/DFHack/dfhack/issues/723/comments","events_url":"https://api.github.com/repos/DFHack/dfhack/issues/723/events","html_url":"https://github.com/DFHack/dfhack/issues/723","id":114572834,"number":723,"title":"Alternative way to organise DFHack script development","user":{"login":"PeridexisErrant","id":5608912,"avatar_url":"https://avatars.githubusercontent.com/u/5608912?v=3","gravatar_id":"","url":"https://api.github.com/users/PeridexisErrant","html_url":"https://github.com/PeridexisErrant","followers_url":"https://api.github.com/users/PeridexisErrant/followers","following_url":"https://api.github.com/users/PeridexisErrant/following{/other_user}","gists_url":"https://api.github.com/users/PeridexisErrant/gists{/gist_id}","starred_url":"https://api.github.com/users/PeridexisErrant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PeridexisErrant/subscriptions","organizations_url":"https://api.github.com/users/PeridexisErrant/orgs","repos_url":"https://api.github.com/users/PeridexisErrant/repos","events_url":"https://api.github.com/users/PeridexisErrant/events{/privacy}","received_events_url":"https://api.github.com/users/PeridexisErrant/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-11-02T11:03:52Z","updated_at":"2015-11-02T23:08:15Z","closed_at":null,"body":"For script developers, the current system is awkward enough to use that most simply don't.  Many maintain git repos for their scripts with no shared history, and more still don't use git at all.\r\n\r\nI think it self-evident that script authors working on a fork would be better than our new submodule system, and that encouraging more people to use git for DFHack scripts would be a good thing.  I further assume that we would like to know about as much of the script development being done as possible, and prefer to have the option of adopting that work into the standard distribution.\r\n\r\nSo the proposal is actually pretty simple:\r\n\r\n1. move the scripts directory to a new repository, and make it a submodule in it's current location\r\n2. each author forks the repo, and works in /devel/$name/\r\n3. when ready for publication, scripts are moved to the main directories and pull-requests are made\r\n\r\nWhat are the advantages for users (ie script authors)?\r\n\r\n- it's trivial to work in a functioning environment:  just grab a DF+DFHack install, `cd hack && rm -rf scripts && git clone ...`\r\n- the same technique makes getting new stuff easy\r\n- all the linting and testing tools are available\r\n- encourages collaboration, since you fork one repo not many and can fetch from other repos\r\n- no baggage:  it doesn't include any of the scary C++/Perl/Lisp/XML/Cmake/whatever that scares people off\r\n\r\nAdvantages for DFHack core developers?\r\n\r\n- **shared history**\r\n- more people use git for DFHack scripts, meaning better history and more content\r\n- the build systems and merge patterns are more sensible\r\n- management of the scripts *could* (but need not) be handed off, and just checked when it's time to update the submodule for a release\r\n- less duplication, as a higher proportion of the code is widely known among script authors\r\n- +many above, eg script authors linting is a Good Thing\r\n\r\nThoughts?  I know this is a big step, but the DFHack project is getting big enough that it's hard to manage and this seems like a natural and helpful split to make."},"comment":{"url":"https://api.github.com/repos/DFHack/dfhack/issues/comments/153187171","html_url":"https://github.com/DFHack/dfhack/issues/723#issuecomment-153187171","issue_url":"https://api.github.com/repos/DFHack/dfhack/issues/723","id":153187171,"user":{"login":"PeridexisErrant","id":5608912,"avatar_url":"https://avatars.githubusercontent.com/u/5608912?v=3","gravatar_id":"","url":"https://api.github.com/users/PeridexisErrant","html_url":"https://github.com/PeridexisErrant","followers_url":"https://api.github.com/users/PeridexisErrant/followers","following_url":"https://api.github.com/users/PeridexisErrant/following{/other_user}","gists_url":"https://api.github.com/users/PeridexisErrant/gists{/gist_id}","starred_url":"https://api.github.com/users/PeridexisErrant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PeridexisErrant/subscriptions","organizations_url":"https://api.github.com/users/PeridexisErrant/orgs","repos_url":"https://api.github.com/users/PeridexisErrant/repos","events_url":"https://api.github.com/users/PeridexisErrant/events{/privacy}","received_events_url":"https://api.github.com/users/PeridexisErrant/received_events","type":"User","site_admin":false},"created_at":"2015-11-02T23:08:15Z","updated_at":"2015-11-02T23:08:15Z","body":"(oops, wrong button)"}}