Skip to content
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

Enhancement: Improve Teia Documentation Workflow And Appearance #1

Closed
floydwilde opened this issue Jun 19, 2023 · 11 comments
Closed

Enhancement: Improve Teia Documentation Workflow And Appearance #1

floydwilde opened this issue Jun 19, 2023 · 11 comments
Assignees

Comments

@floydwilde
Copy link
Owner

floydwilde commented Jun 19, 2023

GitHub Wiki and it's Limitations

The Teia-Docs GitHub repo exists to collect documentation that is project-wide, and doesn't relate to any code which is actually in the 'Teia-Docs' repo. But, the GitHub wiki feature is meant to collect documentation about what a specific repo is for, and how to use it. It creates a hidden 'sub' repo, which is just a regular git repo, but it is not exposed to all the nice enhancements GitHub provides for a git repo. It's meant to be out of the way, and to describe and document the main repo. The ability to create PRs, the main feature that is missing from a GitHub wiki, which has been discussed (for years) in various places:

For the "Teia-Docs" repo, the documentation is the main event, and the wiki is only utilized for convenience to encourage quick updates and faster editing. We would prefer to use GitHub Pages, which would provide a more user friendly interface for general readers of the documentation.

Proposal for Workflow Enhancement

To address this limitation, we propose moving the files that are being edited within the GitHub wiki to a dedicated location within the main repository. By doing so, we can leverage the full functionality of GitHub for version control, collaboration, and organization. Additionally, we suggest utilizing a GitHub action to enable bidirectional syncing. This action would synchronize any edits made in either the main repository or the wiki, ensuring that the documentation remains up to date.

By centralizing the editing process within the main repository, we can take advantage of the convenience and benefits offered by GitHub while maintaining a cohesive and synchronized documentation system. This approach will also help mitigate the risk of data loss, as file deletions in the wiki will not be synced, but it is possible to delete a file by editing it within the repository where the files reside.

Retaining Collaboration and Utilizing GitHub Pages

In addition to the advantages mentioned earlier, adopting this approach allows us to keep the collaborative benefits provided by the GitHub wiki. By maintaining the wiki as a secondary documentation resource, we make it more convenient for team members to contribute and collaborate on the content. Simultaneously, we can take full advantage of the customization options and domain mapping capabilities offered by GitHub Pages.

The need for a better workflow grew out of interest in using a static website generation tool called "Docusaurus" in this PR:

And some experimentation here, adapting the wiki files for use w/ Docusaurus:

@floydwilde
Copy link
Owner Author

I have forked the Teia Docs repo here, and since the upstream repo does not have "issues" enabled, I've enabled here so I can make the case for working on this. Now I would like to prepare a PR for setting up the bi-directional sync, but I'm faced with another hurdle in the fact that when you fork a repo, the hidden wiki repo is not forked along with it:

So to test the wiki sync action, I need to first clone the wiki over to my fork, so looking at some suggestions on how to do this.

@floydwilde floydwilde self-assigned this Jun 19, 2023
@floydwilde
Copy link
Owner Author

So, I've played around with both methods, a simpler one direction sync and using the NewRelic GitHub Action. Both of these methods suppose you want to use a personal access token with a service account. Which would mean creating a service account.

I did look at using the "secrets.GITHUB_TOKEN" special token but this doesn't seem to be working for pushing changes from the docs folder to the wiki repo.

Well, there are more options to look at, there is another Action here:

Seems more active, but lacking the bidirectional sync action.

Also that action that wasn't able to push to the wiki should have failed, but I see someone has a fix for that here:

I could at least validate that PR now. But might look at shopping the feature to other interested parties since NewRelic doesn't seem interested in this type of sync anymore.

@floydwilde
Copy link
Owner Author

Moreover, this may be a more simple solution:

@floydwilde
Copy link
Owner Author

I tried out the idea above of mounting the wiki repo as a submodule, but have concluded that is a bad idea:

https://github.com/floydwilde/wiki-docs-submodule-test

The thing I did like about it, was that it only required the secrets.GITHUB_TOKEN repo and not a personal access token, where the other solutions are mainly suggesting using a PAT and/or a service account setup w/ a long term PAT. I don't think this is a good option, it involves creating a dedicated account for managing that token which I would like to avoid if possible. I think one of the options where you setup a folder in the main repo and sync that to the wiki repo will be workable with the secret.GITHUB_TOKEN or some other option such as GitHub Apps.

@merchantcoppola
Copy link

merchantcoppola commented Jun 21, 2023

thanks so much for your help here floyd!

i need to try my best to get my head around this so let me as a few qs
keep in mind i am a non-dev anbd maybe i missed info on your documentation due to a lack of understanding on my side, sorry in advance, bear with me.

    1. your proposal would mean that edits are done via prs, right?
    1. on which repo would we locate it (yor issue talks about a "main repo" - would that be the teia-ui one? i feel like we dont really have a main repo at this point but the ui one is the one that has the most activity
    1. probably my main question just so i understand: with your pr, how would editing work in practice? what steps need to be done in oder to do an edit or set up a new page?
    1. are there any solutions avaialble to get a user-friendly edit UI for our new wiki? my main concern is that currently the fact alone that people have to use the github UI is keeping people from contributing to the wiki, which leads to mostly me and stu (whos opinion would also be very helpful here) editing the wiki. it would be great to have something that allows for easier user contribution without a github account (like wikipedia)

@floydwilde
Copy link
Owner Author

  • i: The proposal is to enable multiple ways of editing the wiki, through PRs, directly via the Github UI, in either the repository file browser or via the Wiki UI, or edits can be done by cloning the Teia Docs repo locally.
  • ii. The main repo referred to here is the Teia Docs repo, where the wiki associated with any GitHub repository is created in a secondary repo that is not (normally) connected with the main repo.
  • iii. After the PR is merged, you can continue to use the GitHub wiki interface as usual. Additionally, you will be able to edit, add or delete pages directly in the /wiki folder of the "Teia Docs" repo. You can create PRs so that more significant edits can go through a peer review process, or edit the wiki directly without peer review for smaller, less significant edits. There will still be the usual git commit history and the ability to roll back changes for all edits.
  • iv. I believe this is a first step in that direction, the confusion comes in with how we are using the wiki feature, we are wanting to have a document repository, but the GitHub wiki feature is not for that purpose. The GitHub wiki feature is for documenting what a repo is for, and how to use it. In our use case, after this PR is merged, we would be utilizing the GitHub wiki feature to provide another convenient UI for editing our document repository.

In the future, we would like to build on this change, taking the files that are now stored in the /wiki folder and using a static site generator like Docusaurus to make them more accessible to the reader.

The overall effect, will be this: Approved members of the Teia Community will be able to use the GitHub wiki to edit files easily, or they can use the GitHub repository browser which is similar to the wiki interface for editing files. The repository browser interface provides the option of creating a PR (a branch) so that the edit can go through a peer review process, or make the change to the main branch which will publish it immediately. In the case of an editor wanting to fix a typo, or make some small correction, this is desirable. By taking the files out of the secondary wiki repository, and storing them in the main Teia Docs repo, we open up the possibility for the wider community to contribute in the normal way you would contribute changes on GitHub. You clone the repo, you make your changes, then you issue a PR. This is not currently possible, since the GitHub wiki is not intended to be used as a central document repository. It is meant to comment on a repo, not be a repo. Once this PR is merged, it will facilitate more collaboration on the documentation since the files will be accessible in the usual way.

Eventually, I believe we will discover there is no purpose for using the Github Wiki UI, as NewRelic have discovered, we are using it for documentation due to a misunderstanding what the GitHub wiki feature is for. Our docs will eventually be stored at a url like docs.teia.art and people will go there to read documentation. For editing documentation, people will go to the GitHub Teia Docs repo, and edit files in the /wiki folder. Eventually, we will remove the documentation sync back to the GitHub wiki repo (look at NewRelic's Open Source Website as precedence) and we will remove the Teia documentation from that secondary Teia Docs wiki repo. Rather than storing our documentation there, we could then use this secondary wiki repo to provide instructions on how to update and maintain our documentation (not store it).

@NoRulesJustFeels
Copy link

One thing to remember is that the people contributing to the docs aren't necessarily devs and don't all have git expertise. Although the current wiki has several technical limitations, it is simple and easy to contribute. Also, up to now, the docs haven't gone through the same processes that the code does, which has mostly worked out fine.

I don't have any particular thoughts against a new kind of wiki or doc repo. Still, whenever we take on something new for the community, we need to be aware of our limited resources and be confident that we can keep things running even when the original contributors of any new stuff have moved on to other things.

Lastly, I thought somebody else was looking at changing how our docs are managed, but I haven't kept up to date on that; it would be good to make sure these attempts don't clash.

@floydwilde
Copy link
Owner Author

Over the past few months, I've been reviewing the Teia documentation as it stands, it is in a not fit for purpose meta documentation repo which exists inside the GitHub Teia Docs, lets call it Repo Encirclement System. GitHub provides various enhancements to a basic Git repo. One of those enhancements is that it will create another repo for you, and a Wiki-like interface to that repo, so that you create documentation about what the purpose of the repo is and how to use it.

Due to its convenience, The Teia community have been using this secondary documentation repo for the main purpose of creating and storing its documentation. What comes as convenience to some, is an inconvenience to others, unfortunately. For those people who wish to use a peer review process to make a significant documentation update, this option is not available to them. Secondly, for rendering the documentation in a more reader friendly format, the Github meta wiki repo is also not fit for purpose. Rather, using the /wiki folder, and events which occur to this folder, for publishing the wiki at a Teia.art url, like docs.teia.art, or wiki.teia.art, is more appropriate and flexible.

This change takes the same advantage of the GitHub wiki feature we are using now, and restores the additional features that using GitHub to manage a central documentation repository is intended to have.

@merchantcoppola
Copy link

Lastly, I thought somebody else was looking at changing how our docs are managed, but I haven't kept up to date on that; it would be good to make sure these attempts don't clash.

no, i think it has always been floyd who volunteered to revamp the wiki.

@merchantcoppola
Copy link

i thgink i agree with your assesment of the current situation and i am really excited to move this along finaklly towards a "real" documentation solution!

all i want to make sure is that we can smoothly transition and make edits fun and accessible to the community (ideally at some point even allowing input from all members/users

@floydwilde
Copy link
Owner Author

Yep, I think you will see things were just kind of blocked up due to a misunderstanding of how what the "GitHub Wiki" feature was designed for. Now that we are unblocked, we will begin to see a lot more contributions to the wiki. I'm about to contribute the first in a series of more updates, to actual documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants