lukeed / taskr

A fast, concurrency-focused task automation tool.
MIT License
2.53k stars 74 forks source link

[WIP] Full Rework (v2.0.0) #218

Closed lukeed closed 7 years ago

lukeed commented 7 years ago

This area is reserved for notes, thoughts, and a (wip) changelog.

Please feel free to comment below 🙇

Notes

hzlmn commented 7 years ago

@lukeed

Please, ping me when API will be stable for 2.* release. I work on a tool for migrating from one major version to other one for Fly.

Basically, it will have web UI where owner of project, that uses Fly, can add his repo, and then receive PRs from bot that will scan flyfile, detect old api parts, etc and suggest changes, that should be done.

lukeed commented 7 years ago

@hzlmn Sounds awesome! Will do

hzlmn commented 7 years ago

@lukeed Hey, I'm writting backend for tool, and wondering, if you have any preferences for tech stack? I was thinking about Python3.5 + Aiohttp and some sort of key-value storage (I pretty familiar with this stack, as used actively at work). For node.js I thought about Koa (I don't like callback nature of Express).

lukeed commented 7 years ago

@hzlmn I always write backends in Elixir...or PHP if the current team/project sets that limitation. I don't actually write much Node (Fly pretty much covers it, or other small CLI utilities), but the last time I wrote a web-related Node project, it was with Feathers.js. Although, it's based on express.

Koa would be interesting, I haven't tried it. But if you wanted to keep the Koa / generator system, you could always just require tj/co or bluebird directly & wrap your callbacks.

lukeed commented 7 years ago

@hzlmn API is largely complete. Only minor (internal) things may change.

Still working on examples, new docs & readme

lukeed commented 7 years ago

@hzlmn Currently published with the beta flag if you want to start fiddling with it. I haven't had time to write up an "Upgrade Guide" yet, but I surely will.

npm i -D fly@beta
hzlmn commented 7 years ago

@lukeed thx, will start playing with it.

Akkuma commented 7 years ago

I just want to say thank you for

Fly can be initialized anywhere programmatically

I've been doing this programmatically for awhile now, but it is basically a copy of how the CLI instantiated a task, so the code looks pretty awful compared to what a public api will look like.

const reporter = require('fly/lib/reporter');
const spawn = require('fly/lib/cli/spawn');
const creed = require('creed');
const path = require('path');

module.exports = function() {
   creed.coroutine(spawn)(path.resolve(__dirname, '../../'))
    .then(function onSpawn(fly) {
      return reporter.call(fly)
        .emit('fly_run', { path: fly.file })
        .start(['build:dynamic'], { value: opts });
    })
}
lukeed commented 7 years ago

@akkuma you're welcome, great suggestion! All of the Fly tests use this method in case you need any examples while using the beta flag.