Log of the #duraspace-ff channel on chat.freenode.net

Using timezone: Eastern Standard Time
* nbanks joins03:24
* kaarefc joins03:28
* kaarefc leaves05:51
* cbeer leaves07:28
* cbeer joins07:31
* VincentNG joins07:54
<pivotal-bot____>Vincent Nguyen added comment: "Pull request has been rebased with ffd0d74a9b2bf3115b50b35fb7b9b078f64f5224" https://www.pivotaltracker.com/story/show/4545805508:48
* ajs6f joins09:21
* jcoyne joins10:05
* ajs6f leaves10:12
* ajs6f joins10:18
<VincentNG>anyone know if there's a simple way to create a NodeType object? something like new NodeType()10:22
* jcoyne1 joins10:28
<ajs6f>new NodeType() {implement methods}… or are you looking for something else?10:29
I guess I'll start the hangout...10:30
* jcoyne leaves
* jcoyne1 leaves10:33
* barmintor joins10:35
<ajs6f>Well, that was a short hangout. It was just Eddie and me, and Eddie's connection from Shanghai failed rather quickly.10:37
Although it was quite clear while it lasted.
Are we going to do the standup at 11 Eastern, or are too many people out?10:38
<cbeer>i'm still out.10:39
<ajs6f>Okay. I've got Eddie back via Skype.10:42
<barmintor>We're all on the hangout (me, Ed and Dan)10:43
Where were you at ajs6f?
<ajs6f>I don't see any of you… in the Hangout in.
I'm in.
Can you invite me?
<barmintor>We've been trying unsuccessfully to dial Eddies in
<ajs6f>yeah, it worked for us briefly, but then we had to go to Skype,
<barmintor>what's the g+ acct I should be trying to invite, ajs6f?10:44
I'll end the hangout I'm in, because it's lonely.10:45
Eddie and I are talking about federating BagIt filesystems into the JCR.10:47
<barmintor>ajs6f: did you get that invite?10:49
Or not yet, anyway.
<ajs6f>Do you want to Skype me and Eddie in?10:50
<barmintor>we couldn't get eddie on skype
but i'll try again
How do you become able to participate in the hangout from skype?10:51
<ajs6f>I don't know...10:53
It's too bad. Eddie and I are having a great conversation. You guys really should be here.10:54
<barmintor>are you in a hangout right now?10:55
I can see that you were in one on G+, but there's no link to join
<ajs6f>Yeah, I shut that one. I can reopen it...?10:56
<barmintor>I re-invited you10:58
it should be in your g+ feed
<ajs6f>How do I look at my g+ feed?10:59
<barmintor>go to plus.google.com
<ajs6f>I'm just seeing "https://plus.google.com/explore"… !!!!11:01
<barmintor>VincentNG got in by following the links...11:02
<ajs6f>Thanks, VincentnG!
This should be interesting.11:04
<pivotal-bot____>Benjamin Armintor edited "Unit test frepo-http-api/FedoraRepository" https://www.pivotaltracker.com/story/show/4682303911:07
Are y'all hearing Eddie?11:15
* nbanks leaves11:20
* github-ff joins11:21
[fcrepo-object-serialization] ajs6f pushed 1 new commit to master: http://git.io/oiZA8w
fcrepo-object-serialization/master 4c5e518 ajs6f: Added new base abstract class for implementations to extend
* github-ff leaves
* github-ff joins11:22
[fcrepo-bagit-object-serialization] ajs6f pushed 1 new commit to master: http://git.io/Mz8qVQ
fcrepo-bagit-object-serialization/master c938277 ajs6f: Now using new base abstract class BaseFedoraObjectSerializer
* github-ff leaves
<ajs6f>I'm going to build a "master" cut of MODE and put it in our Maven repo, so we can use the latest bug fixes (especially the federation bugfix).11:23
* nbanks joins11:30
<pivotal-bot____>A. "Schwarmerei" Soroka added comment: "Starting this up again, with the plan of building MODE into our own Maven repo so that we can ta..." https://www.pivotaltracker.com/story/show/4603960111:33
* ajs6f leaves11:35
* VincentNG leaves11:39
* ajs6f joins11:41
* jcoyne joins11:45
<ajs6f>Heading out to the office. Back on IRC in a bit.11:49
* ajs6f leaves11:50
* jcoyne1 joins12:17
* jcoyne leaves12:18
* ajs6f joins12:32
CI question: in order to have a super-up-to-date MODE built in our Maven repo (and until MODE starts releasing snapshots) could I use the CIR systems we already have in place? MODE is available from an ordinary public Github repo.12:35
<cbeer>yes, i assume so.12:40
<ajs6f>Cool. What _is_ our current CI system— I know we've used several.
<cbeer>we're using jenkins for builds12:42
* VincentNG joins
<ajs6f>Great! Are we using individual logins (and where can I get one) or is there a joint fcrepo4 login?12:43
sign up and i'll empower you
Apparently, I already have an account (?).12:45
Except it doesn't show up in the list of users!12:48
cbeer: are you an admin for that system? Can you delete/reset the account under 'ajs6f'? I can't find a way to get a password reset...12:49
<jcoyne1>Robin is expecting a "migration path" for disseminators12:50
<ajs6f>Robin Ruggaber?
<cbeer>"don't use them"
<jcoyne1>that's what I said and she gave me a cross look.
<cbeer>and she's on the steering group and will ensure they have a migration path..
<ajs6f>I'll talk with her about that. My attitude is, we want to use them, we got to invest in building it out.
She understand that kind of logic.12:51
And it's not fair or smart to demand that the whole community spend to build out something that only a subcommunity wants.
<ajs6f>It's just the whole community's job to make it reasonably possible.
(By creating a great platform!)12:52
<cbeer>ajs6f: i don't see you on the jenkins server13:00
<ajs6f>yeah, me neither. But when I try to sign up with id 'ajs6f', I get "User name is already taken"… ?13:03
<cbeer>interesting, yeah. i can't force-register you either13:06
Maybe I'll do 'ajs6f2'
<cbeer>nah, i deleted you
the hard way
<ajs6f>Oh, cool, thanks.
Yep, now I'm in under 'ajs6f'13:07
we broke the datastreams list response
datastreams vs datastream
i guess that's the danger in using the jax-b responses for evaluating the response13:19
<ajs6f>It's always right when it's always right.
<barmintor>that sounds like the kind of thing we coud unit test13:24
<cbeer>i'm just going to write it into a IT test right now.. using regular expressions.13:26
you can hate me later.
huh. the test passes when run stand-alone.. but fails when i do it through mvn install..13:28
<ajs6f>Crud. How do I create a new build in Jenkins? The links I usually look for don't seem to be there?
<cbeer>oh, i know.
ajs6f: oh, i forgot to empower you
<ajs6f>POWER UP!
<cbeer>ok, now?13:29
(and, duh, the jax-b stuff was in a different module)
<ajs6f>Yay! I'm good. Thanks!
* github-ff joins13:33
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/pETLvw
fcrepo4/master 9fa6174 Chris Beer: fix get datastreams response tag to match fcrepo 3x
* github-ff leaves
<ajs6f>Tricky Jenkins: I need to specify a Maven settings file (containing the JBoss repos) but the settings file is part of the source itself. Anyone ever had to do that with Jenkins?13:34
Or maybe we could add the JBoss repos to the Jenkins node's global Maven settings.xml… do we have access to that?13:39
<bljenkins>Project fcrepo-fixity-corrupter build #27: STILL FAILING in 28 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity-corrupter/27/13:45
Project fcrepo-object-serialization build #5: SUCCESS in 1 min 55 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-object-serialization/5/13:46
Project fcrepo-bagit-object-serialization build #4: SUCCESS in 1 min 37 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-bagit-object-serialization/4/13:48
Project fcrepo-fixity build #106: SUCCESS in 3 min 8 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity/106/13:49
* travis-ci joins13:51
[travis-ci] futures/fcrepo4#295 (master - 9fa6174 : Chris Beer): The build has errored.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/ffd0d74a9b2b...9fa617448a9e
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5875277
* travis-ci leaves
* eddies joins13:53
* eddies leaves
* eddies joins
<barmintor>Quis mockiet ipsum Mockito, am I right?13:55
* nbanks leaves14:10
<bljenkins>Project fcrepo-kitchen-sink build #111: SUCCESS in 3 min 48 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/111/
<cbeer>Caused by: java.lang.ClassNotFoundException: org.fcrepo.generator.RdfGenerator14:19
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701) ~[tomcat-catalina-7.0.26.jar:7.0.26]
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546) ~[tomcat-catalina-7.0.26.jar:7.0.26]
at org.springframework.util.ClassUtils.forName(ClassUtils.java:258) ~[spring-core-3.2.0.RELEASE.jar:3.2.0.RELEASE]
* nbanks joins14:20
<ajs6f>Where is that arising?14:22
<cbeer>kitchen sink
it has a separate rest.xml
* github-ff joins
[fcrepo-kitchen-sink] cbeer pushed 1 new commit to master: http://git.io/_wpotw
fcrepo-kitchen-sink/master 0a1fca5 Chris Beer: rename beans
* github-ff leaves
<ajs6f>Is rdf-generator being pulled in ?
* kaarefc joins14:23
<cbeer>ajs6f: yeah, i think the bean was just renamed
i think i fixed it.14:24
<bljenkins>Project fcrepo-kitchen-sink build #112: SUCCESS in 3 min 55 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/112/14:26
javax.jcr.nodetype.ConstraintViolationException: No valid property definition on node '/objects/sufia:2j62s4855' with primary type 'nt:folder' and mixin types [ns001:object,ns001:owned] for the property: jcr:lastModified="2013-03-25T16:34:50.606Z" at
something must have changed, huh?
ERROR 18:26:34.457 (RepositoryNodeTypeManager) Node types were read from the system content, and appear to be inconsistent or invalid: repo
javax.jcr.nodetype.InvalidNodeTypeDefinitionException: Supertype 'ns001:resource' from type 'fedora:object' does not exist
Did it not pull the cnd correctly?
<cbeer>let me restart tomcat
and then you can tell me how to figure that out
<ajs6f>Poke it with a stick and see if it spits out nodes.14:29
<cbeer>same deal after a restart
<ajs6f>On startup?
let me just blow away the data store14:30
<ajs6f>Here, let's trade. I can look at that while you explain how my new ModeShape build on Jenkins is giving:
http://stacktrace.jenkins-ci.org/search?query=java.io.IOException: Cannot run program "mvn" (in directory "/home/tomcat/.hudson/jobs/modeshape/workspace"): error=2, No such file or directory
No such program as Maven?
Blow that datastore down!14:31
<cbeer>ok, seemingly ok with a new datastore14:33
<ajs6f>Hm. That's a little worrying. How would it become corrupt, and in what way?
<bljenkins>Project fcrepo-fixity-corrupter build #28: STILL FAILING in 28 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity-corrupter/28/
Project fcrepo-object-serialization build #6: SUCCESS in 2 min 6 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-object-serialization/6/14:34
<ajs6f>I'm going to change the Jenkins jobs for the serializatio modules to triggered, not timed.14:35
They're getting annoying.
<bljenkins>Project fcrepo-bagit-object-serialization build #5: SUCCESS in 2 min 10 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-bagit-object-serialization/5/14:37
Project fcrepo-fixity build #107: SUCCESS in 3 min 23 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity/107/14:38
* ff-github joins14:44
[fcrepo4-demo-hydra-app] cbeer force-pushed master from 8662912 to 2f95523: http://git.io/GZvGOQ
fcrepo4-demo-hydra-app/master cecd269 Justin Coyne: Mock up HSM being offline
fcrepo4-demo-hydra-app/master 23067eb Justin Coyne: Show audit logs on the admin page
fcrepo4-demo-hydra-app/master 65793a2 Justin Coyne: Admin can make more admins
* ff-github leaves
WARN 18:44:51.699 (JAXRSUtils) No operation matching request path "/fcrepo/rest/objects/sufia:bn999672v" is found, Relative Path: /sufia:bn999672v, HTTP Method: PUT, ContentType: application/x-www-form-urlencoded, Accept: application/xml,*/*;q=0.5,. Please enable FINE/TRACE log level for more details.
<ajs6f>Can we put an object ? Isn't that a modify?14:46
<cbeer>i think this was supposed to be an update14:49
and i don't see a commit that would have broken it14:50
<ajs6f>Right, that's what I meant.
I think it's just a stub now, because I didn't want to go redo the mess of query params from fcrepo3.
Which always seemed wrong to me anyway. Making mutations via query params? Not cool.
* ajs6f leaves14:55
* ajs6f joins15:00
Okay, found out why Jenkins wouldn't do the MODE build— it can't handle prebuild Maven invocations (even tho' it should be able to). Maybe some pathy weirdness, whatever. You gots to put all of your Maven goals into the main build step. (I first put "clean" into a pre-build. No dice.)15:03
<pivotal-bot____>A. "Schwarmerei" Soroka added "ModeShape BagIt federation connector" https://www.pivotaltracker.com/story/show/4708984315:12
<ajs6f>C-note: did you ever file this bug, or did it get resolved some other way? :15:13
* nbanks leaves15:24
* ajs6f leaves15:41
* ajs6f joins15:45
<pivotal-bot____>Vincent Nguyen finished "Unit test frepo-http-api/FedoraRepository" https://www.pivotaltracker.com/story/show/4682303915:53
Vincent Nguyen finished "Unit test frepo-http-api/FedoraNamespaces" https://www.pivotaltracker.com/story/show/46822973
* github-ff joins16:15
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/1RigrA
fcrepo4/master 8b1ff8e Chris Beer: remove @Consumes annotation from PUT /objects/{pid} to match POST
* github-ff leaves
<barmintor>VincentNG and I are talking about testing practices16:16
one way to test something like FedoraObject is to do deep mocks of nodes
another is to assign new values to some of the static helper functions for the test, according to the situation
IE, if you're testing the behavior of FedoraObject when FedoraTypeUtils#isOwned returns true16:17
you should reassign that node function to just be a stub that always returns true
the latter seems more like unit testing to me16:18
<cbeer>and just integration-test FedoraTypeUtils?
(because it is an integration shim anyway)
<barmintor>cbeer: yes
<cbeer>i like that more
<barmintor>treat it as a separately tested class
<ajs6f>I don't quite understand how this would get us out from under ahving to mock lots of JCR stuff...
Doesn't the behavior of the Node member of the FedoraObject still matter, a lot...?16:19
<barmintor>ajs6f: this is the thing- when we're unit testing FedoraObject, we want to make sure we have ways of assuming the JCR machinery works16:20
<barmintor>in the case above, FedoraObject is not responsible for finding out whether the node is owned or not
<barmintor>so its tests should be able to take that for granted
<barmintor>according to the needs of the test16:21
<ajs6f>So how about setLabel()? Is this applicable there?
* barmintor looks
it's debatable, since you're mocking the node in a fairly direct way16:22
<ajs6f>Is this kind of like, "More simple helper methods elswhere, fewer logic-rich methods in FedoraObject itself"?
<barmintor>Yeah, or alternately: "mock the helper methods where possible so your test doesn't end up mocking up a Node, a NodeTypeIterator, a NodeType, etc."16:23
<ajs6f>Oaky, I think I get it. That sonds real good to me. So we're kind of inserting simpler (easier-to-mock) abstractions between FedoraObject and the JCR?16:24
<barmintor>in the case of service proxies, we mock the whole proxy. The static Function helpers, I'm suggesting, are similarly mockable
<ajs6f>Yeah, definitely.
And with this intention in mind, we can probably pull more out of Datastream and FedoraObject into simpler, easier-to-mock classes.
FedoraJctTypes was a first draft, but it could expand into several classes of easily-mockable functionality.16:25
And thereby suck a lot of suckiness out of the core models.
<barmintor>yeah, having gone through the agony of trying to unit test your classes should point us to more testable and maintainable alternate approaches :)
<ajs6f>Hey— that's what let Eddie brag that we did so much so fast. He never bragged about its quality!16:26
<barmintor>I will say that those statically bound Function members are much more testable than statically bound and import methods
(assuming that they can be re-assigned from within the package)
<ajs6f>Wait— what? Those FUnction members are statically imported all over the place...?
Oh, do you mean because they are not methods?16:27
<barmintor>FedoraObject imports 4 of them
yes, b/c they are not static methods
<ajs6f>Oh, yeah. This is why I {heart} Guava.
Trying mightily to bring functional goodness to a hard land.16:28
<barmintor>well, this is what Scala and Guava are doing :)
We tried Scala. I got beaten over the head for it. Not trying that again for a while.
<barmintor>Not advocating, just observing the similarity :)
<ajs6f>You're totally right. Scala started from the beginning with that intention.16:29
<bljenkins>Project fcrepo-kitchen-sink build #113: SUCCESS in 2 min 45 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/113/
<ajs6f>Guava engenders a lot of boilerplate, but it's not Google's fault. And it gets some good things done, like being able to carry around functions.
<VincentNG>barmintor: so if i'm assuming that the node is owned for testing purposes, how do i stub a NodeType to returning FEDORA_OWNED?
<barmintor>VincentNG: So in your test, I would try to assign a dummy Function to the FedoraObject.isOwned static member16:30
(I *think* that will work)
that returns true or false according to what you want to test
<ajs6f>And if you're getting the nodetypes directly from the node in the object, we should probably have more helper-y type things to prevent you needing to do that. Mockable helper-y type things.16:31
<VincentNG>you mean in the FedoraObject class itself?
<barmintor>VincentNG: yes
<bljenkins>Project fcrepo-fixity build #108: SUCCESS in 2 min 54 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity/108/
* travis-ci joins16:43
[travis-ci] futures/fcrepo4#296 (master - 8b1ff8e : Chris Beer): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/9fa617448a9e...8b1ff8e033a2
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5879997
* travis-ci leaves
* ff-github joins16:44
[fcrepo4-demo-hydra-app] cbeer pushed 1 new commit to master: http://git.io/sW538w
fcrepo4-demo-hydra-app/master 6fd8dca Chris Beer: remove offline/online code
* ff-github leaves
* ajs6f leaves
* jcoyne leaves16:46
* jcoyne joins16:48
* ff-github joins17:02
[fcrepo4-demo-hydra-app] cbeer pushed 1 new commit to master: http://git.io/0aU1lA
fcrepo4-demo-hydra-app/master 8315cef Chris Beer: bump rubydora
* ff-github leaves
* VincentNG leaves17:24
* jcoyne leaves17:40
* jcoyne joins
* jcoyne1 joins17:51
* jcoyne leaves
* jonathangee leaves18:10
* jonathangee joins18:13
<pivotal-bot____>Vincent Nguyen finished "Unit test fcrepo-kernel/FedoraObject" https://www.pivotaltracker.com/story/show/4682655118:19
Vincent Nguyen delivered "Unit test frepo-http-api/FedoraRepository" https://www.pivotaltracker.com/story/show/46823039
Vincent Nguyen delivered "Unit test fcrepo-kernel/FedoraObject" https://www.pivotaltracker.com/story/show/46826551
Vincent Nguyen delivered "Unit test frepo-http-api/FedoraNamespaces" https://www.pivotaltracker.com/story/show/46822973
Vincent Nguyen added comment: "https://github.com/vnguyen745/fcrepo4/pull/new/unit-tests" https://www.pivotaltracker.com/story/show/4682655118:20
Vincent Nguyen added comment: "https://github.com/vnguyen745/fcrepo4/pull/new/unit-tests" https://www.pivotaltracker.com/story/show/46823039
Vincent Nguyen added comment: "https://github.com/vnguyen745/fcrepo4/pull/new/unit-tests" https://www.pivotaltracker.com/story/show/46822973
Vincent Nguyen edited "Unit test fcrepo-kernel/RepositoryService" https://www.pivotaltracker.com/story/show/46826735
Vincent Nguyen edited "Unit test fcrepo-kernel/DatastreamService" https://www.pivotaltracker.com/story/show/4682634718:21
* github-ff joins18:22
[fcrepo4] vnguyen745 opened pull request #43: Unit tests (master...unit-tests) http://git.io/TDEpWg
* github-ff leaves
<pivotal-bot____>Vincent Nguyen added comment: "https://github.com/futures/fcrepo4/pull/43" https://www.pivotaltracker.com/story/show/46823039
Vincent Nguyen added comment: "https://github.com/futures/fcrepo4/pull/43" https://www.pivotaltracker.com/story/show/46826551
Vincent Nguyen added comment: "https://github.com/futures/fcrepo4/pull/43" https://www.pivotaltracker.com/story/show/4682297318:23
* jcoyne1 leaves18:33
* jcoyne joins
* jcoyne leaves19:58
* jcoyne joins20:00
* jcoyne leaves
* jcoyne joins20:09
* jcoyne leaves20:11