snowkit / flow Goto Github PK
View Code? Open in Web Editor NEWflow
License: MIT License
flow
License: MIT License
First of great work with this tool, it is what you need when you start to automate some processes.
I am currently developing a web game, and I badly need support for the Flash target.
What I am doing is actually checking the webgl capabilities of the browser (with modernizer for example) and if so, I run a small microbenchmark (sometimes on laptop, webgl will use the integrated graphic card of the player but usually in flash, it will go with big one by default) to decide if I am loading the flash player or the webgl version.
Is Flash support something that will come in a near future?
Something in the form of:
files: { assets : { path:'assets/', include:['*.png'], exclude:['*.txt'] } }
currently there is no way to add extra defines or flags to the command line.
Needs to be clearer
If I want to ask developer about how to do something in flow-snow-luxe, how them all works or maybe about some directions on pull requests, where should I do it? Here in github issues for project?
//I'm new to all environment, there always were some forums for open source projects I was intrested in
Thanks
it only really relates to mobile display name, and should be moved to app.mobile.title, or a better name. display? identifier?
These are partially implemented on cli already, can be passed via hxcpp xml injection already, but having a project node for these seems reasonable
content needs to be completed
A simple way to specify arch inside a flow file would be nice.
Possibly under the build
node:
build : {
dependencies : {
luxe : '*',
},
arch: "64"
},
Tried the following in build.cpp.js.
if(flow.flags.clean) {
args.push('clean');
}
hxcpp wont clean and compile. Instead it will only clean. if there is nothing to clean it will compile.
Investigate
For frameworks without built in file notifications, a small file should be written in the project output folder, with the changed file path relative to the output folder, as a json array of objects with timestamp
and path
in the file. The timestamp will be the time at which the event occurred, not the file stat times.
manifest.changed
= [{ timestamp:11111, path:'assets/image.png'}]
The user can then poll this file for timestamps that differ for their usage, and should not modify the file as the tools will continue to write to it as changes occur.
Hello, I've been told to post my issue here. Im curently trying to compile 1_0_parrott using haxelib run flow run android
I've already set up JAVA_HOME and ANDROID_NDK_ROOT variables. Have downloaded and set SDK with haxelib run flow config build.android.sdk
and android ant with haxelib run flow config build.android.ant_path.
Thank you for your time.
After initial setup and successfully running:
haxelib run flow run web
I thought "Awesome! Now let's see how to compile to Mac...". So I tried:
haxelib run flow run mac
Which resulted in an error:
flow / 1.0.0-alpha.1
flow / target is mac ( arch 64 )
flow / project - searching project root /Volumes/DataHD/haxe/Libraries/snowkit/luxe/tests/features/draw
flow / project - using project file /Volumes/DataHD/haxe/Libraries/snowkit/luxe/tests/features/draw/project.flow
flow / build - luxe - test - draw 1.0.0 for mac
flow / build - running haxe ...
flow / build - running hxcpp ...
g++ -Iinclude -c -fvisibility=hidden -stdlib=libstdc++ -O2 -I/usr/lib/haxe/lib/hxcpp/3,1,39/include -DHX_MACOS -m64 -Wno-parentheses -Wno-unused-value -Wno-format-extra-args -DHXCPP_M64 -DHXCPP_VISIT_ALLOCS -DHXCPP_API_LEVEL=0 -frtti -x c++-header -o obj/darwin64//__pch/haxe/hxcpp.h.gch /usr/lib/haxe/lib/hxcpp/3,1,39/include/hxcpp.h
cc1plus: error: unrecognized command line option "-stdlib=libstdc++"
flow /
build - stopping because of errors in hxcpp compile
The main thing that seemed to mean anything to me was:
cc1plus: error: unrecognized command line option "-stdlib=libstdc++"
After some research HaxeFoundation/hxcpp#32 I found that adding the following line somewhere between <section id="vars">
and </section>
in my .hxcpp_config.xml file located in my home directory fixed the problem:
<set name="HXCPP_GCC" value="1" />
After that, building for Mac worked fine.
Hopefully this was the right place to post about this issue even though it's really a hxcpp problem. I figure there might be someone like me out there not running the latest OSX and also unfamiliar with Haxe who might run into the same problem. Maybe this post will save them a little time and frustration :)
Right now, we always have to manually open the developer console to display logs. It would be nice if the logs just show up on the standard output, like what happens with c++ target.
I see two ways of doing that:
These are just some ideas. Maybe there would be a better way of addressing this, or a good reason for not doing it !
Hi, currently I have to run 'haxelib run flow run web' (actually ctrl+b in sublime text for me) every time I want to test my new code and this web server stops after 10 seconds of not getting any requests. Is it possible to keep it running and only have the code recompile? This way, I could simply refresh the page once it's ready
Thanks
Currently it would be required to have only one device or emulator active while running from flow. Ideally a flag for specifying the options like -s -e -d for adb would be added.
after copying flow to /usr/local/bin (the website instructions are incomplete and not clear on this point)
calling
flow setup
gets me a browser pointing to http://localhost:40444/ saying unable to connect
Since updating to node v0.12.7 there is availability of execSync, promises and more.
These should be tested for performance and implementation details.
on http://underscorediscovery.github.io/flow/flow.html
also, usage link is broken
Hi there, sorry in advance for the newbie question:
I was trying to go through the install process and ran into this:
~/Code/haxe ᐅ haxelib git flow https://github.com/underscorediscovery/flow.git
Installing flow from https://github.com/underscorediscovery/flow.git
Cloning into '/usr/lib/haxe/lib/flow/git'...
remote: Counting objects: 3710, done.
remote: Compressing objects: 100% (1582/1582), done.
remote: Total 3710 (delta 1870), reused 3710 (delta 1870)
Receiving objects: 100% (3710/3710), 14.11 MiB | 227.00 KiB/s, done.
Resolving deltas: 100% (1870/1870), done.
Checking connectivity... done.
Library flow set to use git.
Path: /usr/lib/haxe/lib/flow/git
~/Code/haxe ᐅ flow usage
zsh: command not found: flow
~/Code/haxe ᐅ
Any idea what could be possibly missing?
Seems this was left out, and it should mention that projects can have a flow file as a dependency , thanks to @marc010 for reminding
It would be nice to be able to run (unit) tests through flow. That is, to define a test command that can be executed through flow (e.g. flow test
, flow test web
) and through sublime_flow.
In the simplest case, the functionality might to execute a command like haxe -main UnitTest.hx -x UnitTest.n -lib mohxa
. The flow file format for doing this could be something like:
{
project : {
name : 'empty',
version : '1.0.0',
author : 'luxeengine',
app : {
...
},
build : {
...
},
test : {
main_file: 'src/test/UnitTest.hx',
dependencies : {
mohxa : '*'
}
}
}
}
When encountering an error in haxelib.json, the node.js error output is a bit cryptic and unspecific - better to indicate that it's in haxelib.json.
The follow works fine:
{
flow : {
build : {
boot : 'App'
}
},
project : {
name : 'app',
version : '0.0.1',
author : 'hammeron-art',
build : {
dependencies : {
snow : '*'
},
files : {
boot : { path:'flow/boot/App.hx => haxe/App.hx', template:['project'] },
}
}
},
}
But the same settings using tabs instead of spaces (I don't think GitHub will it with tabs here but...):
{
flow : {
build : {
boot: 'App'
}
},
project : {
name : 'app',
version : '0.0.1',
author : 'hammeron-art',
build : {
dependencies : {
snow: '*',
},
files : {
boot : { path:'flow/boot/App.hx => haxe/App.hx', template: 'project' },
}
},
}
}
Throw this error:
C:\HaxeToolkit\haxe\lib\flow\git\src\flow\util\util.js:48
b.forEach(function(i) { if (r.indexOf(i) < 0) r.push(i); });
^
TypeError: Object project has no method 'forEach'
at Object.exports.array_union (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\util\util.js:48:7)
at merge_unique (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\util\util.js:165:31)
at merge_unique (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\util\util.js:163:23)
at merge_unique (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\util\util.js:163:23)
at merge_unique (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\util\util.js:163:23)
at Object.merge_unique (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\util\util.js:163:23)
at Object.internal.cascade_project (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\project\prepare.js:219:32)
at Object.prepare (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\project\prepare.js:58:14)
at Object.prepare (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\project\project.js:438:21)
at Object.run (C:\HaxeToolkit\haxe\lib\flow\git\src\flow\cmd\build\build.js:33:22)
Only whem snow or flow is a dependence.
Maybe its the same for other library using flow.
There is way to include packages like greatlib.color
or lib-tween
with -
or .
in names? BTW, github, haxelib and npm support that kind of names.
files --sync flag will, at the end of launch only - hang around and sync the project files to the output folder only.
this is flow.project.paths.output
the sync flag will check the list of each node in the prepared project, checking for directories, and feed this to watchr. on change events, the file will immediately be synced into the output folder.
When building, it would be useful to be able to remove defines,
i.e
flow build --d -remove_this_define --d some_define_instead
note the -
in front, this would subtract that define (if defined at all).
same option might apply to flags.
Hi! Noob here!
According to most places in the docs, once installed, I should be able to just use 'flow' as a command. However, it isn't working for me and I have to use 'haxelib run flow'. Is this normal? Did I miss a step?
I installed directly using haxelib git [url] and everything seemed to go fine. I'm using the latest OSX Yosemite GM.
Cheers!
I'm specifically using the thx libraries, which are named as "thx.culture", "thx.format", etc.
In the haxelib folder, these are stored using commas rather than periods (even though they were installed using haxelib install thx.core
):
~/.haxe $ ls
buddy flow gltf hxcpp hxtemplo markdown partials react thx,core thx,format
dox format hxargs hxparse luxe mint promhx snow thx,culture tusk
When trying to use the libraries in flow (with periods):
dependencies: {
"thx.culture": "*",
"thx.format": "*"
}
The generated .hxml contains:
-cp /Users/kenton/.haxe/thx.culture/0,4,0/
-cp /Users/kenton/.haxe/thx.culture/0,4,0/src/
-cp /Users/kenton/.haxe/thx.format/0,5,1/
-cp /Users/kenton/.haxe/thx.core/0,37,1/
-cp /Users/kenton/.haxe/thx.core/0,37,1/src/
(the folders of which do not exist as haxelib replaces the periods with commas).
If, you instead use commas in the flow file as such:
dependencies: {
"thx,culture": "*",
"thx,format": "*"
}
Flow fails with the message:
flow / prepare - failed due to missing dependencies!
flow / you will probably need to use haxelib to correct this.
flow / > thx,culture *
flow / > thx,format *
splash command will be similar to icons in that it simply copies folders across for iOS and Android. each target has a specific setup.
closed
need to find a clean way to specify hxcpp custom content
For example:
build : {
dependencies : {
luxe : '*',
polygonal-ds : '*'
}
}
Fails with:
> syntax error in project file
> project.flow:27:18 Expected ":" but "-" found.
This is stupid.
Added these repositories:
https://github.com/underscorediscovery/sublime_haxe_completion
https://github.com/underscorediscovery/sublime_flow
Sublime Text said they were registered successfully.
Then tried to install these packages:
sublime_flow
sublime_haxe_completion
But no matching packages were found. Hopefully I'm not missing something obvious, I'm not a Sublime Text package wizard but I have successfully installed and used other packages.
I'm on Mac 10.9.5 (Mavericks), Sublime Text 3 (Build 3065)
hi, I'm trying to follow http://gamehaxe.com/2012/09/14/hxcpp-built-in-debugging/ to profile. It is not at all clear to me how to get the flags e.g. HXCPP_STACK_TRACE to go from my project.flow file through the Haxe compiler, and also to HXCPP successfully. I am trying
build : {
flags: [ '-D HXCPP_DEBUG_LINK', '-D DHXCPP_STACK_TRACE', '-D HXCPP_STACK_LINE' ],
dependencies : {
luxe : '*',
}
},
but when I run with --log 5 I can see those in some places, but not in each line of cpp compliation.
$ grep -n STACK_TRACE /tmp/l2
296: DHXCPP_STACK_TRACE:
297: { name: 'DHXCPP_STACK_TRACE',
417:-D DHXCPP_STACK_TRACE
609:-D DHXCPP_STACK_TRACE
757:flow / build - cpp - Options.txt contents: DHXCPP_STACK_TRACE=1 HXCPP_DEBUG_LINK=1 HXCPP_STACK_LINE=1 arch-32=1 arch_32=1 desktop=1 haxe3=1 haxe_ver=3.2 hxcpp=1 hxcpp_api_level=321 hxcpp_static_std=1 linux=1 luxe=1 luxe_native=1 no-compilation=1 no_compilation=1 parcel_thread_disabled=1 snow=1 snow_dynamic_link=1 snow_module_audio_openal=1 snow_module_input_sdl=1 snow_module_windowing_sdl=1 snow_native=1 hxcpp=/usr/lib/haxe/lib/hxcpp/3,2,102/
relates to #34
also complains about a primitive value being a leaf node... probably because it contains a {{
template so it mistakenly thinks its an object node.
Sometimes (maybe once out of every ten) build attempts fail in the following manner:
$ flow run
flow / 1.0.0-alpha.1
flow / target is mac ( arch 64 )
flow / project - searching project root /Users/nissen/code/snowkit/test
flow / project - using project file /Users/nissen/code/snowkit/test/project.flow
flow / build - test 0.0.1 for mac
flow / build - running haxe ...
/usr/lib/haxe/std/neko/_std/Sys.hx:25: characters 10-28 : Broken pipe
/usr/lib/haxe/lib/haxelib_client/3,1,0-rc,4/tools/haxelib/Main.hx:1244: characters 2-21 : Called from
/usr/lib/haxe/lib/haxelib_client/3,1,0-rc,4/tools/haxelib/Main.hx:300: characters 5-25 : Called from
/usr/lib/haxe/lib/haxelib_client/3,1,0-rc,4/tools/haxelib/Main.hx:1248: characters 2-22 : Called from
--macro:1: character 0 : Called from
Aborted
This error has been observed building both from the command line and from Sublime Text using the flow-plugin.
Following the stack trace, haxelib
seems to fails in getRepository()
in haxelib/Main.hx
. Strangely, inserting trace
in that function causes the following error:
$ flow run
/usr/lib/haxe/lib/haxelib_client/3,1,0-rc,4/tools/haxelib/Main.hx:695: inserted dummy trace
flow / 1.0.0-alpha.1
flow / target is mac ( arch 64 )
flow / project - searching project root /Users/nissen/code/snowkit/test
flow / project - using project file /Users/nissen/code/snowkit/test/project.flow
flow / build - test 0.0.1 for mac
flow / build - running haxe ...
Error: Could not process argument /usr/lib/haxe/lib/hxcpp/3,1,39/
Class name must start with uppercase character
To me, this seems to indicate that the haxelib
output is used by flow/hxcpp
and there might be some race condition causing this to fail non-deterministically. This is only speculations though.
Any ideas?
measure everything that makes sense and allow them to be logged. perhaps a special mode for log 2 that shows them alongside.
this is already around the code (just look for flow.timing) but should be rounded out and called complete.
path.js:204
throw new TypeError('Arguments to path.join must be strings');
^
TypeError: Arguments to path.join must be strings
at f (path.js:204:15)
at Object.filter (native)
at Object.exports.join (path.js:209:40)
at Object.run (C:\Projects\flow\src\flow\cmd\icons\icons.js:31:24)
at C:\Projects\flow\src\flow\flow.js:32:21
at Object.verify (C:\Projects\flow\src\flow\cmd\icons\icons.js:75:5)
at Object.flow.execute (C:\Projects\flow\src\flow\flow.js:29:13)
at Object.exports.run (C:\Projects\flow\src\flow\cmd\build\builder.js:35:10)
at internal.step_one (C:\Projects\flow\src\flow\cmd\build\build.js:71:21)
at Object.internal.run_stage (C:\Projects\flow\src\flow\cmd\hooks\hooks.js:62:13)
Happens when snow : '*'
isn't first on the dependency list.
THANKS CHMAN GEEZ
The default config settings for android builds uses "/Users/sven/dev/android-sdk", while hxcpp defaults to ${HOME}/SDKs/. Would it make sense to use the same default as hxcpp?
consider:
haxelib git libA <libA url>
haxelib git libB <libA url>
If libA depends on libB, it will now infinitely query the dependencies of libB (since it refers to itself indirectly).
One solution that doesn't create inflexibility is a configurable maximum depth for the dependency tree, in order to catch this easier. Other options (like checking the haxelib.json content name vs the haxelib name) might work as well.
For example,
When running flow info
and hxcpp is not installed, it will silently fail and throw errors without telling why.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.