Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Digesting the shortlog #140

Closed
pwaller opened this issue Dec 11, 2012 · 7 comments · Fixed by #196
Closed

Digesting the shortlog #140

pwaller opened this issue Dec 11, 2012 · 7 comments · Fixed by #196
Milestone

Comments

@pwaller
Copy link
Member

pwaller commented Dec 11, 2012

Hi @cdeil @ekfriis @ndawe,

Sorry for the huge amount of spam generated by #139.

Please run:

git log --pretty=short --no-merges 0.6.0.. | git shortlog | less

and summarize what you've done into a few bullet points, so that we can put it in a README somewhere.

@pwaller
Copy link
Member Author

pwaller commented Dec 11, 2012

I'll go first.

Modules

rootpy.interactive:
    Add interactive.rootwait, provides wait_for_zero_canvases which blocks
        program execution until all canvases are closed
    Add canvas_events for closing canvases on middle click

rootpy.context:
    Add preserve_{current_canvas,batch_state} and invisible_canvas context managers

rootpy.plotting:
    Add xaxis/yaxis properties to plotting.Efficiency

rootpy.logger:
    New!
    New logging module for internal and (optionally) external use
    Automatically coloured status level if we're attached to a terminal
    Default rootpy logging level to INFO unless os.environ['DEBUG'] is present
    Redirecting ROOT's errors as python exceptions    
    Add a `log` symbol to each subpackage    
    Add @log.trace() decorator which can be used to log function entry/exit/duration
    Add log.showstack() to log current stack whenever a message is emitted by `log`
    If there is no logging handler when the first message is emitted, automatically add one
    Automatically log python stack trace if there is a segfault    

rootpy.compiled:
    New!
    Adds an interface for compiling C++ code on demand with CompileMacro
    Add support for inline C++ code definitions

    rootpy.compiled.register_file("mycode.cxx", ["mysymbol"]) then 
        rootpy.compiled.mysymbol will be generated when requested.
        mycode.cxx is located relative to the module where register_file is called
    rootpy.compiled.register_code(".. C++ source code ..", ["mysymbol"])
        .. same as above but without needing a cxx file on disk

rootpy.memory:
    Add log.showdeletion() to show TObject cleanup
    keepalive: function to ensure objects are kept alive exactly as long as needed

rootpy.util.hook:
    Add ability to hook ROOT methods and append properties/methods to existing classes

Misc

bugfixes:
    Fix #49. Don't require python>=2.6 for install, otherwise we get python3.
    Check for sys.version < (2, 6) in setup.py
    Eliminate ipython printing (Bool_t)1 when root starts up
    Emit an error wherever the diaper pattern is used
    Sanitize ROOT's message output to ascii, using repr() if it isn't.

general improvements:
    Defer configuring defaults until finalSetup (#74)
    Switch to pyparsing for C++ template parsing
    Use XDG base directory specificiation
    Add defaults.extra_initializations for further ROOT setup
    Add userdata.BINARY_PATH, unique per (arch, rootversion)
    Use .cache/rootpy/{arch}-{rootversion}/{modules,dicts} to store generated binaries
    defaults: Disable AutoDict generation
    Introduce rootpy/util/quickroot which can get to vital root symbols without finalSetup
        (10x speed improvement in import time)
    Implement TPyDispatcherProcessedEvent using rootpy.compiled
    Falling back to batch mode should be a WARNING not ERROR
    Numpy code is now moved to the rootpy/root_numpy repository
    Use hash of unique name rather than generating a UUID for dictionary shared object name

new externs:
    Add extern/pyparsing.py
    Add extern/byteplay
    Add module_facade
    Add inject_closure_values to close over global variables

docs:
    Add logger documentation
    Sphinx: Introduce ipython highlighting
    Document a bit more about python's vanilla logging
    Update STL docs
    Add note in CONTRIBUTING.rst about debug python builds

@pwaller
Copy link
Member Author

pwaller commented Feb 21, 2013

@cdeil, @ndawe, @ekfriis ping. This issue is reasonably straightforward to address, do you think this is a good idea? If it just seems like busiwork, we can just close this issue.

I don't want to leave it outstanding for much longer either way.

@cdeil
Copy link
Contributor

cdeil commented Feb 21, 2013

This is all from my side:

general improvements:
    Automatic testing of each commit / pull request on travis-ci
    PEP8 Python code style compliance

@ekfriis
Copy link
Member

ekfriis commented Feb 21, 2013

From me, since 0.6, there is not so much:

bugfixes:
register HistStack with class registry correctly

general improvements:
add TitleView class to plotting.views functionality

As an aside, I have some ideas on how to make the "views" functionality
more user-friendly and pythonic. I find them very useful but I don't think
they are particularly well designed. I'll submit an issue on it once the
Moriond rush is over...

Evan

On Thu, Feb 21, 2013 at 12:47 PM, Christoph Deil
notifications@github.comwrote:

This is all from my side:

general improvements:
Automatic testing of each commit / pull request on travis-ci
PEP8 Python code style compliance


Reply to this email directly or view it on GitHubhttps://github.com//issues/140#issuecomment-13885064.

@ndawe
Copy link
Member

ndawe commented Feb 22, 2013

Here's mine:

General Improvements:

  • Documentation
  • Unit tests
  • Rewrite registry code so magical imports are no longer required to make
    rootpy aware of what ROOT classes are subclassed in rootpy.
  • Alias ROOT CamelCase methods with snake_case methods.
  • Improvements to the setup.py script.
  • New examples for using Trees, Hists, etc.
  • Make name and title properties for Objects.

scripts:

  • Use argparse (argparse is now in rootpy.extern)
  • Unify scripts into one rootpy script
  • Remove scripts that are still WIP
  • Use the new rootpy logger
  • Your roosh command history is saved and can be searched.
  • Multi-canvas and multi-file support in roosh.
  • Improvements to the root2hdf5 script, that now uses root_numpy for faster
    conversion to HDF5.

rootpy.tree:

  • Make root_numpy an optional dependency and remove copy from rootpy
  • Reading branches on demand: Only call GetEntry on branches that are
    accessed.
  • Add support for branches of array types.
  • Improvements to the documentation.
  • The categories module is rewritten and now properly parses the category
    syntax (unit tests are included).
  • Improvements to Tree.Draw
  • Dictionaries for branches of STL types are now compiled automatically.
  • Reverse order of axes expressions in Tree.Draw to match hist argument
    order so X:Y:Z maps onto filling along X:Y:Z instead of Z:Y:X.

rootpy.plotting:

  • Implement new fill_array function in root_numpy to fill histograms with
    NumPy arrays. Histograms in rootpy now have a fill_array method.
  • TStyle is now subclasses in rootpy as Style. Styles can be used at
    context managers using the "with" statement.
  • Add the official ATLAS style and example.
  • Hist2Ds can be "ravel()"ed, like NumPy's ravel() method that converts a 2D
    array into a 1D array by repeating the second axis along the first.
  • Add SetColor to all Plottables to set all colors simultaneously.
  • Improvements to the root2matplotlib module.
  • Make style attributes properties.
  • Add xaxis, yaxis, zaxis properties for Hist classes.
  • Plottable now gracefully handles deprecation of properties.

rootpy.context:

  • Add preserve_current_directory context manager

rootpy.stl:

  • Compiling arbitrary templated types.

rootpy.util.cpp:

  • New module for parsing C++ syntax.

Misc:

  • New logo design

@pwaller
Copy link
Member Author

pwaller commented Feb 22, 2013

Okay, now we've got this information, what to do with it? It could just stay in this thread and we can link to it (and/or #139), or we can copy it into a WHATSNEW.

Any thoughts/feelings?

@ndawe
Copy link
Member

ndawe commented Feb 22, 2013

Let's make a WHATSNEW, something like:

https://github.com/scikit-learn/scikit-learn/blob/master/doc/whats_new.rst

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants