Skip to content
This repository has been archived by the owner on Aug 12, 2022. It is now read-only.

Amazon*.jl #10674

Closed
samoconnor opened this issue Aug 10, 2017 · 7 comments
Closed

Amazon*.jl #10674

samoconnor opened this issue Aug 10, 2017 · 7 comments

Comments

@samoconnor
Copy link
Contributor

Hi @tkelman

I have 102 new AWS interface packages: https://github.com/JuliaAWS

Seems like a good use-case for Pkg3 sub-packages (see JuliaLang/Juleps#8 (comment), JuliaLang/Juleps#8 (comment)).

The question is, in the meantime, should I Pkg.register() them all?

Background info: JuliaCloud/AWS.jl@e2cb295#commitcomment-23534256

@aviks
Copy link
Member

aviks commented Aug 10, 2017

Couldn't these be separate modules in the same package? Do they absolutely need to be in the different packages?

@samoconnor
Copy link
Contributor Author

Is it possible to precompile individual submodules in a package? I can't see how to do that.
I've tried the structure below, but when I do using AWSSDK.ACM the entire AWSSDK module gets pre-compiled and I end up with a 14MB AWSSDK.ji file. That's too big when I'm trying to keep deployment container image sizes to a minimum (e.g. on Lambda).

AWSSDK.jl:

module AWSSDK

include("ACM.jl")
include("APIGateway.jl")
...
include("XRay.jl")
end

ACM.jl:

__precompile__()

module ACM
...
end

@samoconnor
Copy link
Contributor Author

samoconnor commented Aug 11, 2017

I've pushed the monolithic AWSSDK.jl to here : https://github.com/JuliaCloud/AWSSDK.jl
Perhaps, while we wait for Pkg3, a single package like this is the best compromise.
I guess users who have an issue with the .ji size (maybe only me?) are free to comment-out the include("Service.jl") lines they don't need to get a smaller build.

@tkelman
Copy link
Contributor

tkelman commented Aug 11, 2017

And are these completely autogenerated with no post-generation manual touchups? If the generation process doesn't take too long to run, seems like people who want things piecemeal could also locally run the generation script themselves to get the same pieces of code?

@samoconnor
Copy link
Contributor Author

samoconnor commented Aug 11, 2017

Yes, they are purely auto-generated.
The generator automatically fetches the source JSON files from github and caches them locally.
It takes about 1min to generate everything (currently it builds both the monolithic package and all the Amazon*.jl packages, so it could be made faster).

One possible impediment to users locally running the generation reliably is this: https://github.com/samoconnor/AWSCore.jl/blob/master/src/HTML2MD.jl
It runs a local NodeJS server to convert HTML to markdown (Currently Documenter.jl does not accept HTML embedded in markdown).

@tkelman
Copy link
Contributor

tkelman commented Aug 11, 2017

Guess you could maybe have an option for a no-docs build as one potential way to alleviate that concern?

@samoconnor
Copy link
Contributor Author

Package registration PR for AWSSDK.jl: #10816

@tkelman tkelman closed this as completed Sep 2, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants