This looks reasonable. I'm not completely sure I follow which pieces are recommendations which people can follow or not, and which pieces are default places for scripts to look (which people can also not follow, since there will be ways to override defaults). But I'm sure this will be clear as this is turned into pull requests. And the particular defaults suggested below seem as good as any.

Generally the idea that you can install metamath, set.mm, and mmj2, and there are default or suggested ways for them to find each other, makes sense to me. Even for me, who is capable of messing around with a PATH and editing a config file, found it to be a bit of a speed bump in getting started. So anything we can do to make this easier is great.

On 5/2/20 3:43 PM, David A. Wheeler wrote:
We need to make it easier for new Metamath users to join the fun.

Typical Metamath users have multiple things installed. I think they should be able to 
install things wherever they want, *but* we should have some conventions so that things 
"just work" on a simple install by default.

Here are some thoughts about how to do this; comments welcome.

--- David A. Wheeler

============================================

First, overall:
1. People should be able to put things wherever they want; the point here is to 
just set some *defaults* in config files etc. so that if you don't care, things 
will automatically work together.
2. We should try to follow the local system conventions, supporting at least 
Windows (including with and without Cygwin), Linux (Ubuntu/Debian/Fedora at 
least), and MacOS.
3. Precompiled packages should be available, especially on systems where 
compilers are harder to set up (Windows), but it should be relatively easy to 
set up things with source code.
4. Different components must start in different directories, so that you can upgrade one 
without stomping on another. In particular, the current "set.mm" should be in a 
directory *separate* from metamath-exe and mmj2.
5. I'm focusing on the set.mm database, metamath-exe, and mmj2 for starters, but 
there are other Metamath tools & I'm sure their users would like things to be 
simpler too!


So let me start with a proposal for Linux systems, using its conventions ("~" 
is the user home directory):
* Install set.mm in "~/set.mm". This is already what happens if you are in your home 
directory and do the usual git install command from GitHub: "git install 
https://github.com/metamath/set.mm.git";.
* Install the metamath-exe (C) source code in "~/metamath". This is already what 
happens if you are in your home directory and follow the metamath-exe instructions at 
http://us.metamath.org/#downloads . You can compile it & leave its executable there. You 
can do a local user install to your home directory $HOME (e.g., $HOME/bin/metamath), a local 
system install to the usual directory /usr/local/ (e.g., /usr/local/bin/metamath), or a 
*system package* for metamath, to the usual directory /usr (e.g., /usr/bin/metamath for the 
exectuable) - the autoconf file in Metamath already supports all of that as usual.
* Install mmj2 source code in "~/mmj2". It should also be installable with all 
the usual conventions.

Programs can increase the likelihood of finding a working metamath-exe executable by 
doing PATH="$PATH:$HOME/metamath" and then calling metamath. That way, if the 
metamath executable wanted by the user is on the PATH, that will be used... but if one 
isn't in the PATH, then ~/metamath is checked out automatically.

On Windows the convention seems to be to install metamath-exe into "c:\metamath". That's unusual, and I worry 
that some systems that forbid that (since it's outside the user home directory). But if that is to continue, then I'd 
suggest "c:\set.mm" for the set.mm database (as copied from git) and "c:\mmj2" for mmj2's source 
distribution. A similar trick applies for programs trying run metamath; set PATH="%PATH%;c:\metamath" and 
then give it a try. If people want to use the home directory as the default instead, that's great. Many Windows users 
depend on a package installer, but that's a more work to set up.

MacOS: Not sure what to say here. It might not be hard to set up something with 
brew, at least for metamath-exe.


--
You received this message because you are subscribed to the Google Groups 
"Metamath" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/metamath/542220e9-2c4e-1565-87c4-172aba9f2dc7%40panix.com.

Reply via email to