Open ducdetronquito opened 2 years ago
I have the same error and patching deps.zig
following @ducdetronquito step fixed it.
in zigmod_base
, this line and this line should not point to the same file. the latter is for the use case of making a "library" in the sense a package that others may depend on. thus you may depend on the internal package yourself by doing @import("zigmod_base")
.
for your use case however it appears, given the edit you made, that what you want is for this line to be removed and this line be changed to say root_dependencies:
. after those changes rerunning zigmod fetch
should give you the deps.zig
you desire. hope this helps :)
Hi @nektro !
I don't understand you first paragraph, because in this case both zigmod_base
and zigmod_dep
are libraries.
I will try to describe my actual situation and not an example, maybe it will be more clear !
I edited the zig.mod files of each libraries following your advice of the second paragraph.
(I read the doc but I still don't understand the difference between a dependency and a root_dependency :/)
As a result, I can run tests (zig build test
) for h11
but I can't for requestz
because the compiler does not find the h11
package.
Here is the zig.mod files of each libraries:
# http zig.mod
id: a2vh8na282lel0as4l57ibmjje9oqt2o2fajm5hofpsbqoa8
name: http
main: src/main.zig
license: 0BSD
description: HTTP core types for Zig 🦴
dependencies:
# h11 zig.mod
id: 7noqknvqkyyup91axamyzfiet5r41k9apsb9wzbn9ay3l2jc
name: h11
license: 0BSD
description: I/O agnostic HTTP/1.1 implementation for Zig 🦎
root_dependencies:
- src: git https://github.com/ducdetronquito/http branch-release/0.2.0
# requestz zig.mod
id: 86gq5kz04nyy4e7eq2njytvqivd2unre6i965ol3p5gz7cw3
name: requestz
license: 0BSD
description: HTTP client for Zig 🦎
root_dependencies:
- src: git https://github.com/nektro/iguanaTLS commit-d49c382
- src: git https://github.com/MasterQ32/zig-network commit-b9c5282
- src: git https://github.com/ducdetronquito/http branch-release/0.2.0
- src: git https://github.com/ducdetronquito/h11 branch-release/0.2.0
What am I missing ^^ ?
Thanks in advance, and have a nice day !
After toying a bit, here are the zig.mod files that make each library importable from another library along with its dependencies, and being able to run tests on each library.
# http zig.mod
id: a2vh8na282lel0as4l57ibmjje9oqt2o2fajm5hofpsbqoa8
name: http
main: src/main.zig
license: 0BSD
description: HTTP core types for Zig 🦴
dependencies:
# h11 zig.mod
id: 7noqknvqkyyup91axamyzfiet5r41k9apsb9wzbn9ay3l2jc
name: h11
license: 0BSD
description: I/O agnostic HTTP/1.1 implementation for Zig 🦎
root_dependencies:
- src: git https://github.com/ducdetronquito/http branch-release/0.2.0
dependencies:
- src: git https://github.com/ducdetronquito/http branch-release/0.2.0
# requestz zig.mod
id: 86gq5kz04nyy4e7eq2njytvqivd2unre6i965ol3p5gz7cw3
name: requestz
license: 0BSD
description: HTTP client for Zig 🦎
root_dependencies:
- src: git https://github.com/nektro/iguanaTLS commit-d49c382
- src: git https://github.com/MasterQ32/zig-network commit-b9c5282
- src: git https://github.com/ducdetronquito/http branch-release/0.2.0
- src: git https://github.com/ducdetronquito/h11 branch-release/0.2.0
dependencies:
- src: git https://github.com/nektro/iguanaTLS commit-d49c382
- src: git https://github.com/MasterQ32/zig-network commit-b9c5282
- src: git https://github.com/ducdetronquito/http branch-release/0.2.0
- src: git https://github.com/ducdetronquito/h11 branch-release/0.2.0
Could you explain me why I must define both dependencies
and root_dependencies
?
so since all of the manifests you described are libraries, you want to set main:
to be the entry point of the package, and remove root_dependencies:
then in any testing code you import the package by the name you set in name:
Unfortunately, doing that put me into the same situation described in my first comment of this issue: importing a dependency by name crashes when running zig build test
.
do you have a copy of your build.zig?
https://github.com/nektro/zig-double this is an example repo that shows off the structure i explained above
https://github.com/nektro/zig-double this is an example repo that shows off the structure i explained above
Thanks I will have a look at it :)
how'd it go? (happy to chat on discord too)
Hi @nektro
Not very far as I have not much time to work on Zig these days... I keep you in touch when I will work on it again !
It seems that the use of the term "root_dependencies" is not very intuitive, and its difference with "dependencies" is not clearly described in the documentation :-(
Hi @nektro! I think I reproduced the same bug. I have a very simple program https://github.com/sakateka/psm, and I needed to format the time in it. I decided to try zigmod (download the latest release because the build is falling) and zig-time. I went through the tutorial, added the necessary dependency, made a `zigmod fetch`, tried to build and got an error ``` ./src/main.zig:3:14: error: unable to find 'time' const time = @import("time"); ^ psm...The following command exited with error code 1: /home/user/zig/zig-linux-x86_64-0.10.0-dev.745+c6cd919a1/zig build-exe /home/user/nohup/psm/src/main.zig --cache-dir /home/user/nohup/psm/zig-cache --global-cache-dir /home/user/.cache/zig --name psm --enable-cache error: the following build command failed with exit code 1: /home/user/nohup/psm/zig-cache/o/30ee4348280de942d92a0553f7eff9cb/build /home/user/zig/zig-linux-x86_64-0.10.0-dev.745+c6cd919a1/zig /home/user/nohup/psm /home/user/nohup/psm/zig-cache /home/user/.cache/zig ``` It looks like in deps.zig the necessary packages were not added ``` rg -A2 'const packages' deps.zig 75:pub const packages = &[_]Package{ 76-}; 77- ``` After manual editing of deps.zig, the build was successful ``` rg -A2 'const packages' deps.zig 75:pub const packages = &[_]Package{ 76- package_data._iecwp4b3bsfm, 77-}; ```
Hi @nektro ,
I think I encountered a bug or it can be just be me misusing zigmod !
Steps to reproduce: I created a small library zigmod_dep that provide an
add
function. (To create the library, I juste usedzig init-lib
andzigmod init
)I created an other library zigmod_base that uses
zigmod_dep.add
. (To create the library, I juste usedzig init-lib
andzigmod init
)When running the tests of
zigmod_base
, it does not find thezigmod_dep
package and crashes with the following error:To fix the error, and be able to compile I just patched
deps.zig
inzigmod_base
as such:I hope I have clear enough to help you reproduce it :)