Improved Bare Metal installation guide (#1)
Merged
Commits were squashed into a single commit on target branch
Unknown opened 1 year ago

I have updated the installation guide on bare metal to include Arch Linux specific installation using the OneDev AUR packaged by @bengcooper (Thanks for doing it for me). As a sidenote I am still working on my OneDev package which will be without the proprietary dependencies (which is more appealing for Arch Linux users), however due to personal issues this has been postponed.

I have also restructured how dependencies are described, partly because I am an idiot and struggle to understand unless the dependencies are highlighted, but having them clearly described makes it easier for packaging and installation rather than telling people within the install guide (dependencies should be a prerequisite).

Please review the changes made and give any feedback on the changes, if there is any issues I will gladly change them.

New commits added 1 year ago
Added Arch Linux installation guide
- Added Arch Linux specific installation guide
- Improved explanation of dependencies
- Added Arch Linux AUR package (thanks to Ben for maintaining this
  package)
New commits added 1 year ago
Unknown changed merge strategy 1 year ago
Previous Value Current Value
CREATE_MERGE_COMMIT
SQUASH_SOURCE_BRANCH_COMMITS
Unknown commented 1 year ago

Recommend squashing the commits to prevent upstream git logs being polluted with the small changes

Robin Shen commented 1 year ago

Thanks for submitting the pull request. Since most OneDev users are using generic installation method for running OneDev on Ubuntu, Mac and Windows, please keep this as default installation approach. We can add OS specific installation method as a plus, something like below:

Generic Installation

...

Alternative OS specific Installation Instructions

Alternatively, you may also use OS specific installation approaches below:

ArchLinux

...

Robin Shen commented 1 year ago

Also as explained in previous installation instructions, fontconfig and ttf-dejavu is only need to be installed on ArchLinux, and curl is only necessary on Linux and Mac, as it is shipped together with git on Windows. I'd suggest to move the dependencies section into ArchLinux installation instructions, and leave previous installatation as is, as it is very clear on steps to be done.

Unknown commented 1 year ago

Hmm having specific dependencies for each platform is a little annoying... Before it explained it but it was really wordy (and a lot of people are lazy, including me). What about splitting it up into the 3 OS's then it would be easier to understand, in my opinion.

I will commit this in a moment.

Unknown commented 1 year ago

also @robin why is fontconfig and ttf-dejavu needed only on Arch Linux, distributions such as gentoo would need them too surely?

I am aware most linux distros come with them preinstalled, but its still worth listing them for all distributions to ensure the font is installed, better be safe than sorry?

Robin Shen commented 1 year ago

OneDev supports not just three OSes. The generic installation guide also works on FreeBSD, AIX, HP-UX, and many others. I agree that listing all the dependencies for each OS is very verbose. So I put them in steps and mentions which OS require some additional dependencies.

Robin Shen commented 1 year ago

I did not test on gentoo. If it does, it should also be mentioned.

Unknown commented 1 year ago

I am not doing a gentoo setup to make sure, but by default fontconfig and fonts are not preinstalled within the base install, thus I assume they would.

Unknown commented 1 year ago

Maybe its better to name "Generic dependencies" and then for each operating system explain that this dependency is needed and this is not

Robin Shen commented 1 year ago

That is a bit complex. Most users are using the generic instatallation steps, and currently they just need to follow 1, 2, 3.

Robin Shen commented 1 year ago

Making a generic dependencies plus OS specific dependency complicates the simple installation instructions for most OSes.

Unknown commented 1 year ago

The issue with it right now, is that it can be quite confusing, most people (including me) just look at the name of dependencies and just install them, someone who is skimming the install guide will not pick up on the fact that different dependencies are needed for different installs.

Also, the generic install is not generic, it is more a "mish mash install" of all 3 major platforms, surely a generic install should state, YOU DO need a font, curl and git regardless of if their platform comes preinstalled with this or not, it must be there.

Unknown commented 1 year ago

What about formatting it like:

  • Generic Linux
  • (distribution specific linux installs here)
  • Windows
  • Mac OS X
  • Generic Install (name all dependencies)
Unknown commented 1 year ago

I put Linux at the top because I feel the majority of VM's would run linux, then in a small majority windows

Unknown commented 1 year ago

Also I am aware this approach is even more verbose, but it is more specific instead of mashing them all together. Most installation guides separate into different sections for each platform and then provide a generic install for a reason that if say someone wanted help with installing on linux, you link them to the linux guide, currently this can not be done cause all guides are mashed into a "generic installation"

Robin Shen commented 1 year ago

Sorry I will disagree. Generic installation approach states each step clearly and it covers most OSes, and service installation, upgrade guide and many other utilities (reset admin password, enter into maintenance mode etc) are based on generic installation.

Developing / maintaining these for each OS means a lot of work. This is another reason I am using JSW to do the heavy lift.

So generic installation is official supported and should be mentioned as the default, and community contributed OS specific package installs are supplementary.

Robin Shen commented 1 year ago

An example, I did not even tested on AIX, and some users tell me it works like a charm on that platform, with system service integration.

Unknown commented 1 year ago

Give me 10 mins and I will commit what I have done and then get your opinion on it, its hard to explain. (and also about the maintaining thing, that is why you have contributors 😃 )

Unknown commented 1 year ago

An example, I did not even tested on AIX, and some users tell me it works like a charm on that platform, with system service integration.

I am not saying remove the generic install, I am saying make it more generic, it currently is more of a generic + all 3 major platforms.

Unknown commented 1 year ago

Also for the font, does it need to be ttf-dejavu?

Robin Shen commented 1 year ago

I am not sure, some user reported it does not work on ArchLinux, and google gives me this suggestion.

Robin Shen commented 1 year ago

I am not saying remove the generic install, I am saying make it more generic, it currently is more of a generic + all 3 major platforms.

I mean to make generic install the default and explicit, and others being supplementary. Of course, communities can help here, but there is also something should be officially supported by core team.

Unknown commented 1 year ago

Arch Linux (and other minimalistic Linux distributions) do not come preinstalled with fontconfig and fonts for it to load, it is one of the steps within the graphical user interface installation guides over on the Arch Wiki.

I will add this to the ArchWiki page which I have been working on to compliment the arch package.

Unknown commented 1 year ago

@robin Where in the codebase contains the logic for the generation of the default avatars, I want to see if it is ttf-dejavu specific or can use any font.

Robin Shen commented 1 year ago
Robin Shen commented 1 year ago
New commits added 1 year ago
Unknown commented 1 year ago

@robin Please take a look at the commit I just pushed, I feel this is more useful as it separates the guides out meaning that you can follow a more precise guide instead of just one generic guide.

If other maintainers want to add additional Linux Distributions, it is easy to do, write the guide and then link it at the top of the page.

Unknown commented 1 year ago

Also for Mac OS X I highly recommend using Homebrew, it makes installation easier and also allows easier updating of dependencies.

Unknown commented 1 year ago

@robin Looking into the font issue, what issues did people report on Arch Linux? The avatar not generating?

Robin Shen commented 1 year ago

@polarian thanks for the effort. I like the re-organized installation guide. It is more clear than my original version. However I will insist to remove ArchLinux AUR installation instruction from the foremost list, as I can not support it officially with my limited time. You may add a separate section, something like community supported package installations, and put ArchLinux underneath it.

Unknown commented 1 year ago

@robin I will separate the installation guides out into "Officially supported installations" and "Community maintained" so that it is more clear (and add a disclaimer to the Arch Linux section declaring that Robin does not maintain the arch package and that it is maintained by @bengcooper and co-maintained by @polarian

Robin Shen commented 1 year ago

That will be great! 👍 Thanks for understanding

Robin Shen commented 1 year ago

As to font, pease check this issue:

https://code.onedev.io/onedev/server/~issues/903

New commits added 1 year ago
Unknown commented 1 year ago

@robin can you review the latest commit, I have split up the guides into community maintained and officially supported. I added a community wiki page to list the community members contacts, as I doubt you want to be informed about issues with unofficial features, the community member maintaining it does. If you don't like it I can delete it.

Robin Shen approved 1 year ago
Robin Shen commented 1 year ago

Thanks for your help. Really appreciated!

Robin Shen merged 1 year ago
Unknown commented 1 year ago

No problem, glad I could help :)

Referenced from commit 1 year ago
Referenced from commit 1 year ago
pull request 1 of 1
Submitter Unknown
Target main
Source unknown
Reviewers
Assignees
Merge Strategy
Squash Source Branch Commits
Watchers (4)
Reference
pull request onedev/docs#1
Please wait...
Page is in error, reload to recover