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

Cannot compile a project with sesterl_stdlib but without sesterl_testing #13

Closed
michallepicki opened this issue Jun 2, 2021 · 2 comments · Fixed by #18
Closed

Cannot compile a project with sesterl_stdlib but without sesterl_testing #13

michallepicki opened this issue Jun 2, 2021 · 2 comments · Fixed by #18
Projects

Comments

@michallepicki
Copy link
Contributor

michallepicki commented Jun 2, 2021

Hello!

When compiling this project (edit: that was at commit d33db11c533513c24ce26225dbbf380bec552ad8) I am getting the following output:

$ rebar3 sesterl compile
===> Verifying dependencies...
===> Sesterl deps: sesterl_stdlib (at: /home/michal/projects/test_sesterl_proj/_build/default/lib/sesterl_stdlib)
===> Compiling Sesterl programs (command: "sesterl build ./ -o ./_generated -p sesterl_stdlib:/home/michal/projects/test_sesterl_proj/_build/default/lib/sesterl_stdlib") ...
! [Build error] package 'sesterl_testing' not found in:
  - sesterl_stdlib (/home/michal/projects/test_sesterl_proj/_build/default/lib/sesterl_stdlib)
===> Failed to compile Sesterl package(s)

Is this expected behavior? I would imagine that test dependencies of my package's dependencies should be expected not to be present (and I think they will not get downloaded by rebar3 so the test files of dependencies should also not be compiled when compiling the parent project)

@gfngfn
Copy link
Owner

gfngfn commented Jun 3, 2021

Thank you for trying Sesterl!

No, this behavior is not expected, and I can reproduce the error. I have to fix this.

I would imagine that test dependencies of my package's dependencies should be expected not to be present (and I think they will not get downloaded by rebar3 so the test files of dependencies should also not be compiled when compiling the parent project)

Ah, probably your guess is correct. The current implementation of Sesterl compiles tests of all the projects as well as source files when rebar3 sesterl compile is invoked. And this behavior requires test dependencies of child projects to be present when compiling parent projects.

The package sesterl_stdlib came to depend on sesterl_testing a few weeks ago, and this newly reveals the problem.

A simple workaround is to treat all test dependencies as source dependencies (although this is of course not very desirable in that it compiles modules that are only for tests as if they were sources):

 package: "test_sesterl_proj"

 source_directories:
   - "src"

 main_module: "App"
 
 dependencies:
   - name: "sesterl_stdlib"
     source:
       type: "git"
       repository: "https://github.com/gfngfn/sesterl_stdlib"
       spec:
         type: "branch"
         value: "master"
+  - name: "sesterl_testing"
+    source:
+      type: "git"
+      repository: "https://github.com/gfngfn/sesterl_testing"
+      spec:
+        type: "branch"
+        value: "master"

 erlang:
   output_directory: "./_generated"

I will fix this issue. Thank you for reporting!

@gfngfn gfngfn added this to To Implement [Ease][Importance] in Sesterl Jun 3, 2021
@gfngfn gfngfn moved this from To Implement [Ease][Importance] to In Progress in Sesterl Jun 4, 2021
@gfngfn gfngfn closed this as completed in #18 Jun 4, 2021
@gfngfn gfngfn moved this from In Progress to Done in Sesterl Jun 4, 2021
@michallepicki
Copy link
Contributor Author

Thank you, confirmed fixed

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

Successfully merging a pull request may close this issue.

2 participants