ofx-install

Hi everyone,

I’m working on an oF installer, which I call ofx-install, which will be made with oF and will simplify the process for installing more oF addon packages.

What I want is feature requests for this. Some features I have pinned down are:

  • Project importing/auto-configuration tools, to make new or existing projects or reconfigure one IDE’s code to work with another IDE
  • An XML-based, OF-specific project file format to be used as a middleman for converting projects between IDEs and compilers
  • An XML settings file detailing your OF install directory, the addons you have installed, etc.
  • Zip-Unzip library (which I am also working on, as a port of Info-ZIP, unless anyone can recommend a better open-source zip library) for installing packages
  • Ability to package/repackage new addons, automatically reconfiguring install.xml,
  • Ability to read existing install.xml files within packages

If anyone has any suggestions for design of the app (ie. interface layout, tools to use, menus vs. icons, etc), please let me know. Thanks!

please use a package-system that already exists, brings most features listed above and a distribution-system aswell. not a [yet another] xml-oF-specifc packaging and running into common catches. :o

That’s a great recommendation, but the reasons I want to make my own are:

  • I want an installer for oF and addons I can run on different platforms,
  • I want a standard way to configure project files for different platforms,
  • I want a way to auto-package and unpackage my addons,
  • I want an actual project, not just a tech demo or fancy screensaver, within my level of expertise, that can be used by more people than just me,
  • I want a way to use what’s in install.xml for something, instead of it just being a fancy readme file, and
  • I just felt like it.

Plus, perhaps with some tinkering and with zach/theo’s permission, I might be able to make a distribution system that can (with ofxHttpUtils) post new addons to the addons page or to the wiki of this site, or possibly to an SVN or something.

And anyways, are there any XML-OF-specific packaging systems already?

I think it’s a really nice idea, and one reason why we thought of using XML for the install, since to add something to an OF app, you have to alter the make file. I did at one point start to look at packaging systems, but they seems really complex for what we needed. I sort of imagine the start of this would be some scripts, that parse the xml and can alter a makefile, then later add for additional functionality, like getting stuff online, etc:

a few ideas for scripts that are useful on all platforms:

a) making a new OF project (often just copying the empty example and renaming, slightly different across compilers)…

b) adding / removing an addon to an OF project (altering the project file, for example, the .cbproj on codeblocks)

some of this is actually been done on linux, so it would be a matter of translating the parsing for each project file (many are just xml, which is great…)

more advanced functionality – scan the addons folder to see what addons are available, check for conflicts, etc

there are also some cool auto make generators, like premake, that could be used in conjunction with such a script… I’m not sure how they will handle some of the stuff we do, like virtual folders in CB, but they seem very powerful. I recently used one from glueScript and was blown away at how easy they made compiling codeblocks on cb/win32 (which didn’t come with .cbproj files).

take care!
zach

Wow, thank you for the fast response. I came across premake a while ago, and it was what made me think of this in the first place. What you said about using scripts was also very helpful, and I’ll have to give it some thought, but I think that there might be some issues with that involving choosing between Python, Perl, and Lua (the most viable candidates, as far as I can tell), and then having that scripting engine as a dependency for anyone who tries to use the scripts. But thank you again. I’ll have to think on it some more before making a decision.

Wow, thank you for the fast response. I came across premake a while ago, and it was what made me think of this in the first place. What you said about using scripts was also very helpful, and I’ll have to give it some thought, but I think that there might be some issues with that involving choosing between Python, Perl, and Lua (the most viable candidates, as far as I can tell), and then having that scripting engine as a dependency for anyone who tries to use the scripts. But thank you again. I’ll have to think on it some more before making a decision.

i’m personaly all for ruby and rubygems

“Why does coding in Ruby make you happy?” and Dave Thomas answered: “Coding in Ruby makes me happy because it’s one of the shortest paths between my brain and a computer. I can think of something and I can express it very succinctly and typically fairly elegantly in Ruby without all the kind of extraneous fluff that you need in most other languages, and that makes me happy. It also makes me happy because I like playing and I like trying new things out and I like experimenting: ‘Does this work?’ and Ruby has sufficient depth that I can do that. I am still learning new things about Ruby every day and that is good fun, so it makes me happy because I can be productive, but also makes me happy because I learn while I am using it, it’s just not static.“

Python people love to be organized and have one true way. Ruby people don’t care. -matz

Ruby inherited the Perl philosophy of having more than one way to do the same thing. I inherited that philosophy from Larry Wall, who is my hero actually. I want to make Ruby users free. I want to give them the freedom to choose. - matz

http://www.linuxjournal.com/article/8967
http://pkg-ruby-extras.alioth.debian.org/rubygems.html
http://gems.github.com

hi

yes, there’s something like that already in 006 linux you can find it in scripts/ofProjectManager. it’s done in python and allows to create new projects and add addons to existing ones from the command line with:

ofProject create projectName
ofProject add projectName ofxAddonName

i’ve also tested it in windows and works without problem:

http://forum.openframeworks.cc/t/of-project-utils/1356/0

apart from this in my opinion it will be useful to have some kind of xml descriptor for projects so you can go back and forth from a compiler to xml and from xml to any other compiler.

another option can be something like cmake but the problem there is you can go from cmake to project files but not the oposite and as the cmake files are not tag languages i suppose they will be more difficult to generate than an xml.

also thought about being able to directly install addons from the web in your addons folder. the redmine site addons.openframeworks.cc can support through an extension a rest interface, what means being able to talk to the server from an app that can send http commands so from that it should be easy to create something that reads the available addons and download them to your addons directory.