Contributing a solver

41 views
Skip to first unread message

keith.a...@gmail.com

unread,
May 10, 2018, 4:15:14 PM5/10/18
to julia-pomdp-users
Hello, I posted this message to https://gitter.im/JuliaPOMDP/Lobby as well, but maybe this is a better place for it:

I've been working on an incremental pruning POMDP solver at https://github.com/ajkeith/IncrementalPruning.jl that I think would be a good addition to the POMDPs.jl ecosystem. What's the process like for getting included in the solver section of POMDPs.jl? This is my first package (Julia or otherwise), so I'm still trying to figure out a few things. I have local unit tests working, but I'm still trying to figure out the CI testing. 

Thanks,

Andrew

Zachary Sunberg

unread,
May 10, 2018, 9:19:08 PM5/10/18
to julia-pomdp-users
Hi Andrew,

Yeah, we'd love to have a pure-julia implementation of the classic solver that you implemented! And it looks like you did a very thorough job! The tests look great.

We don't have very stringent requirements for solvers, but we do ask that you
1) Set up travis testing so that everyone can easily verify that the solver will work.
2) Set up a code coverage monitor like coverals.io, so everyone can see that you have written some tests (making this the norm results in a healthier software community)

Once those are set up, you can submit a pull request to POMDPs.jl with your package added to the list here: https://github.com/JuliaPOMDP/POMDPs.jl/blob/c7c4374f747ba64cd17e14a8e8a9d18ee1721452/src/constants.jl#L13
Once we merge that PR, users will be able to get your package with `POMDPs.add("IncrementalPruning")`.*

One question: Would you rather keep your package hosted under ajkeith on github or move it to the JuliaPOMDP organization? My initial thought is that it will be easier for all of us to maintain if it is under JuliaPOMDP.

Let me know if you need any help with specific parts of this. Really happy to get your contribution! It looks very good at first glance.

- Zach


*Note: we don't typically register solvers in the main Julia METADATA because we don't want to crowd their namespace with our acronyms, etc. Once Pkg3 becomes available, we will start using that to manage our packages.

Zachary Sunberg

unread,
May 11, 2018, 4:42:57 PM5/11/18
to julia-pomdp-users
Hi Andrew,

I just invited you to be a member of the JuliaPOMDP organization on github. If you accept that invitation and transfer ownership of the repository to JuliaPOMDP, then we can help setup travis and coveralls.

- Zach

keith.a...@gmail.com

unread,
May 14, 2018, 11:33:15 AM5/14/18
to julia-pomdp-users
Sounds great. I joined JuliaPOMDP and transferred the repository. 

I started the process of setting up CI using appveyor, but I was running into what I think are package version issues between the host test and the local test. 

Also, for the license, I based the structure for this solver on the QMDP.jl solver then modified it to use the classic incremental pruning algorithm from the literature, so I included the copyright from the Stanford Intelligent System Laboratory in the license. Not sure what the proper way to handle that is. 

Thanks!

Andrew

Zachary Sunberg

unread,
May 15, 2018, 7:37:08 PM5/15/18
to julia-pomdp-users
Hmmm, I have never used appveyor before. I would recommend switching to Travis CI - it is most commonly used by the Julia community.

You can change the copyright to only include your name, since you wrote it; I don't think it's necessary to include SISL.

- Zach

keith.a...@gmail.com

unread,
May 16, 2018, 11:44:20 AM5/16/18
to julia-pomdp-users
Okay sounds good, I made a few changes and added the Travis CI yaml file. I made a new branch (publication) so I could make sure the ci testing was working before merging it into master, but now that the package is in JuliaPOMDP it looks like I can't push directly to it. 

I'm still trying to wrap my head around the development workflow: should I fork JuliaPOMDP/IncrementalPruning.jl back to my own github and work from there until I'm ready to make a PR to JuliaPOMDP? Or are there some group permissions that would allow me to push commits directly to the publication branch on JuliaPOMDP and then make a PR from that branch to master? Also, it looks like JuliaPOMDP/IncrementalPruning.jl is not active on Travis-CI and I don't have permissions to activate it (maybe that will happen automatically once I push the commit with the travis.yml?)

Thanks for the help!

Andrew

Zachary Sunberg

unread,
May 16, 2018, 2:16:41 PM5/16/18
to julia-pomdp-users
Hi Andrew,

You should have the ability to push directly to JuliaPOMDP/IncrementalPruning.jl. Can you send me the error that you are getting so that I can see what might be going wrong. The typical workflow for JuliaPOMDP members is as you described - create a branch in the JuliaPOMDP repo and then either merge it directly or submit a PR if you would like code review (not required, but often helpful).

It looks like IncrementalPruning might actually just work already on Travis once you commit to it: https://travis-ci.org/JuliaPOMDP/IncrementalPruning.jl. Are you signed into Travis with your github account - I believe that should give you the proper permissions (sometimes travis is a little hard to navigate, though)

Sorry about the confusion - we are also figuring all this collaboration stuff out as we go :)

- Zach


keith.a...@gmail.com

unread,
May 16, 2018, 4:42:15 PM5/16/18
to julia-pomdp-users
No worries - it actually looks like it was a configuration problem on my end. For posterity, when I tried to push my commit, the error I was getting was:

error: The requested URL returned error: 403 while accessing [url]
fatal: HTTP request failed

The problem was that I'm on a windows machine and my credentials were messed up: https://stackoverflow.com/questions/15381198/remove-credentials-from-git. Once I fixed them, everything worked fine. (Although it did make me reconsider making the switch to linux...)  

Build and coverage are both looking good, I'll be working on adding documentation in the next few days. 

Thanks!

Andrew

Zachary Sunberg

unread,
May 22, 2018, 4:06:22 PM5/22/18
to julia-pomdp-users
Hey Andrew,

Once you are ready, you can submit a PR like this one: https://github.com/JuliaPOMDP/POMDPs.jl/pull/186 to add the solver to POMDPs.jl

We'll wait to tag a new POMDPs.jl version until IncrementalPruning is added.

- Zach

(btw I totally recommend switching to linux for open-source development. It is an environment built around the goal of sharing free software, and ubuntu is well-supported, so it is not too difficult :) )

keith.a...@gmail.com

unread,
May 22, 2018, 9:39:06 PM5/22/18
to julia-pomdp-users
Great, thanks for the model. I went ahead and submitted the PR.
Reply all
Reply to author
Forward
0 new messages