-
Notifications
You must be signed in to change notification settings - Fork 0
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
Create an OLP Release #1
Comments
@rvirding (or anyone), if you've got links to the change in direction of the OTP team regarding release structure/scope, please share. |
I have asked my colleague Lukas who works there and will get back as soon as I know. |
Slow down a bit until we know where we want to go. Do we want:
Erlang/otp does 2 while elixir does 3, at least with brew. |
We can move the discussion from lfe to here. |
We should also discuss how we are going handle testing and documentation. |
Believe it or not, this is actually moving slowly :-) It looks like a lot, since there is some infrastructure set up to explore this problem space ... but it's very early stages; this repo and What it does do right now:
Current problems or things it doesn't do yet:
To answer your release questions:
As for testing ... is there a
This, of course, would be used for us as a pre-build sanity check. Post-build, we could do something similar that would assume the presence of our toolchain. However, testing a release by a user who has downloaded the release ... I don't have a quick answer for that ... and really, this would be the most important bit of testing. It's also the sort of testing we'd want to do on Travis CI, once the release is created ... |
Ah, and documentation ... I'll talk out loud to see where my thoughts on this are: Well, crap ... I have no idea.
|
Quick thoughts from my mobile:
|
For @rvirding's testing questions, I've created epic #20. I've updated this release ticket (#1) with a bullet item for the new epic. Feature #23 tracks what I suspect is really the essence of his concerns (providing users without our dev tool chain the means of testing a release after they download it). |
@yurrriq, my gut on adding EDoc support to lodox + 1
|
Okay, tickets galore created and updated. Back to some nitty-gritty stuff. As I get time today, I'm going to try to work on basic release-generating tasks ... and spend a lot of time looking at how various libraries included in OTP handle their own release needs (executables, docs, etc.). |
Big progress -- just confirmed LFE and Erlang work in a standalone install of the relase, with full access to LFE libraries, etc. |
I am still confused. :-) Reading through the README and the issues I get the impression that OLP is something the end LFE users clone olp and then use it to build their own LFE. This is not how OTP does it. The otp repo is not meant to be downloaded by users but it is used to build a release which is then distributed to users who can them build their Erlang/otp with it. So much of what is in the otp repo never reaches end users. This is how I think we should do it as well. If this is what is intended then I have misunderstood it. Sorry. P.S. I am not that much a rebar3 fan as by default it tends to put things in strange places, the _build/... tree, instead of where things "normally" are in a release. But maybe if we are using it to build a release which we then distribute it will work. |
P.P.S. I will not have that much time in the coming months to work on this. For good reasons. Currently I am working on an "LFE for Erlangers" course/tutorial which we will give internally next week. Then I have a little project for a client on translating C# code to LFE. Don't ask. Then in dec/jan I will be away for about 4 weeks travelling on holiday and I won't get much chance to work on LFE. Unless of course I can run it all on a windows machine and convince the family that it is not work. :-) |
Hey Robert! Anticipated OLP users, type of usage, and what they'd be using:
Of those, I would expect the highest number of users to be the first group. Related: there is a ticket that's been created to explore the possible use cases and to make sure OLP meets anticipated needs reasonably and well. Here's the ticket. The reason that the README is confusing you is that currently, the only people using OLP are us :-) The instructions you see in the README at the end are "For OLP Developers" ... once other use cases are examined and a clear method has been devised for supporting them, the README will be updated. I think we should definitely follow the spirit of OTP as much as possible, with our ultimate aim being to support the users of that first bullet. In other words, I totally agree with you :-) As for
Put more simply, your guess was correct :-) That's how we're using Enjoy your vacation! And hooray for the tutorial! (And sorry about the C# ...) |
@rvirding To assist with the confusing wording in the README, I've made these changes:
There's no sense in tweaking the other sections right now (docker, build, etc.), since that's going to radically change once we hammer out the use cases. Hopefully the "Here there be Dragons" warning at the top doesn't let anyone get to high of an expectation right now, since this is a new project in a high state of flux and early development ... |
I have talked with the OTP team about their splitting up the OTP release into multiple packages. It is coming. In 20 they plan to split out some of the least used applications, while in 21 to the whole system into multiple packages where the core one would basically be the current Basic application group (what you need to run the system). Rebar3 is THE tool for the system which they plan to use to handle the packages. But they will get rebar3 to build the packages with the current structure for backwards compatibility. Apparently they will be able to fix this with the right rebar.config. Something for us to steal. |
Related: lfe/lfe#303 That PR currently sets up this structure: /usr/local/lib/lfe
├── bin
│ ├── lfe
│ ├── lfec
│ ├── lfedoc
│ └── lfescript
└── ebin
├── cl.beam
├── clj.beam
├── lfe.app
├── lfe.beam
├ # ... elided for brevity
└── lfescript.beam
2 directories, 35 files but I like the Erlang/OTP structure for OLP: /usr/local/lib/erlang
├── Install
├── bin
│ ├── ct_run
│ ├── dialyzer
│ ├── epmd -> ../erts-8.1/bin/epmd
│ ├── erl
│ ├── erlc
│ ├ # ... elided for brevity
│ └── typer
├── erts-8.1
│ ├── bin
│ ├── include
│ ├── lib
│ └── src
├── lib
│ ├── asn1-4.0.4
│ ├── common_test-1.12.3
│ ├── compiler-7.0.2
│ ├── cosEvent-2.2.1
│ ├ # ... elided for brevity
│ └── xmerl-1.3.12
├── misc
│ ├── format_man_pages
│ └── makewhatis
├── releases
│ ├── 19
│ ├── RELEASES
│ ├── RELEASES.src
│ └── start_erl.data
└── usr
├── include
└── lib
61 directories, 22 files |
Yes, we should definitely structure it as an OTP release with a lib directory for the all the applications. Then lfe will just be one of the applications together with the other "standard" applications like ltest. Then you can at build time control whether each application should just consist of the obligatory |
Yup, just to confirm, this is what's already being done in OLP. Following OTP as much as possible :-) |
Epics:
The text was updated successfully, but these errors were encountered: