This repository was archived by the owner on Jun 16, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 79
todo
laher edited this page Mar 14, 2013
·
7 revisions
Contributions welcome via pull requests, thanks. Please use github 'issues' for discussion.
- Breaking change: Remove 'artifact types' and 'codesign' options, in favour of new task names (archive, rmbin and codesign).
- Add validation tasks (go-test and such).
- Make tasks more granular, i.e. go-clean,go-vet,go-test,go-fmt,codesign,go-install,xc,archive,rmbin,downloadspage. (currently xc,archive,rmbin,downloadspage are all one.)
- Refactor: calculate platform list before running tasks.
- Refactor: split each task into a function, building results data for subsequent tasks. each of these smaller tasks will be run independently.
- Add exclude-tasks and include-tasks options to make it easier to run just part of the standard list.
- Refactor: split more of the code into separate files (and packages?). Several extract-method refactorings.
- Add recognition of old configs (FormatVersion). (fail on error as appropriate. Potentially offer to rewrite configs?)
- task-specific config options.
- pre- & post-build scripts to run?
- Capability to run multiple configs at once? -c=a,b
- Bug: issue with config overriding. Empty strings do not currently override non-empty strings. Would involve more involved use of json and flagSet packages.
- Doc for json config format
- Option to specify precise dir & name for a particular artifact?
- Support BuildConstraints to specify platforms.
- Permit unrecognised platforms (as Golang adds more)
- Respect +build flags inside file comments (just like 'go build' does)
- "Copy resources" option for INSTALL, READMEs, LICENSE, configs etc (
Done v0.1.5: for zips.Not done for non-zipped binaries). See [issue 4](https://github.com/lah er/goxc/issues/4) - Much more error handling and potentially stop-on-error=true flag
- Refactoring: Utilise/copy from gotools source
- Refactoring: Start splitting functionality into separate packages, e.g. zipping, build, build-toolchain, config, ...
- Meaningful godocs everywhere
- More Unit Tests!!
- Configurable 'downloads' page: name, format (e.g. markdown,html,ReST,jekyll-markdown), header/footer?
- Generate 'downloads overview' page (append each version's page as a relative link) ?
- Artifact types:
Done: zip, tgz, ... - Packaging (source deb & .deb, .srpm & .rpm, .pkg? ...).
- Improve sanity check: automatically build target toolchain if missing? (need to work out detection mechanism)
- Improve sanity check: 'download golang source' option?
- Improve sanity check: warn about non-core libraries and binary dependencies?
- building .so/.dll shared libraries?
- Maybe someday: Build plugins (for OS-specific wizardry and stuff)? Pre- and post-processing scripts?
- Maybe someday: Investigate [forking and ?] hooking directly into the gotools source, instead of using os.exec. Fork would be r equired due to non-exported functions.
- Maybe someday: Use goroutines to speed up 'goxc -t'