{"action":"created","issue":{"url":"https://api.github.com/repos/apex/apex/issues/306","repository_url":"https://api.github.com/repos/apex/apex","labels_url":"https://api.github.com/repos/apex/apex/issues/306/labels{/name}","comments_url":"https://api.github.com/repos/apex/apex/issues/306/comments","events_url":"https://api.github.com/repos/apex/apex/issues/306/events","html_url":"https://github.com/apex/apex/issues/306","id":138567107,"number":306,"title":"Function groups","user":{"login":"ajcrites","id":1308273,"avatar_url":"https://avatars.githubusercontent.com/u/1308273?v=3","gravatar_id":"","url":"https://api.github.com/users/ajcrites","html_url":"https://github.com/ajcrites","followers_url":"https://api.github.com/users/ajcrites/followers","following_url":"https://api.github.com/users/ajcrites/following{/other_user}","gists_url":"https://api.github.com/users/ajcrites/gists{/gist_id}","starred_url":"https://api.github.com/users/ajcrites/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ajcrites/subscriptions","organizations_url":"https://api.github.com/users/ajcrites/orgs","repos_url":"https://api.github.com/users/ajcrites/repos","events_url":"https://api.github.com/users/ajcrites/events{/privacy}","received_events_url":"https://api.github.com/users/ajcrites/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/apex/apex/labels/feature","name":"feature","color":"009800"},{"url":"https://api.github.com/repos/apex/apex/labels/maybe","name":"maybe","color":"bfd4f2"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2016-03-04T19:40:45Z","updated_at":"2016-03-09T11:59:26Z","closed_at":null,"body":"Current directory structure for functions is `functions/{function,names}/src`. It would be useful to group functions together. My suggestion would be to have another optional directory that would specify the group such as:\r\n\r\n    functions/{group1,group2}/{fna,fnb,fnc}/src\r\n\r\nThe use case for this is that it is simpler to do deployments for groups of functions that share parameters with each other but not with other functions in the same project.\r\n\r\n    apex deploy group1 -e 'env_1=value'\r\n    apex deploy group2 -e 'env_2=value'\r\n\r\nThis is just a suggestion since there are a number of ways to achieve this like having separate projects entirely or maintaining your own list of function groups, but I think this would be a nice, intuitive feature."},"comment":{"url":"https://api.github.com/repos/apex/apex/issues/comments/194263106","html_url":"https://github.com/apex/apex/issues/306#issuecomment-194263106","issue_url":"https://api.github.com/repos/apex/apex/issues/306","id":194263106,"user":{"login":"tj","id":25254,"avatar_url":"https://avatars.githubusercontent.com/u/25254?v=3","gravatar_id":"","url":"https://api.github.com/users/tj","html_url":"https://github.com/tj","followers_url":"https://api.github.com/users/tj/followers","following_url":"https://api.github.com/users/tj/following{/other_user}","gists_url":"https://api.github.com/users/tj/gists{/gist_id}","starred_url":"https://api.github.com/users/tj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tj/subscriptions","organizations_url":"https://api.github.com/users/tj/orgs","repos_url":"https://api.github.com/users/tj/repos","events_url":"https://api.github.com/users/tj/events{/privacy}","received_events_url":"https://api.github.com/users/tj/received_events","type":"User","site_admin":false},"created_at":"2016-03-09T11:59:26Z","updated_at":"2016-03-09T11:59:26Z","body":"@cortesi I like that idea actually, keeps it nice and simple conceptually.\r\n\r\n@ajcrites I think for your case sub-projects almost make more sense, if it's getting into the world of having multiple levels of project.json-ish config, unless we took a similar approach to above, and just pick up project.json files wherever they happen to live in the tree.\r\n\r\nAs long as the rules are easy to grasp I'm totally down for stuff like this. I was toying with the idea of \"decomposing\" json into arbitrary files based on path https://github.com/tj/go-decompose, which is kind of similar to what @ajcrites is looking for.\r\n\r\nI'll give this some more thought but I think I'm +1. It would be cool to treat function.json's as an extension of project.json in this \"tree\", maybe then it'll be more natural to place these files where-ever they are needed, cascading down."}}