sillsdev / languageforge-lexbox

Lexbox, SIL linguistic data hub
MIT License
7 stars 2 forks source link

Problems with new dev experience on fresh Windows install #1074

Open rmunn opened 1 week ago

rmunn commented 1 week ago

Describe the bug I just got a new laptop and decided to be a naïve new developer for a minute. I installed VS Code (and Visual Studio), installed Git for Windows (I wasn't a completely naïve new dev), and read the README file. I then installed Docker Desktop, Skaffold, and Task as recommended. All went well at first, but then I hit the following snags.

When I ran "task setup" for the first time, Windows wouldn't let me run the Powershell script to download sena-3.zip and elawa.zip: default execution policy (Restricted) forbids running .ps1 scripts. I had to read and understand the error message taking me to the Microsoft documentation, and understand that I had to run Set-ExecutionPolicy to set the execution policy to RemoteSigned. Then I was able to run task setup and then task up. (This is where I briefly stopped pretending to be a naïve dev, and skimmed through the documentation looking for the exact syntax since I already understood the concepts. If I'd been a complete newbie, I would probably have taken 1-2 hours to understand what I needed to do here).

The first time I ran task up, it failed because I hadn't realized that the Skaffold file I downloaded was a standalone exe, not an installer. That was simple to solve, though.

When I browsed to localhost and signed in as admin, everything looked good... until I clicked on a project (sena-3). Then I got a bunch of error messages about Mongo connections not being able to be established, and I couldn't load the project. I had to clone the web-languageforge repo and get LF up and running before I could proceed with testing local Lexbox.

Finally, as a long-standing Linux dev I wanted to get my SSH private and public keys copied over to the new laptop so I could clone git@github.com:sillsdev/languageforge-lexbox, but in the character of a naïve dev I would probably not be as familiar with the Windows SSH subsystem as an experienced Linux dev would be.

Based on the mistakes I made while pretending I was a brand-new dev unfamiliar with the codebase, I suggest the following changes to our README:

Changes needed

That last one might be extracted to a different issue, as that will involve code changes, whereas the other points are just things to note in the README.

megahirt commented 1 week ago

I would suggest that cross-platform Git Credential manager is the recommended way to authenticate with git and that SSH keys auth is less desirable. I think our README should reflect that. GCM is easier, especially if you don't have SSH setup.

rmunn commented 5 days ago

I created #1092 to track that last bullet point. The rest, I will fix with a PR that updates the README.