ChangeLog 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. ChangeLog
  2. ==============================================================================
  3. All bugs/feature details can be found at:
  4. https://github.com/cement/cement/issues/XXXXX
  5. Where XXXXX is the 'Issue #' referenced below. Additionally, this change log
  6. is available online at:
  7. http://builtoncement.com/2.0/changes.html
  8. .. raw:: html
  9. <BR><BR>
  10. 2.0.3 - development (will be released as 2.0.4 stable)
  11. ------------------------------------------------------------------------------
  12. Bugs:
  13. * :issue:`183` - os.environ['HOME'] does not exist on Windows
  14. 2.0.2 - Thu Aug 23, 2012
  15. ------------------------------------------------------------------------------
  16. Bugs:
  17. * :issue:`162` - Unable to set log 'level' by config
  18. * :issue:`167` - Non-stacked controllers not listed in --help
  19. Features:
  20. * :issue:`161` - Ability to override `usage`
  21. * :issue:`165` - Allow utils.fs.backup() to support a suffix kwarg
  22. * :issue:`166` - Ability to set the 'app' for CementTestCase.make_app()
  23. Incompatible Changes:
  24. * :issue:`167` - Listed above, in order to fix this issue as well as
  25. restrict future issues we implemented a hard requirement that all
  26. base controllers have the label 'base'. This should not be a major
  27. change for anyone using Cement 2.0.x as it is a simple 1 line change
  28. in any one application. As all documentation encourages the use of the
  29. label 'base' it should not be a wide spread incompatibility.
  30. 2.0.0 - Fri Aug 03, 2012
  31. ------------------------------------------------------------------------------
  32. This is the initial stable release of the 2.0.x branch. Future releases of
  33. this branch will include bug/security fixes and minor feature updates.
  34. Forward moving feature development will continue out of the 2.1.x branch.
  35. Bugs:
  36. * :issue:`143` - Incorrect doc regarding logging. The LoggingLogHandler
  37. now supports an optional 'namespace' argument allowing the developer
  38. to override the log prefix.
  39. * :issue:`150` - foundation.CementApp.Meta.argv now defaults to None,
  40. but is overridden in __init__() with sys.argv if no other argv is
  41. passed as meta.
  42. Features:
  43. * :issue:`138` - Added 'shell' argument to utils.shell.exec_cmd() and
  44. utils.shell.exec_cmd2().
  45. * :issue:`140` - Included ~/.myapp/config in default config search
  46. * :issue:`144` - Added a note on Contributing, as well as a CONTRIBUTORS
  47. file.
  48. * :issue:`152` - Added 'argument_formatter' to ControllerBaseClass.Meta.
  49. * :issue:`153` - Added spawn_process() and spawn_thread() to utils.shell.
  50. Incompatible Changes:
  51. * :issue:`100` - Interfaces audit.
  52. * ILog.level() redefined as ILog.get_level()
  53. * IPlugin.loaded_plugins attribute redefined as
  54. IPlugin.get_loaded_plugins()
  55. * IPlugin.enable_plugins attribute redefined as
  56. IPlugin.get_enabled_plugins()
  57. * IPlugin.disabled_plugins attribute redefined as
  58. IPlugin.get_disabled_plugins()
  59. * :issue:`145` - The IArgument interface no longer specifies that the
  60. `parsed_args` be maintained by the handler implementation. This means
  61. that `app.args.parsed_args` is no longer available, however
  62. `app.pargs` functions just the same as it points to
  63. `app._parsed_args`.
  64. * :issue:`148` - The CementExtensionHandler.loaded_extensions property is
  65. now a callable at CementExtensionHandler.get_loaded_extensions().
  66. * :issue:`151` - Removed all previously deprecated code including:
  67. * Removed CementApp.Meta.defaults, and CementBaseHandler.Meta.defaults.
  68. Now use `config_defaults` instead.
  69. * Removed cement.foundation.lay_cement(). Now use CementApp directly.
  70. * Removed cement.handler.enabled(). Now use `handler.registered()`
  71. instead.
  72. * :issue:`154` - Validate for handler config_defaults and config_section
  73. by default. Only incompatible if not previously sub-classing from
  74. handler.CementBaseHandler.
  75. * :issue:`157` - CementRuntimeError renamed as FrameworkError
  76. * :issue:`158` - CementSignalError renamed as CaughtSignal
  77. * :issue:`159` - CementInterfaceError renamed as InterfaceError
  78. Misc:
  79. * :issue:`155` - Removed unused CementArgumentError, and
  80. CementConfigError. These types of exceptions should be defined at
  81. the application level.
  82. 1.9.14 - Sun Jul 16, 2012
  83. ------------------------------------------------------------------------------
  84. Bugs:
  85. * :issue:`127` - Inherited positional arguments listed multiple times
  86. Feature Enhancements:
  87. * :issue:`131` - Controller aliases
  88. * :issue:`126` - Add a 'bootstrap' importer to CementApp
  89. * Added cement.utils.test.CementTestCase for improved testing.
  90. Incompatible Changes:
  91. * :issue:`129` - Simplify extensions/plugins/hooks/etc.
  92. * Hooks renamed from 'cement_xxx_hook' to just 'xxx'. For example, the
  93. 'cement_pre_setup_hook' is now simply 'pre_setup'. Additionally, the
  94. 'cement_on_close_hook' is now broken out into 'pre_close', and
  95. 'post_close'.
  96. * The cement.core.hooks.register decorator was replaced with a simple
  97. function of the same name. New usage is:
  98. register('hook_name', hook_func).
  99. * Plugins, extensions, and the application bootstrap now attempt to
  100. call a 'load()' function, meaning library code and loading code can
  101. live in the same file (i.e. hooks won't be registered just because
  102. you imported an extension to sub-class a handler, etc).
  103. * cement.utils.test_helper moved to cement.utils.test.
  104. * By default, command line arguments no longer override config settings.
  105. This is now configurable by the CementApp.Meta.arguments_override_config
  106. boolean. Related: :issue:`136`.
  107. 1.9.12 - Thu Jul 05, 2012
  108. ------------------------------------------------------------------------------
  109. Bugs:
  110. * Fixed version mis-hap in setup.py
  111. 1.9.10 - Wed Jul 04, 2012
  112. ------------------------------------------------------------------------------
  113. Feature Enhancements:
  114. * :issue:`118` - Added utils.fs.backup() to safely backup files/dirs.
  115. Misc:
  116. * :issue:`111` - Use relative imports (makes cement more portable as it
  117. can be included and distributed with 3rd party sources).
  118. * :issue:`120` - Use standard json rather than relying on jsonpickle
  119. Incompatible Changes:
  120. * core.util.abspath moved to utils.fs.abspath
  121. * core.util.is_true moved to utils.misc.is_true
  122. * Namespace reverted from 'cement2' back to 'cement'.
  123. * The following extensions have been removed from the cement source tree,
  124. and are now available externally (see: http://github.com/cement): daemon,
  125. memcached, configobj, yaml, genshi.
  126. 1.9.8 - Thu May 3, 2012
  127. ------------------------------------------------------------------------------
  128. Feature Enhancements:
  129. * :issue:`95` - Add a 'config_section' Meta default for all handlers.
  130. Required to parse config options for a handler.
  131. * :issue:`97` - Add a standard cache handler interface.
  132. * :issue:`105` - Add 'meta_override' and 'core_meta_override' list to
  133. CementApp().Meta. Also resolves :issue:`104`.
  134. * :issue:`108` - Add CementApp.extend() functionality.
  135. * :issue:`109` - Add cement.ext.memcached extension
  136. Incompatible Changes:
  137. * :issue:`103` - plugin_bootstrap_module renamed as plugin_bootstrap.
  138. * :issue:`106` - Deprecate Meta.defaults in favor of Meta.config_defaults
  139. * :issue:`107` - Make the app name the default config section, not [base]
  140. 1.9.6 - Wed Apr 18, 2012
  141. ------------------------------------------------------------------------------
  142. Bug Fixes:
  143. * :issue:`89` - Secondary controllers display under other controllers
  144. * :issue:`90` - Logging to file doesn't expand '~'
  145. * :issue:`91` - Logging to file doesn't create basedir
  146. Feature Enhancements:
  147. * :issue:`88` - Add cement.ext.genshi extension, provides Genshi Text
  148. Templating Launguage support.
  149. * :issue:`93` - Add epilog support for CementBaseController.
  150. Refactoring:
  151. * :issue:`87` - Refactor Meta handling
  152. Incompatible Changes:
  153. * :issue:`96` - Move 'setup()' functions to '_setup()'
  154. * Moved CementBaseController.dispatch() to _dispatch()
  155. * Moved CementBaseController.usage_text to _usage_text()
  156. * Moved CementBaseController.help_text to _help_text()
  157. * backend.defaults() no longer accepts an app name as an argument.
  158. * foundation.lay_cement() is deprecated. Use foundation.CementApp()
  159. directly.
  160. * No longer pass anything but 'app' object to handlers _setup() functions.
  161. * handler.enabled() is deprecated. Use handler.registered().
  162. 1.9.4 - Wed Dec 21, 2011
  163. ------------------------------------------------------------------------------
  164. Bug Fixes:
  165. * :issue:`73` - Hooks broken in Python 3
  166. * :issue:`81` - Controller defaults should be processed before base
  167. controller.setup()
  168. Feature Enhancements:
  169. * :issue:`65` - Added 'daemon' extension. Process is daemonized by
  170. passing the '--daemon' option. Handles switching the run user/group, as
  171. well as managing a pid file.
  172. * :issue:`72` - Added new framework hooks.
  173. * :issue:`76` - Added app.close() functionality including a
  174. cement_on_close_hook() allowing plugins/extensions/etc to be able to
  175. cleanup on application exit.
  176. * :issue:`77` - Added default signal handler for SIGINT/SIGTERM as well as
  177. the cement_signal_hook which is called when any catch_signals are
  178. encountered.
  179. * :issue:`78` - Added cement_pre_render_hook, and cement_post_render_hook
  180. allowing developers to control the data that is rendered to console.
  181. * :issue:`84` - Ability to run all tests from utils/run_tests.sh
  182. Incompatible Changes:
  183. * :issue:`72` - The framework hooks 'cement_add_args_hook' and
  184. 'cement_validate_config' were removed in favor of the new pre/post setup
  185. and run hooks.
  186. * :issue:`82` - Change 'meta' classes to Python-proper 'Meta', and
  187. interfaces to use 'IMeta'. Old functionality will be completely removed
  188. before Cement stable release.
  189. 1.9.2 - Wed Nov 02, 2011
  190. ------------------------------------------------------------------------------
  191. This is an initial beta release of Cement, and therefore no bugs or features
  192. are listed. Future releases will detail all changes.