lein-polylith
lein-polylith copied to clipboard
Support for different name of the workspace interfaces
Is your feature request related to a problem? Please describe. When working with several workspaces that have the same :top-namespace in the workspace project.clj file, and we want to compile a component manually, the plugin can sometimes use the interfaces.jar from the other workspace, and the code will probably not compile as a result. Another problem that also can be solved with the suggested solution, is when :top-namespace is blank, but we want to compile the code with a top namespace, e.g. 'com.abc', then we can change the name from 'interfaces' to 'com.abc/interface' and we will get the expected result.
Describe the solution you'd like Add the attribute :workspace-name to the workspace project.clj. If not set, then use blank. Use 'top-namespace' + '.' + the given workspace name + '/interfaces' as the name of interfaces, in ws-root/interfaces/project.clj and in all components, the :dependency key for each project.clj file, e.g. [ws-name/interfaces "1.0"] or [com.abc.ws-name/interfaces "1.0"]
Additional context If the property 'workspace-name' is not set in project.clj on the workspace root, prefix interfaces with the name of the workspace root, otherwise with top-namespace.ws-root.
This will solve a problem in one of the existing production systems.