Comments (7)
Excellent question @lalop ! 😄
@jaz303 seems to be active on GitHub (last public activity on March 15th), but the project does seem to be a bit slow (last commit back in December 2014).
I'd be interested in helping out with this project. We use it heavily at @QoboLtd via phake-builder
from phake.
project is alive albeit it's been mostly maintenance/bug-fix work for the past couple of years. what features would everyone like to see?
from phake.
@jaz303 I'd love to have a more elegant way to extend the project with task collections. Currently, we are doing so with lots and lots of Phakefiles, which use other, more generic libraries, but it all is a bit cumbersome. I think if there was a better, standard way, it would be much easier for people to share snippets with one another.
from phake.
so are we talking about a way of including other Phakefiles? maybe a standardised set of search locations?
from phake.
Yes, sounds about right. I was also thinking in the direction of a namespace maybe, so that sharing via composer, for example, could be easier.
from phake.
Can you explain a bit more, possibly with some syntax examples?
from phake.
@jaz303 sorry for a delayed reply - lost this thread for a while.
In my company we use phake for building all our client projects. Some things are reusable everywhere (like git tasks, for example). Some are reusable only on the subset of projects (like WordPress-specific tasks, for example). And some are unique to a project.
Currently, we use QoboLtd/phake-builder for all the things that are common. And then we use a variety of boilerplate/template projects (for example: QoboLtd/project-template-wordpress which add platform-specific tasks to Phakefile.
Overall, this works, but lacks elegance and flexibility. As you can see, for example, in QoboLtd/phake-builder we have a whole bunch of common tasks, which we separate into different Phakefiles (Phakefile.git, Phakefile.mysql, etc) and then we load all of them from the central one.
It would be awesome if we could break that up into some kind of Phake plugins (a plugin to share git tasks, a plugin to share mysql tasks, etc), and then include those plugins with composer as needed for each project. A few tools already do exactly that using composer installers, which is the preferred way. Some other projects use fixed vendor name - for example WordPress themes and plugins can be installed so from WordPress Packagist.
Grouping common phake tasks and separating them into modules/plugins would make it easy to share them between projects, companies, and people. I think it will also help increase phake adoption, since it will be easier for projects to ship their specific tasks (WordPress or CakePHP, for example), while reusing other common tasks (like git and MySQL).
From what I can see, Phing is popular this way now. And I think part of it is because it bandles common tasks for ssh, ftp, version control, etc right into the tool, and makes it easier to add/customize them too.
from phake.
Related Issues (20)
- Include File and Directory tasks HOT 1
- Include automatic CLEAN and CLOBBER tasks HOT 1
- Add semver compatible tags (e.g. v1.0.0) HOT 4
- Documentation on how to abort tasks HOT 4
- New release? HOT 9
- Invoking multiple tasks does not work HOT 2
- Fatal error: Cannot redeclare builder() when use composer HOT 3
- Use a real option parser HOT 10
- Phake autocomplete
- Add continuous integration via travis-ci.org HOT 1
- PSR-2 Coding Style Guide HOT 1
- task listing is completely broken HOT 4
- wrong task name for multiple group HOT 3
- Grouped tasks broken after v0.5.1 HOT 1
- Tasks with no description show up in "phake -T" in versions after 0.5.1 HOT 1
- last tagged version 0.6.0 or 0.5.2 HOT 4
- Task name is missing when TaskNotFoundException is logged
- Running `group` should run `group:default` if it exists and no `group` task exists
- Exception messages should be written to `stderr` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from phake.