{"action":"created","issue":{"url":"https://api.github.com/repos/letsencrypt/boulder/issues/28","labels_url":"https://api.github.com/repos/letsencrypt/boulder/issues/28/labels{/name}","comments_url":"https://api.github.com/repos/letsencrypt/boulder/issues/28/comments","events_url":"https://api.github.com/repos/letsencrypt/boulder/issues/28/events","html_url":"https://github.com/letsencrypt/boulder/pull/28","id":60613803,"number":28,"title":"Refactor to be more modular","user":{"login":"bifurcation","id":75597,"avatar_url":"https://avatars.githubusercontent.com/u/75597?v=3","gravatar_id":"","url":"https://api.github.com/users/bifurcation","html_url":"https://github.com/bifurcation","followers_url":"https://api.github.com/users/bifurcation/followers","following_url":"https://api.github.com/users/bifurcation/following{/other_user}","gists_url":"https://api.github.com/users/bifurcation/gists{/gist_id}","starred_url":"https://api.github.com/users/bifurcation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bifurcation/subscriptions","organizations_url":"https://api.github.com/users/bifurcation/orgs","repos_url":"https://api.github.com/users/bifurcation/repos","events_url":"https://api.github.com/users/bifurcation/events{/privacy}","received_events_url":"https://api.github.com/users/bifurcation/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-03-11T05:46:01Z","updated_at":"2015-03-11T14:47:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/letsencrypt/boulder/pulls/28","html_url":"https://github.com/letsencrypt/boulder/pull/28","diff_url":"https://github.com/letsencrypt/boulder/pull/28.diff","patch_url":"https://github.com/letsencrypt/boulder/pull/28.patch"},"body":"This PR restructures boulder to have a more modular structure.  There are separate Go modules for each of the functional components (RA, VA, CA, etc.), one for common objects used to interface between modules, and one for the AMQP-RPC interface.  There's also now a specific directory for executables, curretntly `cmd/boulder-start` and `cmd/activity-monitor`.\r\n\r\nThis new layout makes it abundantly clear where tests are needed (`go test -cover github.com/letsencrypt/boulder/...`), and should make development a little easier.  Another nice feature is that by not building to a single unitary module, we are now able to make, say, a VA executable that doesn't contain any code for the CA or RA, just the AMQP-RPC interfaces to them.  This seems like a win from a security isolation point of view."},"comment":{"url":"https://api.github.com/repos/letsencrypt/boulder/issues/comments/78277265","html_url":"https://github.com/letsencrypt/boulder/pull/28#issuecomment-78277265","issue_url":"https://api.github.com/repos/letsencrypt/boulder/issues/28","id":78277265,"user":{"login":"jcjones","id":518542,"avatar_url":"https://avatars.githubusercontent.com/u/518542?v=3","gravatar_id":"","url":"https://api.github.com/users/jcjones","html_url":"https://github.com/jcjones","followers_url":"https://api.github.com/users/jcjones/followers","following_url":"https://api.github.com/users/jcjones/following{/other_user}","gists_url":"https://api.github.com/users/jcjones/gists{/gist_id}","starred_url":"https://api.github.com/users/jcjones/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcjones/subscriptions","organizations_url":"https://api.github.com/users/jcjones/orgs","repos_url":"https://api.github.com/users/jcjones/repos","events_url":"https://api.github.com/users/jcjones/events{/privacy}","received_events_url":"https://api.github.com/users/jcjones/received_events","type":"User","site_admin":false},"created_at":"2015-03-11T14:47:19Z","updated_at":"2015-03-11T14:47:19Z","body":"I am good with this changeset; I branched it to the local LetsEncrypt/Boulder repo and opened PR #29 to include a Travis/Coveralls update. I recommend merging PR #29 when you're ready and closing this PR.\r\n\r\nThanks, @bifurcation!"}}