6.7 KB

Changelog of OcLaunch

Note: XXX Means that the functionality needs test and TODO means that its implementation is partial



This version introduce major changes in the tmp and rc file.


  • Allow to temporary disable oclaunch auto-run. Please refer to documentation for more.
  • Changed tmp file structure, the new one would allow to do more things: (See #6)
    • Restart edited command (reset number of launch).
    • Support multiple configuration file.
    • More natural behavior when starting from an empty file. (Don't increment number of launch when nothing is actually launched).
    • Change name to improve multi-user compatibility.
    • For the future : Running infinite, daemon mode...
    • Format changed too, from biniou to Bin_proto. This is faster and remove dependencies since it's included in Core library.
  • New format and structure for the rc file, using serial expression: (see #5)
    • Allows to add tags to command
    • Allow to contain setting
  • Beautified rc file:
    • Remove doubled entries before each write of the rc file. Trailing spaces are remove too. Empty entries are dropped.
    • This fixes #12.
    • A new clean command has been added, to clean up a manually edited or old rc file.
    • Summary of edit command was improved.
  • Rewrite command line parsing, in a cleaner and safer way.
    • It now handles exit, would be able to deal with auto completion and display more accurate help messages. Further more, partial commands are supported, such as lis for list
    • However, for backward compatibility reasons, a hack has been set up, allowing to call the program with a number as first argument or without any argument. This way, the program tries to launch the corresponding command or the next one. The problem is that you can't call it with an option. To do this, use the run subcommand.
  • Add --yes option.
  • Improve list subcommand, now using Textutils library, displaying in an array. Add --length argument to limit the length of displayed entries.
  • Improve edit subcommand (explain how to use to add commands, improve messages, offer to reedit when nothing was done).
  • Improve delete subcommand, asking for confirmation before deleting.
  • Allow most subcommand (in fact every subcommand for which it makes sense) to parse lists of entries ids like 1,4-8,10


  • Fix bug: in special circumstances, it was not possible to write in lock file. The program was crashing.
  • To limit future problem with lockers, two things were done:
    • Remove automatically lock file at the end of the program (See commit 075c5b7074).
    • Add delay when waiting for locker, to avoid endless loop (See commit cd7fdc0c02 and bd712c97c7).
  • Code clean up (especially indentation, thanks to ocp-indent), messages improvement (for instance to make it clearer, give more accurate tips or engage users, thanks to service).
  • Allow to set parameters with environment variable, such as OC_RC,OC_VERB, OC_NOCOLOR. This is added to the previous variableOC_TMP`. See #20.
  • Add unit tests and clean them up.
  • Add licence warning.
  • Improve help messages, by rewriting some and display it in a more subtle way according to the current internal state.
  • Remove core_extended dependency, using Textutils and Re2 library instead.
  • Display debugging information before each message. Flush stdout on each message.
  • Some subcommand, such as run, take list of ids instead of only one.
  • Adapt code a bit for OCaml 4.03.
  • TODO XXX Add basic signal handling (--signals), to relaunch when doing ctrl-C. See issue #14 for known problems.
  • Adapt to OCaml compiler version 4.03 (only supported)
  • Improve opam file, installs less dependencies, with ability to run tests


  • Improve release script, to enhance contributing experience (making easier to release source-code, binaries, signing, run test…). Stripped (and thus smaller) binaries are being tested too. Add indentation script too.
  • Improve file, using special code in _oasis Description field.
  • Using Gitlab CI to build with several versions of the compiler (fasten with Docker).



  • Major functionality:
    • Allow to install from opam throw opam pin add
    • Allow to set tmp file with environment variable “OC_TMP”. See #9 and #6
    • Messages displayed with bold, underline and colors.
    • Add options:
      • “-v” to set verbosity.
      • “--no-color” to toggle color off
      • “--edit” is synonym of “--modify” now
    • Minor functionality:
      • Improve resetting: tips, way to roll back
      • Add unit tests, to improve stability
      • Clean help
      • Better display after editing an entry. Ignore empty lines and fix #10
      • Use lazyness to speed up and lead to less error
      • Locking tmp file to prevent launching two times the same item
    • Correct bugs:
      • When executing oclaunc -r more than once, it tries to delete an unexisting file and this led to errors.
      • When some variable like $EDITOR was not set, it was crashing everytime. Now, it crashes only if there is no other solution.


    • Add new command line option:
      • “-c file” allow to read configuration from custom file.
      • “-m n” allow to edit and add (simultaneously) items to launch in rc file.
    • Improve “-l”: now display a “*” next to current state.
    • Code clean up (Types in records) and code factoring.
    • When all has been launched, the program explain how to reset.
    • Better messages on initialisation.


    • Add new command line option.
      • “-r” can now take a number to start from.
      • “-l” list commands of the configuration file with its number.
      • “-a” add the command given on stdin to configuration file.
      • “-d n” remove the nth command from rc file.
      • “-n” display the current state.
    • Improve some messages.
    • Display run commands in title bar of the windows terminal.
    • New tmp file
      • Biniou format instead of JSON
      • Now cached
      • New default name : /tmp/.oclaunch_trace.dat
    • Add logo.
    • Clean up some code.
    • Improve utility set given with the repository (developer)




    • First public usable version.
      • Create wiki.
      • Use Oasis
    • First version to be distributed with 0install.


    • Wast and test