Skip to content
This repository was archived by the owner on Jun 16, 2022. It is now read-only.
laher edited this page Mar 14, 2013 · 7 revisions

Todo

Contributions welcome via pull requests, thanks. Please use github 'issues' for discussion.

For version 0.5

  • 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?)

Beyond 0.5

  • 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'
Clone this wiki locally