1. scope
  2. hob



0.4 - 


* Created custom Scanner to avoid using the undocumented re.Scanner.

command: scope-doc

* A new command used to generate the official scope documentation.
  It generates documentation from the service descriptions and
  combines it with specs and other docs to form the complete
  documentation on scope.bitbucket.org.

0.3.3 - 2011-01-25


* Fixed issue 2: Incorrect parsing of documentation blocks
  Now it only removes the initial whitespace + asterisk from doc blocks and
  keeps the rest as it is.

0.3.2 - 2011-01-25

* Fixed manifest to include templates in the new location, 0.3 and 0.3.1 was
  released without any template files because of this.


* Fixed reading of command options and arguments from config file to only
  occur on the current command in use. Earlier it would read from all
  commands which would overwrite values for options/arguments with same
  name but from a different command.

0.3.1 - 2010-12-01


* Fixed parsing of default values for enum fields. Some proto files had
  incorrectly used numbers for default values. This is now supported by
  looking for the enum entry with the same value.

0.3 - 2010-10-27


* The -v option is no longer used for version display but for enabling verbosity.
* Positional arguments now display help text if available.
* Location of template files has been moved (part of package_data) to solve cross-platform issues.


* Enum fields can now have default values, the enum value object can be fetched
  from field.defaultObject() and the raw unparsed text from field.defaultText()

0.2.1 - 2010-10-06

* Fixed installation of templates used by hob. Now they should also work when
  installed in a virtualenv.

0.2 - 2010-10-05


* Prints the exception text to stderr when an unknown exception occurs instead
  of dumping backtrace.
* Added option *--pdb* which will start the python debugger (at error location)
  whenever an uncaught exception occurs. Useful for debugging purposes.
* Added option *--profile* which will enable the profiler when executing a
  command, the results are written to the file specified in the option.
* Added new command *config* which can be used to display the current config or
  config files which have been used (*--list-files*).
* Added support for defining projects files (optional), each project file is
  another *hob.conf*, any service definitions are extracted from it and replaces
  the local ones.

  The project can be set to point to another config file, a directory or a name.
  If it is a directory it will look for *hob.conf* in that directory.
  If it is a name it will try to lookup the name in the config file under the
  group *[projects]*, the entry in this group must point to the actual project


    hob --project myproject.conf config

  or with a list of projects::

    myproject = ../myproject/myproject.conf
    other = ../myproject2/hob.conf

  then refer to the project by name only::

    hob --project myproject config

* Added option *--target/-t* to override the current target.
* Added short version for config_file option (*-c*).
* Added support for reading in option values from the config file. Options are
  placed in as key values in the config but without the - or --, global options
  are placed in a *[global]* section and command options in

    verbose = true

    syntax = scope
    services = Scope, WindowManager

    test-framework = true

  Boolean options can be written with *true*, *false*, *on*, *off*, *0*, *1*,
  *yes* or *no*::

    verbose = true
    pdb = off

  Lists are defined as a comma separated string, leading and trailing
  whitespace for each element are stripped.

    services = Scope, WindowManager

* Added support for reading config files from *hob_private.conf* in addition to
  *hob.conf*. This can for instance be used to put personal config entries
  separately from the main config file, e.g. to avoid committing personal

* Extension paths can now point to a directory. The directory will be added to
  the Python import path and the module will be imported.

    myproject.extension = path/to/myextension

hob module

* pep8 fixes
* hob: added a *__version_num__* entry that contains version numbers as a tuple.
* hob.proto: Introduced an *Element* class which is sub-classed by all protocol
  buffer classes, provides a common way of building a tree structure
  representing a proto file. The changes should be backwards compatible with
* hob.ui: *UserInterface* now exposes version string (*ui.version*) and version
  numbers (*ui.version_num*).
* hob.utils: Ensure a unique path for template cache in case multiple version of
  hob is used (each with different path).
* hob.cmd: Added support for specifying the metavar for an option, it is placed
  as the third item in the longname tuple/list of the option.
* Improved tests.


* Default values are now checked for correct type.
* Changed how referenced messages are found to match the behaviour of *protoc*
  (Official Protocol Buffer). It now matches child, current and parents/global
  to find the top-most name of a path, once it matches it uses that element
  to search the rest of the path.
* Fixed detection of overlapping extension ranges, they are not allowed.
* Fixed parsing of path items (identifers with dot in between) to only be
  allowed in certain places, it was currently allowed anywhere an identifer
  was allowed.
* Added detection of multiple fields with same number.
* Added *syntax="<syntax-name>"* to generated proto files.
* Generated output will now be compatible with Google Protocol Buffer
  (*syntax="proto2"*). In addition the messages will include
* Fixed incorrect usage of *syntax=<syntax-name>* entries in proto files which
  are supposed to be written as a string (double-quotes). The old and incorrect
  syntax is still supported in the parser.

command: rst-doc

* Filename of written documentation has changed. Version number is now included
  in the filename and the file is placed in a sub-directory named after the
  service, e.g::

  In addition an index is written which links to all versions of a service,
  the index has the name of service and is placed at the root.

* Services are now treated as published unless marked as drafts. To mark a service
  as a working draft add the 'draft' option with a value of true, e.g.::
    option draft = true;

* New option *--syntax* to change the syntax of generated output, can either
  generate pure Google Protocol Buffer (*proto2*) or the special Opera Scope
  syntax (*scope*).
  Service definitions are now only written when *syntax=scope* since it refers
  to the Opera Scope protocol and not the one used in Google Protocol Buffer.
  Default is to write using the scope syntax as this command is used for

command: proto

* Added descriptor file for scope options (*templates/proto/scope_descriptor.proto*).
* New option *--syntax* to change the syntax of generated output, can either
  generate pure Google Protocol Buffer (*proto2*) or the special Opera Scope
  syntax (*scope*).
  Service definitions are now only written when *syntax=scope* since it refers
  to the Opera Scope protocol and not the one used in Google Protocol Buffer.
* Output files are written with .proto as suffix instead of .txt.
* Added support for specifying *all* in *--type* option to export all types.

command: js

* Files are now only written to if they contain different content.
* Message maps are now generated dynamically by requesting information from
  the remote host.
* Added type to message maps, contains the number from *hob.proto.Proto*.
  Used this to displays booleans more correctly.
* Added support for enums in message-maps, message definitions and
  pretty-printing, if an enum value cannot be found it fallbacks to displaying
  the number.
* Added option *--test-framework* as an alias to *--js-test-framework*.
* Fixed version matching in *build_application.js*, now it will match the
  version as long as the major version is the same, minor version may differ
  and it will pick the most recent one.
* Added display of message options in js test framework.
* Various fixes in the js framework.

command: dk-maps

* Command has been removed as it is no longer of any use.

0.1 - 2010-02-12

* Initial public release.