-
-
Notifications
You must be signed in to change notification settings - Fork 6.3k
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
[doxygen] auto doxygen test #20511
[doxygen] auto doxygen test #20511
Conversation
|
||
jobs: | ||
build: | ||
if: github.repository == 'AlwinEsch/kodi' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The branches: [ doc-upload ]
above should be in Kodi branches: [ master ]
(currently set to my one for test).
And if: github.repository == 'AlwinEsch/kodi'
should be then if: github.repository == 'xbmc/xbmc
As working upload by script I has on begin worked with here https://github.com/AlwinEsch/kodi/tree/gh-pages (where works on a forked repo).
I'm not being rude by ignoring the review request... I've just been puzzled by what's needed here! Are you basically suggesting that, alongside the existing Doxygen stuff, we have something similar for addons? Maybe move the skin stuff there, maybe API information, that sort of thing - so we have "working in core Kodi" separate from "building around the edges and talking to Kodi"? If so, I can't see why that would be a problem: documentation that describes how to structure, build and package addons, as well as the methods/calls needed for Python, binary addons, whatever. Or is it more that people should build better documentation into their addons, and we then host/link to the Doxygen-built documentation for the addons themselves ("this addon does this like this, using these methods and dependencies", and so on)? I genuinely don't have an opinion on that, as I don't know how complex addons are or how much people fork them, reuse code, build new ones, and so on. It might certainly help if popular addons (and skins?) get abandoned, in that someone else could perhaps pick them up and bring them back to life on e.g. an API change. I may be missing something entirely, however... |
Yes exact. The associated doxygen part has been around for years, but it has never been used publicly. My main concern is to have it independently available for the addons, because in Kodi's complete Doxygen it is very confusing and for inexperienced (and even for experienced) it is very opaque because Kodi's complete descriptions are there. Look here "https://codedocs.xyz/xbmc/xbmc/" and think about how an inexperienced person would find the correct python / skin related description. Since complete Kodi is listed in it, it becomes rather difficult. Both doxygen projects (kodi-dev-kit and Kodi itself) use the same descriptions, only the kodi-dev-kit is limited to addon-related parts. Regarding the skin, it may be that parts are still missing there, but also difficult to find out easily in Kodi. You can compare them of Kodi with https://alwinesch.github.io/index.html. |
In addition, some Doxygen parts will have to be fixed and improved in the near future. Again many errors crept in with skin and Python API updates. |
I did look at the codedocs stuff previously - and, you're right, it was virtually impossible to see anything specific to addons. There is a Skin Development section, which at least explains the controls, but the Addon functions (etc.) are hidden alongside all the other built-ins. It's certainly not obvious where to start if this is the only documentation you have - but there is also the pretty comprehensive addon wiki, however, plus the skin one, so they probably all need to be considered together to avoid duplication. There's also some minor Python API stuff in codedocs, but that only really seems to document changes in this API release - there's no obvious link from these to a baseline list of calls (they're probably scattered in those lists of built-ins). Again, I suspect much of the "how you use Python for addons in Kodi" stuff is in the wiki already. |
IMHO we should also take this opportunity to completely drop codedocs. It is using (or was using) a really old version of doxygen and it's hard to keep up. Nowadays with github actions and github pages we can certainly make the pipeline generate the new page and host it in github pages on every merge. Furthermore it'll allow us to theme doxygen if we decide to. At the moment our docs on codedocs are completely broken: v20 changelog for python (code docs): https://codedocs.xyz/xbmc/xbmc/python_v20.html |
In many contexts this is really great, but keeping it always correct and up to date in relation to API changes makes it more difficult, because something could easily get lost. Therefore, in this regard, Doxygen found it pretty good, as the respective developer can (and should) always insert the descriptions so that it is up to date. You only have to be careful in Doxygen that errors do not occur when changes are made (here last fix #20432 (comment)) |
589d986
to
7aedfc8
Compare
|
||
jobs: | ||
build: | ||
if: github.repository == 'AlwinEsch/test-xbmc' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here need to change to ' xbmc/xbmc'.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would require an empty branch in Kodi which would have to be introduced with:
git switch --orphan gh-pages
git commit --allow-empty -m "Initial commit on orphan branch"
git push -u origin gh-pages
If OK for you, could I already create such a branch in xbmc?
Or can I think of another name? The "gh-pages" is the default of the Action plugin and would be OK for me.
Here the generated docs about:
- https://alwinesch.github.io/test-xbmc/kodi-dev-kit/
- https://alwinesch.github.io/test-xbmc/kodi-base/
The test-xbmc
comes from my temporary added repo with name test-xbmc
, should be by Kodi then https://xbmc.github.io/xbmc/
.
@AlwinEsch is branching supported with this new implementation? I mean, it'd be great if we could push doc pages according to branch (Matrix, master (nexus currently), etc) |
7aedfc8
to
426fd73
Compare
Yes, does work and updated it, need then only to have the matching Here the created ones:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple of suggestions:
-
maybe better to create xbmc/docs within the org and use external_repository to avoid polluting this one with doc branches. See https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-deploy-to-external-repository-external_repository
-
do we want to trust external actions and use them from repos out of the org/foundation control? Since they can access secrets from the repo wouldn't it be better to just fork and freeze on a specific git sha?
Thanks much for this, hopefully it can be merged soon along with the removal of broken codedocs.xyz . We might need to point docs.kodi.tv to the new address in cloudflare once this is finished
426fd73
to
296f089
Compare
Related to:
I updated it and is now uploading to another repo https://github.com/AlwinEsch/docs.kodi.tv. E.g. here https://alwinesch.github.io/docs.kodi.tv/master/kodi-dev-kit/ now available. About:
I think for security reasons, think it would be best in "github", since all accesses only take place within and not to our mirrors / servers. In addition, we then do not need to have any disk space available 😺. |
The code in yml is now set to the right names on Kodi. Has used as repo name the |
I mean http://docs.kodi.tv currently redirects to our codedocs.xyz. When this is finished we need to change it in cloudflare to point to the new gh pages site. Kib handled this at the time, I guess wspinex might be able to do it when this is finished. |
Yeah, I don't think running this in Jenkins is a good idea. I was just wondering if we shouldn't fork the actions and run then from the org instead of linking external repos out of our control. I.e., instead of |
296f089
to
006e1ad
Compare
Yes, its code must be readable for him, otherwise it would not be able to upload to the repo. The only good thing is that it would only have access to https://github.com/xbmc/docs.kodi.tv and nothing else and there you could see what is coming in commit history or branches. Which makes it really better to load it into another repo so that there is no write access in xbmc. But we have to trust it a little and since it is used a lot and is active in the github marketplace 🤔😅😏 . |
Right, that's a good point. If the secret is granted in a way that write access is only available to the docs repo it should be safe |
If we do for Kodi then the following steps are needed:
Also another name instead |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd drop the codedocs integration in another commit but it's out of scope of the PR. Thanks much for working on this, our docs are currently completely broken.
I guess our friend @Darren-Hill can probably help setting up the new repository in the XBMC org for gh pages and setting the write secret for that new repo. Let's hope he is on a Christmas mood :)
@enen92 - whilst I may have the privs and access for that, I'm not sure I have the GitHub skills to do so. I'll try and follow the steps listed above and see how it goes, but don't blame me if chaos ensues... |
@enen92 @AlwinEsch - I've made the new repo and added you both as admins of it. Can you handle the keys stuff and onwards as that's getting somewhat beyond my comfort zone to set up? |
Description
This brings an idea of mine to be able to use the doxygen documentation of both types (Kodi itself and addons).
This is currently not correct and needs your ideas and instructions as best.
Also with the
actions-gh-pages
which it would upload to github website is just an idea, since xbmc doesn't use it yet and can also be loaded to other places. Stupid (and also good) about it is that I couldn't test it on my https://alwinesch.github.io/ because my Kodi is only a fork, see e.g. here his build log https://github.com/AlwinEsch/kodi/runs/4195004521?check_suite_focus=true#step:7:33.Background would be something like this:
In addition, CodeDocs.xyz does not work with externally stored files in Doxygen, see note here #20432 (comment).
What would you think of something like that and what would be the best way to upload it somewhere?
Motivation and context
How has this been tested?
What is the effect on users?
Screenshots (if appropriate):
Types of change
Checklist: