SquidDev-CC/Howl

WebBuild

Closed this issue · 5 comments

@ardera Suggested:

ardera, on 07 January 2015 - 06:43 PM, said:
What about adding a task which builds a program from a GitHub repository? I think luarocks has this option too.
something like this:
howl webbuild SquidDev-CC/Howl
It would fetch the repository to a cache directory, and try to run the build task.

What do you think?

Yeah, I don't see why not. I mostly use Grin-Get or pastebin for releases, this is possible. I think a task should be defined in the HowlFile though. Like :Default but :WebBuild. Development is different to deployment, so it should be different commands.

The idea would be Howl WebBuild SquidDev-CC/Howl would clone the Howl repo, and run the :WebBuild task.

I'm wondering if we could use an emulated file system such as Compilr so we don't end up spamming the file system. Anything that the task :Produces would be saved to the filesystem.

I've done some work on this on the feature/webbuild branch (tools/WebBuild.lua) . This currently:

  • Allows you to choose what repo, branch (or tag or sha) to use, and what task to run.
  • We then download all the files and store them in memory.
  • We manually run Howl with an emulated filesystem.

I'm going to add an option to choose the Howl executable to run. The only issue is the Howlfile must be in the root of the project.

Any thoughts @ardera?

It should be possible to let the howlfile decide if the included howl from the project is used (path is set by the howlfile too), if the running howl is used or if howl with version X should be used.

I'm slightly confused: You are saying the HowlFile should specify which version of Howl to use. The options being:

  • The current version (default)
  • Custom path
  • Version whatever

At the moment WebBuild is a stand alone script. I'm not sure how best to integrate it with the existing Howl code. I don't really understand the point of setting the version of Howl though? Or am I just missing the point?

Maybe an old program depends on a specific (in this case old) version of howl. (For example, if a feature is removed/modified and older programs don't work with the new modification, or without this feature.)

Deleted the old code and added as a separate project on the webbuild branch.

It allows specifying a .howl file which will store various settings:

{
 howl = "http://pastebin.com/raw.php?i=uHRTm9hp", -- URL or file in repo.
}