fstiewitz / build-tools-cpp

Build your projects in atom
https://atom.io/packages/build-tools
MIT License
31 stars 6 forks source link

Output/Input/Modifier/Provider service (v4.0) #33

Closed fstiewitz closed 8 years ago

fstiewitz commented 8 years ago

output modules: Output modules will be classes that (if enabled by the user in the command settings) receive the input/output streams of the command(s) as well as linter messages. build-tools's core output modules will be console, file(EDIT:, buffer) and linter modules.

input module: The input module is a provided service that allows other packages to execute commands through my pipeline.

modifier modules: Modifier modules will be classes that (if enabled by the user in the command settings) modify the command's properties before command execution or perform other tasks. build-tools's core modifier modules will provide the Save All(EDIT:, Shell, Dependency) and Wildcard functionality of v3.x, as well as a new modifier for environment variables..

provider modules: Provider modules will be classes that can provide commands for users to execute. build-tools's core provider module will be build-tools and Makefile Targets.

All in all I'm trying to make build-tools as modular as possible and then release it as v4.0.0.

fstiewitz commented 8 years ago

My plan is to make build-tools as modular as possible and while there are some new features (like Makefile target detection), there are some changes that will require users to change how they use this package:

  1. I removed command dependencies because they were a pain to maintain.
  2. You will not be able to import commands.
  3. All commands will be moved from the package's global config file ($ATOM_HOME/build-tools.projects) to local config files.

Regarding points 1 and 2: I'll fix/re-implement them in v4.0.0. Regarding point 1: The dependency data will remain in the global config file and when dependencies are re-added in v4.0.0 it will migrate the data automatically.