Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for ClojureScript #481

Open
tengstrand opened this issue Jul 3, 2024 · 0 comments
Open

Add support for ClojureScript #481

tengstrand opened this issue Jul 3, 2024 · 0 comments

Comments

@tengstrand
Copy link
Collaborator

We've decided to do a retake on how to support ClojureScript. The new solution will be less complex than the previous ideas and will only support a single workspace (as previously already suggested by some users back then). Here, I explain why we finally decided to go with the single workspace approach.

The plan is to add support for ClojureScript, mainly relying on shadow-cljs. This will be developed incrementally by continuously pushing to the main branch, which will build SNAPSHOT releases.

As a first step, we will ensure that the poly tool understands not only clj and cljc code but also cljs code by parsing it and storing it in the workspace structure. In the next phase, we will extend support for ClojureScript to various commands, with the check command likely being the first.

In the workspace.edn file, it will be possible to specify the Clojure dialect, clj or cljs, under each project in :projects. If not specified, the default will be clj. Both dialects will automatically handle cljc code. The projects will need to define their dialect (clj or cljs) so that the poly tool can decide which tree to consider when calculating the dependencies and affected parts of the workspace after a change. The components can contain namespaces that are purely clj, cljs or a mix of the two.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant