Closed jschlatow closed 3 years ago
The api archives are not needed for goa run
. It is happy with the downloaded binaries. Hence, if the APIs (that were used to produce the downloaded binaries) are missing, goa does not complain in this step.
When publishing, however, all sources including the apis must be published, in particular to ensure the compliance to open-source licenses that require distributing software in a form that can actually be built. Hence the failure.
Now the question is, how can a user resolve this situation? Do you have an idea how goa could assist best?
What about adding a subcommand goa download
for acquiring the missing archives (or integrate this into the publish subcommand)?
I think the latter - attempting the download of missing APIs as part of the publish step - would be very convenient.
Would you like to give implementing this a try?
I'll have a look.
@nfeske I believe commit c1ea266 should suffice. It triggers the download of missing dependencies just before the actual publishing.
That was quick! Thank you @jschlatow. Merged to master.
I tried to extend the unix shell a bit and noticed that some api archives are reported missing as soon as I run
goa publish
. I believe the api archives are automatically downloaded, however, if goa is unable to pull a certain archive once it seems to forget some dependencies. I'm able to reproduce this issue with the following modifications on theintro/unix_3rd
in goa-playground:var
directory to start on a clean slatealex-ab/src/which
topkg/unix_3rd/archives
set version(alex-ab/src/which) 2021-02-22
to.goarc
goa add-depot-user alex-ab --depot-url https://depot.genode.org --pubkey-file /path/to/alex-ab/pubkey
goa run
- this will fail on downloading https://depot.genode.org/alex-ab/api/libc/2021-02-22.tar.xzgoa run
again - this will succeedgoa publish
will report a bunch of missing api archives