Skip to content
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

Documentation #187

Open
sormuras opened this issue Dec 16, 2020 · 1 comment
Open

Documentation #187

sormuras opened this issue Dec 16, 2020 · 1 comment

Comments

@sormuras
Copy link
Owner

sormuras commented Dec 16, 2020

Blog Posts

Show the usage of Bach and its features.

  1. Introduction
  2. Zero-Installation & Zero-Configuration
  3. The Build Module bach.info and the Project Descriptor @ProjectInfo
  4. Details of the Build Module .bach/bach.info/module-info.java

Javadoc

Technical details.

  • JDK with foundation tools
  • Bach uses JDK's ToolProvider API and provides IO-releated functions
  • Declared, System, and External Modules
  • Project model with declarative project-info support
  • Extending Bach

Snippets

@sormuras sormuras added this to the 16 milestone Dec 16, 2020
@sormuras sormuras modified the milestones: 16, 17 Jan 9, 2021
@sormuras sormuras changed the title Bach 16 Documentation Documentation Jan 9, 2021
@sormuras
Copy link
Owner Author

Yeah, I left the path of "zero-installation" and "zero-configuration" in favor of a small and well-defined installation of Bach local to the project. The "zero-xyz" magic are still possible to implement, but even small projects tend to need at least a few custom configurations. One thing, I wasn't willing to give up, was the 100% Java path. Hence, Bach will support xml, yml, ... files, not even for tiny configurations. The canonical way to setup a modular Java project with Bach 17-ea, is to create a ".bach/" directory and store everything Bach-related there. This includes a copy of the com.github.sormuras.bach module, stored in .bach/bin/com.github.sormuras.bach@VERSION.jar. Right next to some supporting scripts, like a platform-agnostic JShell overlay or platform-dependent launchers. Those launchers take care of setting up the compilation environment in order to build your project according to the configurations declared the bach.info module.
Take a look at this project as an example: https://github.com/sormuras/modules -- Bach's usage is shown in a GitHub {workflow](https://github.com/sormuras/modules/blob/ab6a80c58107d4ff8c46c627d421cecca4db7a6d/.github/workflows/release.yml#L23-L24).

@sormuras sormuras removed this from the 17 milestone Dec 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant