{"action":"created","issue":{"url":"https://api.github.com/repos/pmd/pmd/issues/938","repository_url":"https://api.github.com/repos/pmd/pmd","labels_url":"https://api.github.com/repos/pmd/pmd/issues/938/labels{/name}","comments_url":"https://api.github.com/repos/pmd/pmd/issues/938/comments","events_url":"https://api.github.com/repos/pmd/pmd/issues/938/events","html_url":"https://github.com/pmd/pmd/issues/938","id":299982141,"number":938,"title":"[ui] About the development of the designer","user":{"login":"oowekyala","id":24524930,"avatar_url":"https://avatars0.githubusercontent.com/u/24524930?v=4","gravatar_id":"","url":"https://api.github.com/users/oowekyala","html_url":"https://github.com/oowekyala","followers_url":"https://api.github.com/users/oowekyala/followers","following_url":"https://api.github.com/users/oowekyala/following{/other_user}","gists_url":"https://api.github.com/users/oowekyala/gists{/gist_id}","starred_url":"https://api.github.com/users/oowekyala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oowekyala/subscriptions","organizations_url":"https://api.github.com/users/oowekyala/orgs","repos_url":"https://api.github.com/users/oowekyala/repos","events_url":"https://api.github.com/users/oowekyala/events{/privacy}","received_events_url":"https://api.github.com/users/oowekyala/received_events","type":"User","site_admin":false},"labels":[{"id":628848190,"url":"https://api.github.com/repos/pmd/pmd/labels/a:RFC","name":"a:RFC","color":"0e8a16","default":false},{"id":759865400,"url":"https://api.github.com/repos/pmd/pmd/labels/in:ui","name":"in:ui","color":"95edd7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-02-24T23:33:15Z","updated_at":"2018-02-27T14:08:04Z","closed_at":null,"author_association":"MEMBER","body":"Some of the components of the designer are not directly related to the core logic of the designer, and could be moved out into libraries that are developed separately. I'm talking specifically about the new persistence logic, and the code area to some extent, but some other future components could be externalised too \r\n\r\nThis would be nice to speed up development of the designer, so that improvements to these components, which wouldn't directly affect the UX or features of the designer, could be made without the need to necessarily pass code review on this repo, which puts an unnecessary burden on the maintainers.\r\n\r\nIf we decide to move out some pieces, and if they're worth a specific library, the best way would be to version them with Maven, and publish them in the central repo. Some of the most pmd-specific components could belong to pmd's group id, eg the code area, which is too pmd-specific to be really developed outside of PMD. Maybe a \"designer-tools\" artifact could do the trick\r\n\r\nAlso, I'm not familiar with how to publish to Maven, but I guess it may take some time, so maybe we'd have to use unamanaged dependencies for some time\r\n\r\nI also wanted to talk about the possibility of using components written in Scala. I'm working on a piece of code that we could use in the designer, but which really should be written outside of it (for the same reasons as above). I'd love to write it in Scala, and I figured since we already ship the Scala standard lib with our binary distributions, making the designer depend indirectly on a Scala runtime environment would not be a burden so long as the version matches that of pmd-scala.\r\n\r\n@adangel @jsotuyod  Would you be ok with that? What would be your preferred development process for the designer? "},"comment":{"url":"https://api.github.com/repos/pmd/pmd/issues/comments/368889207","html_url":"https://github.com/pmd/pmd/issues/938#issuecomment-368889207","issue_url":"https://api.github.com/repos/pmd/pmd/issues/938","id":368889207,"user":{"login":"jsotuyod","id":802626,"avatar_url":"https://avatars3.githubusercontent.com/u/802626?v=4","gravatar_id":"","url":"https://api.github.com/users/jsotuyod","html_url":"https://github.com/jsotuyod","followers_url":"https://api.github.com/users/jsotuyod/followers","following_url":"https://api.github.com/users/jsotuyod/following{/other_user}","gists_url":"https://api.github.com/users/jsotuyod/gists{/gist_id}","starred_url":"https://api.github.com/users/jsotuyod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsotuyod/subscriptions","organizations_url":"https://api.github.com/users/jsotuyod/orgs","repos_url":"https://api.github.com/users/jsotuyod/repos","events_url":"https://api.github.com/users/jsotuyod/events{/privacy}","received_events_url":"https://api.github.com/users/jsotuyod/received_events","type":"User","site_admin":false},"created_at":"2018-02-27T14:08:04Z","updated_at":"2018-02-27T14:08:04Z","author_association":"OWNER","body":"@oowekyala I think we can achieve that modularization just using proper packages. No need to split it into separate projects.\r\n\r\nAs for #801 in particular, yes, it was a little too large to get it easily reviewed. ~3000 added lines, ~900 removed is a little too much. I usually try to keep it at ~600 LoCs so that it's reviewable in depth well within an hour. Maybe the change could have been split into smaller chunks (the framework and it's usage on the the rest of the system could have been a plausible split; just as it would have been if they were part of separate repositories; but possibly not the only one).\r\n\r\n> Until now I have actively avoided doing this, and prefer proposing PRs one-by-one, after the previous is merged, so that I can rebase to clean the history until the last minute. \r\n\r\nThat's what I do. I have the nested feature branches locally and submit the PRs one by one. Just let us know if a given PR is part of a larger changeset and should be prioritized.\r\n\r\nAs for Scala, I'm not too familiar with it, but I'm not opinionated. I do wonder if this would be a barrier of entry to new contributors....\r\n\r\nIf it's just a thing for fun, maybe something truly independent, more one-off (ie: the ruleset migration tool for PMD 6) could be a better fit within PMD."}}
{"actor":{"display_login":"jsotuyod"}}