Dev Environment Setup¶
Prerequisites¶
- Some version of git will be needed. The recommended method is the SmartGit client.
- Download SmartGit client
- SmartGit licenses
- The JDM Platform repository will need to be cloned from gitlab.sancsoft.net. It is reccomended that a
gitfolder be created in your user's home folder, with aplatformfolder within that to store the everything that is cloned from the repository. - SSH keys will need to be generated for GitLab to clone the JDM Platform repository. A guide for doing that can be found here: Use SSH keys to communicate with GitLab - GitLab Docs.
Tools¶
The recommended code editor is Visual Studio Code with the C# and Angular Language Service extensions installed.
.NET¶
ShedBuilder uses the .NET 8.0 framework. The SDK can be downloaded from Microsoft's dotnet webpage. SDK version 8.0.302, found in the the 8.0.6 collapsible section, is confirmed to work. Make sure to install the correct version for your OS.
- For 64-Bit Windows, download the x64 version of the Windows installer.
- For ARM-Based Windows, download the Arm64 version of the Windows installer.
- For Linux, follow the package manager instructions.
- For Macs with Apple Silicon (M-series processor), download the Arm-64 version of the macOS installer.
- For older Macs with an Intel processor, download the x64 macOS installer.
Additional help links: - https://dotnet.microsoft.com/en-us/learn/dotnet/hello-world-tutorial/install - https://stackoverflow.com/questions/53030531/dotnet-command-not-found-in-mac
Node¶
ShedBuilder is setup using Node v14.19.3. Using later versions of Node results in compatibility issues. Using a Node version managing tool to install the correct version of Node is recommended. For Windows systems: NVM Windows
Node (MacOS Environment)¶
Install the recommended v14.19.3. https://nodejs.org/en/blog/release/v14.19.3
- If the latest version (which will have compatibility issues with ShedBuilder) is installed, uninstalling it will be a bit tedious without a node version manager. Here is how to do it without a manager: https://macpaw.com/how-to/uninstall-node-mac
Node Packages¶
Open a console in the shedbuilder/src/ShedBuilder.Web/ClientApp directory and run the command npm install. This will install all of the packages listed in the package.json file.
- MacOS Environment setup should follow the same procedure here. Make sure to take care of the NuGet instructions below first!
npm installcan be run in each directory where apackage.jsonfile exists (likeOutdoors.Web).
Amazon Web Services (AWS)¶
Developer AWS credentials have been configured, and this gives access to the bucket jdmstructures-data, and read/write access to the /dev prefix. Note that the access key ID and secret access key shown below are filler values for demonstration purposes. You will need to get the real values from a dev team member.
- Install AWS CLI
- Configure a profile named
jdmdev - Ensure your
platformsettings.Development.jsonfile has the AWS profile and region defined.
C:\Users\sancsoft>aws configure --profile jdmdev
AWS Access Key ID [None]: xxxxxx
AWS Secret Access Key [None]: yyyyyy
Default region name [None]: us-east-2
Default output format [None]:
- MacOS Environment setup should follow the same procedure here.
NuGet¶
Trying to run dotnet build to build the Platform project at this point will still throw an error. This is likely due to needing to add the Sancsoft NuGet server, which can be found on the Sancsoft wiki page for NuGet.
Instructions for adding the Sancsoft NuGet server can be found here: dotnet NuGet add Source - Microsoft.
NuGet (MacOS Environment)¶
A NuGet service configuration needs to be setup. Use jdm % dotnet nuget add source http://nuget.sancsoft.net/nuget -n nuget.sancsoft.net
MacOS - Additional Build Issues¶
There will be an exception when trying to run the Order Admin and Outdoors Web.
- To prevent the Order Admin exception, comment out or remove the line that contains
mvcBuilder.AddRazorRuntimeCompilation();inJDMAdmin.Admin/Program.cs. - To prevent the Outdoors exception, remove the following bit of code:
.AddRazorRuntimeCompilation();inJDMOutdoors.Web/Program.cs.