Skip to content
Jindrich Luza edited this page Mar 5, 2014 · 16 revisions

Release Notes

0.1.6

  • implemented comps.Langpacks, comps.Blacklist and comps.Whiteout
  • comps.Blacklist and comps.Whiteout is comps.MDict class so when you get item from mentioned class instance you get libcomps.StrSeq which is simple string list. When you set item to libcomps.Comps instance, you could use libcomps.StrSeq instance or python list containing only string or unicode objects
  • added missing basearchonly to DocGroupPackage

  • added xml output options comps.xml_f() and comps.xml_str() are now supporting optional parameter options which is dictionary of xml output options:

          xml_options = {"empty_groups" = false,
                         "empty_categories" = false,
                         "empty_environments" = false,
                         "empty_langpacks" = false,
                         "empty_blacklist" = false,
                         "empty_whiteout" = false,
                         "empty_packages" = false,
                         "empty_grouplist" = false,
                         "empty_optionlist" = false,
                         "uservisible_explicit" = false,
                         "default_explicit" = false,
                         "gid_default_explicit" = false,
                         "bao_explicit" = false};
    

    not set options are considered as default value. See https://github.com/midnightercz/libcomps/blob/master/libcomps/src/comps_types.c for default xml output options and explanation.

  • alias comps.xml_* as comps.toxml_*

  • added arch filter support

    • Libcomps parser is now able to parse attribute _arch = "arch1 arch2 arch3" in category, group, environment, packagereq and groupid elements. This attribute contains all architectures where concrete object belongs. After parsing you can call filtered_comps = comps.arch_filter(["arch1", "arch2"]), where filtered_comps will be new libcomps.Comps object will filtered content. Direct access to architectures attribute is not supported yet neighter generating comps.xml with _arch attribute.
  • New unioning policy Append-Replace-Append. Append-Replace-Append means

    • all sub-object from first object is appended to result object
    • if some sub-object from second object is same as sub-object in result object - replace sub-object in result object with sub-object from second object
    • other sub-objects from second append to result object
  • Dictionaries are now stored in alphabetical order

  • Validity check

    • validity check for object's (category, group, environment, package - name instead of id, groupid - name instead of id) id is executed before libcomps.Sequence.append and libcomps.Sequence.set_item()
    • in case of category, group, environment validity check for duplicates in lists is executed. This means there cannot be two identical packages/group_ids in objects lists (package_list, option_list, group_ids, ..)
    • separate method .validate is also provided for object with validity check
  • Implemented def_options which is defaults values options for COMPS parser and COMPS XML generation comps.xml_f(fname, def_option={}), comps.xml_str(def_options={}) comps.fromxml_str(options={}) comps.fromxml_f(fname, options={})

0.1.5

  • libcomps.CategoryList, libcomps.EnvList, libcomps.GroupList has now accepting object id in _getitem_ function. Code bellow is now working:

    list = libcomps.CategoryList()
    list.append(libcomps.Category(id="cat1"))
    list.append(libcomps.Category(id="cat2"))
    list.append(libcomps.Category(id="cat3"))
    cat1 = list["cat1"]

__getitem__(id) returns first object with specified id in list (unique id in list enforcement planned to future)

  • display_order attribute for libcomps.Group and libcomps.Environment is optional now and won't be included in xml output if wasn't setter before
  • libcomps.Group, libcomps.Category, libcomps.Environment won't appear in xml output if don't contain any packages/group_id/option_id
  • remove method added for libcomps sequence types (groups, categories, environments, packages, group_list, option_list). Method remove exact object by reference from list.

0.1.4

  • libcomps.Package default type is mandatory now and attribute won't appear in xml output if mandatory.
  • option_list and group_list won't appear in xml output if empty.
  • complete C-objects memory management redesign

0.1.3

  • libcomps.GroupId has 'default' boolean attribute now.

0.1.2

  • libcomps.Dict has_key method and get() alias added
  • libcomps.Package requires attribute added
Clone this wiki locally