Crucible - Comment Search

  •  

Comment Results

Review Name Created Custom Fields Content
CR-1 22 Jan 2010

Thanks for setting up, please let me know how helpful you find the process and we can make a recommendations about how to use crucible in other parts of the project, but for now don't get to distracted from your task list.

CR-1 28 Jan 2010

I just don't know enough about the code design or the previous version to serve as an effective reviewer.

CR-1 29 Jan 2010 Ranking: Minor
Classification: Factually incorrect

Fixed in git - sendTo is actually pulled from the message if required, otherwise send to the pub-sub service.

test1-1 23 Jun 2010

This is just for testing license.

CR-6 25 Jun 2010

How about a link to the DAP protocol?

CR-6 25 Jun 2010

Add a doc string to PersisterClient class

CR-5 25 Jun 2010

The IStore interface is reasonable. I think it is the right choice to use the maybeDeferred wrapper function, especially if we are making a synchronous call. When we use the in memory key value store, the operations on the underlying dictionary should be synchronous.

CR-6 25 Jun 2010

I like this as a reminder to revisit later, but only if it's caught by buildbot. SImilar to TODO.

CR-6 25 Jun 2010

Now that we have a copy saved in local /tmp, it it worthwhile to diff against the original?

CR-6 28 Jun 2010

Probably shouldn't use dict as a content container. Even when the lcaarch + magnet integration message layer is fixed to support sending arbitrary binary data, sending application content as a nested Python dictionary with binary data as one of the values will not ('just') work. This might be an indication that there needs to be a common understanding among developers and designers on what data-structures/data-types are acceptable as application content.

CR-6 29 Jun 2010

It's pretty unusual to have multiple triple-quotes inside a single function. There is usual one and only one, and that one defines the function's docstring. I say this with the experience of looking at a lot of other "large/popular" python libs, no because it's "against the rules" or whatever.

CR-6 29 Jun 2010

This class has a couple methods with a fair amount of application logic inside of them. I'd say this is something that should be mostly avoided, because it results in better separation of concerns, as well as the benefit that stand-alone application logic can be unit-tested independent of the messaging code. I'm guilty of doing the same somewhat, but I'd say it's probably best to avoid this as much as possible.

CR-7 29 Jun 2010

It'd be a bit more readable to use the
from zope.interface import Interface, implements, Attribute

CR-7 29 Jun 2010

What's the magic mode string do?

CR-7 29 Jun 2010

This seems like a bug. A doxygen string inside parentheses? Deliberate?

CR-7 29 Jun 2010

Perhaps raise a not-implemented error or exception?

CR-8 29 Jun 2010

I saw this defined in the CAS code as well. Perhaps a common file?

CR-8 29 Jun 2010

Also saw this idiom in the CAS code. Why doxygen tags as parameters?

CR-8 29 Jun 2010

Debug code?

CR-8 29 Jun 2010

Consider using assert to validate the assumption

CR-8 29 Jun 2010

Move to unit tests.

CR-8 29 Jun 2010

An explanation would help - porcelain refers to the git implementation, as do most of the classes (blob, hash, object) so it'd help to have pointers to the git object model and perhaps explain that this reimplements same.

CR-8 29 Jun 2010

Why the empty test? Unfinished or deliberate?

CR-8 29 Jun 2010

If broken code, you might consider using the SkipTest instead of commenting it out.

CR-8 29 Jun 2010

Lots of pyflakes warnings on the code right now -

pyflakes ion | grep objstore
ion/data/datastore/objstore.py:430: local variable 'tree_id' is assigned to but never used
ion/data/datastore/objstore.py:437: local variable 'objectClassName' is assigned to but never used
ion/data/datastore/objstore.py:449: local variable 'id' is assigned to but never used
ion/data/datastore/objstore.py:547: local variable 'ind2' is assigned to but never used
ion/data/datastore/objstore.py:556: local variable 'obj' is assigned to but never used
ion/data/datastore/rdfstore.py:17: 'objstore' imported but unused
ion/data/datastore/test/test_objstore.py:36: local variable 'object_store2' is assigned to but never used
ion/data/datastore/test/test_objstore.py:48: local variable 'object_store2' is assigned to but never used
ion/data/datastore/test/test_rdfstore.py:18: 'objstore' imported but unused
ion/play/objstore/git.py:110: undefined name 'objstore'
ion/play/objstore/git.py:134: undefined name 'objstore'

CR-10 29 Jun 2010

Eight files is a very large review. Ug.

CR-10 29 Jun 2010

Should probably have a bit more file header - #!env plus usual doxygen metadata.

CR-10 29 Jun 2010

Non-obvious code, comments would be helpful.

CR-10 29 Jun 2010

Lots of empty doc strings.

CR-10 29 Jun 2010

Probably belongs in the test file.

CR-10 29 Jun 2010

What does this accomplish? Are you expecting an exception? Is there any way to validate the output?

CR-10 29 Jun 2010

Perhaps use skipTest instead of commenting them out?

CR-10 29 Jun 2010

Third definition I've seen of this today...

CR-10 29 Jun 2010

Move to test?

CR-10 29 Jun 2010

pyflakes complains of unused imports

CR-10 29 Jun 2010

Quite a few pyflakes warnings, including a redefinition of test_resource_state

CR-10 29 Jun 2010

On the client side, a docstring explaining how to use it? What's a resource? What isn't? Who should use this?

CR-10 29 Jun 2010

Since you've got read and write, perhaps also query and delete?

CR-10 29 Jun 2010

Should this be self.failUnlessEqual? Not sure what assertFalse does with two arguments.

CR-10 29 Jun 2010

Is this deprecated code then?

CR-10 29 Jun 2010

How does this differ from get_service_instance?

CR-5 29 Jun 2010

With this commented out, cruft key/value pairs will accumulate in cassandra. Need a way to cleanup after a test.

CR-5 29 Jun 2010

Worth a docstring to note that this is the base class for the tests further down the file.

CR-6 29 Jun 2010

Not easy to do, might be possible.

CR-6 29 Jun 2010

Will do.

CR-11 29 Jun 2010

Small nitpick: make this 4 spaces not 8

CR-11 29 Jun 2010

This method body is too long. Refactor it into smaller methods. The routines that add properties and add associations can be made their own methods.
A Pythonic way of doing this is to use a leading underscore to indicate that they are supposed to be private methods.

CR-5 29 Jun 2010

In reply to the objective:
The return value of a function can be specified in the doc-string of the functions definition in the interface (the Python language does not support declaring return type).
The Twisted developers rely heavily on interface & implementation doc-strings (documentation string of a function) to specify return value types; they make it very clear (via the doc-string) when a function returns a Deferred.
When the return type is not a Deferred or a built-in Python type/structure, then it is good to be able to specify the qualified object class (i.e. module.Class) or, if provided, the interface of the return object (e.g ion.data.datastore.cas.ICAStoreObject).

CR-11 29 Jun 2010

Good job.

Please add concise and descriptive docstrings to the classes. This provides the necessary summary view for people to understand this module.
Think of it as a marketing task.

I think a few of the methods should be refactored into smaller methods.

I'm not sure why you use classmethod for load and reference. I know you might want to use it for create as this follows
a factory pattern. There could be a good reason to use it for load and reference, but I don't know it.

Nice use of asserts. This is a good programming practice.

CR-11 29 Jun 2010

Add doc strings to all of the classes. The doc strings should explain the functionality of a class and any interactions
it has with other classes. The doc string should be one or two paragraphs.