I can build Compass from source and run it with npm install
and npm start
.
How do I create a dist that I can run without recompilation each time?
(Or is the typical dist doing some of this recompiling behind the scenes when it runs?)
Hey @Jack_Woehr! You can find this and more info about how to work with Compass monorepo locally in the contributing doc that is part of the source on GitHub.
Running Compass locally in dev mode and building it for distribution is not the same. The most basic way of building Compass locally is to run npm run package-compass
from the root of the monorepo. There are additional parameters that can be passed through the environmental variables during the build that are documented in the “Building Compass Locally” section of the doc.
We don’t really see many people trying to build it locally and as developers who work on Compass day to day we don’t set up our working environments from scratch every day so you might run into some issues while following the instructions there so please feel free to try this command and tell us if everything works well for you and we can try to assist if it doesn’t (although I think if you are able to run the app locally already, it all should go smoothly)
Hi @Sergey_Petushkov , thanks for your response.
CONTRIBUTING.md says, HADRON_SKIP_INSTALLER=true npm run test-package-compass
but there’s no such script, did they possibly confuse test-packages-publish
with package-compass
?
I just tried package-compass
but it errored out. I’m going to try with debugging now.
Thanks, @Sergey_Petushkov , I was able to build a release. The failure before was my mistake, each morning I have to remember to do nvm use 14.17.5
to build Compass
One question … when I run packages/compass/dist/MongoDB\ Compass\ Dev-linux-x64/MongoDB\ Compass\ Dev
it doesn’t find the connections I created using previous builds. Do various versions disregard previous versions’ settings?
Hey, where’s the fun in Open Source if you can’t build it yourself?
Seriously, if I’m interested in a body of code I like to explore it. MongoDB is interesting … I’m coming up on 2 years with MongoDB now.
We are definitely not trying to stop people from doing that, just a warning that some issues might occur during that process, like some slight doc inconsistencies
And thanks for catching these inconsistencies in the docs by the way! This particular test-package-compass
command was indeed removed awhile ago, but we forgot to remove it from the contributing section, you can safely substitute it for package-compass
in this example
Thanks again for your help, Sergey. As noted, I was able to build a release. I am curious though why the newly-build Compass doesn’t pick up favorites from my previous sessions.
Hmmm, if you built it with exactly the same configuration (i.e. no env vars were used to change app name), it should indeed be able to pick them up. I might need some time to try to reproduce on a linux machine as it doesn’t happen for me on macos.
In the meantime I think what you can check is if you have those connections stored on disk actually. When you run your locally built version of Compass, if you open devtools and run following code in the console
require('electron').remote.app.getPath('userData')
this should give you a full path to where the connections will be eventually stored. Can you check that this dir exists, and there is a Connections
dir in it containing files of the previous connections that you expect to see?
Thanks again, @Sergey_Petushkov … mystery solved. It created a new subdirectory /home/jwoehr/.config/MongoDB Compass Dev
sibling to my other .config subdirectory /home/jwoehr/.config/MongoDB Compass Dev Local
created by running Compass via npm start
.
Hmm, interesting, a lot of the files built in compass/packages/compass/dist/MongoDB\ Compass\ Dev-linux-x64/
are built with a date of Jan 1, 1980:
$ ls -l compass/packages/compass/dist/MongoDB\ Compass\ Dev-linux-x64/
total 184572
-rw-r--r-- 1 jwoehr jwoehr 141930 Jan 1 1980 chrome_100_percent.pak
-rw-r--r-- 1 jwoehr jwoehr 208519 Jan 1 1980 chrome_200_percent.pak
-rwxr-xr-x 1 jwoehr jwoehr 50656 Jan 1 1980 chrome-sandbox
-rw-r--r-- 1 jwoehr jwoehr 10413488 Jan 1 1980 icudtl.dat
-rwxr-xr-x 1 jwoehr jwoehr 233960 Jan 1 1980 libEGL.so
-rwxr-xr-x 1 jwoehr jwoehr 11158672 Jan 1 1980 libffmpeg.so
-rwxr-xr-x 1 jwoehr jwoehr 7234040 Jan 1 1980 libGLESv2.so
-rwxr-xr-x 1 jwoehr jwoehr 4168528 Jan 1 1980 libvk_swiftshader.so
-rwxr-xr-x 1 jwoehr jwoehr 4426328 Jan 1 1980 libvulkan.so.1
-rw-r--r-- 1 jwoehr jwoehr 41462 Mar 7 06:44 LICENSE
-rw-r--r-- 1 jwoehr jwoehr 5285976 Mar 7 06:44 LICENSES.chromium.html
drwxrwxr-x 2 jwoehr jwoehr 4096 Mar 7 06:44 locales
-rwxr-xr-x 1 jwoehr jwoehr 140273080 Jan 1 1980 'MongoDB Compass Dev'
drwxrwxr-x 3 jwoehr jwoehr 4096 Mar 7 06:44 resources
-rw-r--r-- 1 jwoehr jwoehr 5093175 Jan 1 1980 resources.pak
-rw-r--r-- 1 jwoehr jwoehr 48465 Jan 1 1980 snapshot_blob.bin
drwxrwxr-x 2 jwoehr jwoehr 4096 Mar 7 06:44 swiftshader
-rw-r--r-- 1 jwoehr jwoehr 165677 Jan 1 1980 v8_context_snapshot.bin
-rw-r--r-- 1 jwoehr jwoehr 11 Mar 7 06:44 version
-rw-r--r-- 1 jwoehr jwoehr 107 Jan 1 1980 vk_swiftshader_icd.json