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
Versioning for paramaters page #2034
Conversation
Hello, That is a very good issue that you address ! You could find the param_parse.py called in /Tools/scripts/build_ci.sh that is called by travis. -Yes we could also use travis to have autotest on wiki, but it shouldn't be trust for building as it failed from time to time. For the other question, I need a computer to look at a solution, but ideally if we do everything in Python it should be easier to maintain |
I actually disagree with the approach. |
Thanks Pierre, So, I will maintain the strategy of using a cloned repo to call param_parse.py and parse the parameters file. Actually, maintain the way as the parser is called in /Tools/scripts/build_ci.sh looks to fit better in the ecosystem. Them Wiki build script downloads a package of parameters as it does nowadays. |
Hello James I do agree that have a versioned Wiki would be a significant advantage. However, as the parameters are managed and changed outside the Wiki, we still need to handle some integration, at least to copy and sort new files and maintain the old versions. Do you think that would worth provide this multiple parameters version in actual Wiki? I would be glad to help, but I can not see the wiki versioning put in place in a short future. |
Items to discuss in next call:
|
WikiCall notes:
|
Back to this subject, I think the desirable navigation model would be like this: http://www.olivieri.com.br/ardupilot/wiki/copter/build/html/docs/parameters-Copter-V3.4.6.html No php, just a json with the versions to show and a client-side javascript. What do you think? |
it feels nice ! |
Sure. I am thinking about setting the lastest version as the default and other versions as options. I also need to rename all internal anchor's names due to the wiki toctress. I am wondering to recreate the generation script to be used in the autotest server instead of the wiki build side. In this way, it would be simpler and more comfortable to reuse the built versions. (Build several parameters.rst it really resources consuming). |
97716e7
to
d9811e4
Compare
Updating: The actual plan is to maintain the single parameter version and multi-versioning working at the same time. Then, add an argument in update.py to choose how to build the parameters: single/latest parameters file XOR versioned parameters. Intra-sphinx links/anchors are not renamed for the latest version for each vehicle. For betas and previous stable versions, each anchor receives a tag for the particular version. TO-DO:
|
This is a much needed feature, and I fully support the effort that is being put into this. I'm linking the reference issue that was raised a while ago: #1763 If this is ever merged, please close the issue! THANKS! |
Hi @Naterater ! Thanks! Yes, it will work. I am late but I just finished an alpha script, I think for the next wiki call we will have a beta. :-) |
fad6c2d
to
b9bc4be
Compare
Finally, a Beta! If merged, it will not change the way the parameters are generated. It will only generate several parameter files on the server. Actually, it only enables the Parameters versioning and must be enabled by inverting the two last commands in update.sh. I aim to test manually on the server once merged. The full versioning is created on build_parameters.py, and update.py was altered to use it and cache unchanged previous built HTML files for known versions. Some tests in a non-fast machine: Observation: I had some troubles in parsing old git_versions.txt, so I did some workarounds on it. |
Great news. I'm not too familiar with the server side so it will probably need to be someone like @tridge or @peterbarker who needs to review this. I'm certainly in favour of having version specific parameter pages. |
192abf4
to
4ac4b6a
Compare
nice work! |
72bbeb1
to
910467e
Compare
910467e
to
88ced1d
Compare
Versioning for parameters
It brings a script to maintain multiple parameters pages for vehicles. The idea is to list binaries from firmware repo and build parameters files for each one. (observation: the original idea was to get tags from GitHub, but after a discussion on a wiki meeting, it was dropped)
To present a suggestion for the interface, I tested two mockups:
A) http://tiny.cc/wp9idz
and
B) http://tiny.cc/3z6idz
This script is not ready yet. It is an early version to discuss some points:
1)To fetch Parameters.cpp files, I used an Ardupilot cloned repo. It is trustable and secure, but it is big and slow.
1.1) May I trust on download GitHub raw parameters.cpp file? It would be faster and a cleanner solution.
1.2) May I transfer ardupilotRepo\Tools\autotest\param_metadata to wiki repo? If so, wiki build could download and parse everything that it needs without a point to autotest server. "The wiki building would be autonomous from Ardupilot servers and use only GitHub to fetch data".
This script is supposed to run on wiki build or might be a good idea to move to autotest server somehow? If so Someone could show me where the param_parse.py is called?
The versioning script runs at once. It is not elegant. Which parameters would be useful? I think build parameters every time makes edition and tests very slow.
Many parameters pages implicate that sphinx-build doctrees process uses more memory and take some time. Doctree file from parameters pages are very big. (If you test this script on Vagrant env. you need to upgrade the virtual memory to 2Gb at least on VirtualBox)
Multiple parameter pages cause many duplicate labels warnings on wiki building. Might be a good idea rename all of them. Maybe a prefix for each version?
To make the dynamic list of contents in "B" appearance, I used a txt and a simple php file, but these are erased or missed up during the wiki building. Someone could help me telling me how to deal with php files and txt resources with sphinx?
So, I would appreciate some feedback to understand how I could enhance and finish it.