-
Notifications
You must be signed in to change notification settings - Fork 53
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
build RGL synopsis nightly #33
Comments
It sure would! We are eagerly awaiting your PR :) The synopsis is hosted on a, um, normal server. How would we get the docs built on the Travis server onto the GF server? Can it do it via SCP or something like that? Another thing it would be nice to get from Travis is nightly builds of gf-core, but that belongs in a separate issue... |
By "nightly" I mean "for each passing commit", and by "builds" I mean binary distributions. |
that would be nice to have indeed! but I don't think we'd be able to have windows builds unless trans-compilation from linux is possible.. do you know if the instructions here are up to date? I'll try working on docs first, but, erm, how do I build them...? its just |
Your guess is as good as mine! Honestly this is a part of the RGL I know little about. But a quick look at the Makefile seems to indicate that you are right. A welcome side-effect of this effort would be clean up the scripts which are no longer used |
ok, I have a dockerfile with the build requirements (
do we want to build any other documentation..? if not, what would be the best way to deploy the docs to the GF server? travis has this documentation for custom deployment. also, it would be nice if there was a page explaining why to use |
Not that I know of.
My idea was simply using ssh/scp, although there's a security problem. The docker file is in a public repository, so how can we it access to the GF server without anyone else being able to do so? An alternative is that the doc generation runs directly on the server via a git post-pull hook. I guess this won't require docker at all, just a cron job. The HTML pages from gf-core are already generated in this way on the server from txt2tags files. In fact I'm not sure why the RGL synopsis isn't generated automatically.
I don't know of any, off the top of my head. It's possible that it's buried somewhere in all the various doc files but I cannot quickly find it. As I mentioned before I would really like to clean up the RGL docs in general. There's a lot of ancient stuff there which we can get rid of. The synopsis document is good, actually a central part of the RGL, but could also do with some updating. One day I will find the time to go through it all but sadly I cannot do it at the moment. |
it is usually done by accessing the credentials from an environment variable, which you can safely set on travis for the GF repository!
but I like this solution better! |
The cron job that keeps www.grammaticalframework.org updated runs |
@Thomas-H does the server also pull gf-rgl? if so, how is the directory structure? does it have gfdoc installed? (I imagine so) the problem with using hooks and cron jobs is that we might build faulty documentation, isn't it? or does gfdoc never fail? @johnjcamilleri |
@odanoburu yes, it pulls gf-rgl too. It resides under lib, where it was before the repository split (but this could be changed). gfdoc wasn't installed, but it is now (assuming you are referring to src/tools/GFDoc.hs). Another consideration is perhaps which version of the RGL it makes sense to document on the web site: the latest released version, the bleeding edge development version, or both? |
Yes, although it shouldn't be too difficult to modify the doc-building job to only run if building the RGL completes successfully, using the return value from
And this is related to the issue of the RGL release cycle (issue #3). Regardless of what we decide there, I think having both is best. In fact maybe we should build and store the docs for every single committed version of the RGL. This sounds like overkill and maybe creates some storage problems on the server, but it is arguably the simplest to manage. |
I think that if we make any significant changes to the RGL documentation (which I would like to see) then we should migrate it to a subdomain such as http://lib.grammaticalframework.org. The old content under http://www.grammaticalframework.org/lib can remain there with a warning that it's outdated. |
I was thinking of keeping the stable versions and latest commit (whose page would include a link to the stable versions). I don't think we need to keep all versions if it's going to be some trouble, we can generate them with a git checkout them after all! |
in #48 and in GrammaticalFramework/gf-core#11 I have added Portuguese to the synopsis, changed the makefile at gf-core, and added a link in the current synopsis to the stable version. how does that seem to you? @Thomas-H does the server have graphviz/dot installed? I think the documentation needs it. |
@odanoburu yes. |
(Sorry for cross-posting) |
@johnjcamilleri I agree with your disagreement! I did get the feeling that that wasn't good at all -- it wouldn't be clear to anyone but us because it created a hidden link between the repositories. @Thomas-H can we just add to the cron job a call of |
@odanoburu In principle yes, but it looks like something more is needed to make it work. The Makefile assumes that GF_LIB_PATH is defined and that a directory $(GF_LIB_PATH)/alltenses exists. I assume that means that you have to build the RGL first? |
well, we just but on my computer the kernel killed the process (too much memory spent maybe?) and it is definitely much slower than using the |
The compiled RGL should be reused obviously, but I think this dependency should be made explicit in the Makefile(s), and all the commands needed to build the docs should also be there of course, and not hidden away in a cron job on the server. I also think building the docs needs to be more incremental. Now it seems to take ~80 seconds, even if nothing has changed... (Rebuilding the RGL with |
do you think we should merge the Makefiles? or at least call the one in
yes, I agree. |
I have pushed a patch that adds a doc target in the main Makefile. It calls on doc/Makefile to build the documentation, after building the RGL. I am also looking into making doc/Makefile more incremental. |
@Thomas-H thanks, that looks great! is it live already? are we keeping #48 with the idea of having the stable versions of the synopsis + the current version? can you add Arabic, Basque, and Portuguese to the languages built? (I can add it in #48 if we're keeping it) I think other languages can also be added, maybe all of the ones that have a Try*.gf file? |
@odanoburu It is not live yet, because it would overwrite the existing synopsis.html. Does #48 fix that? What I think #48 should do is There is also a conflict in #48 doc/Makefile now that needs to be fixed. The addition of Portuguese and the automatic generation of synopsis.html are two unrelated things, so even better if these things were two separate pull requests! Also, in the past @aarneranta used to update the synopsis manually, so it would be good to know that he approves of this plan (i.e. keeping synopsis-v3.9.html around and automatically updating synopsis.html from a cron job on the server). A separate issue is perhaps which version the GF home page should link to... |
yes!
we can use the GF 3.9 binary to generate it, but I think using the current file might be best!
indeed, will do! |
OK, I have applied the pull requests and added |
looks good! can we close this @johnjcamilleri ? |
I just noticed that some details in There probably some more details to fix in the Makefile, e.g. maybe categories.png should also exist in two versions and be updated automatically... |
we should probably think of a way of updating these automatically.. and also not having several lists of languages. maybe we could use |
I definitely think that's the way go to. One list of languages to rule them all. |
I just had a chat with Aarne, and he said (paraphrasing) that languages should be included in the synopsis when they are considered complete enough to be recommended to users of the RGL. Maybe there should be a column that reflects this human judgement in |
I'm not against adding this column, but I wonder if this information is already implied by one of the existing columns? (e.g. |
Done! Check out ec9f74d |
I'm closing this because I believe this issue has been solved; please reopen it if my understanding is wrong! |
Not quite. Currently the synopsis is always built for the latest version of the RGL. It would be good to have a fixed version for release 3.10 too. The previous solution was ok but feels a bit too manual —someone has to remember to build the synopsis for the release, give it a certain name, hardcode the link in the live documentation etc. Keeping a history of the synopsis for every commit would be better because it's automatic, and would allow developers to view the docs of any RGL version. The main issue is server space. Each |
it'd be nice if Travis built http://www.grammaticalframework.org/lib/doc/synopsis.html from scratch for every commit, and published all the tagged versions and the latest commit, right?
The text was updated successfully, but these errors were encountered: