Help Build GCentral
The indexing tool is just the first step in GCentral's mission. Help us improve it!
The instruction below will help you setup your system to collaborate in building this tool for the whole community. There is also a list of possible improvements but if you have a good idea, please let us know!
If you get stuck on any of the instructions, post your questions on GCentral's discussion thread on LAVA.
Instructions to Help Build GCentral
The GCentral Indexer is currently written with LabVIEW NXG 4.0 and LabVIEW 2019.
Setting up a Virtual Machine (VM)
It is recommended for any project that you start by setting up a Virtual Machine first. It is really up to you if you want to do this step but Sam Taggart, CLA and LabVIEW Champion of SAS presents some good reasons you should:
Setup depends on the Virtualization software you choose. As Sam stated the two major ones are:
Creating Initial VMs
From Sam's blog:
"There are basically 2 ways to create the initial VM to use for your base VM. One way is to create a VM from scratch and install Windows using an iso. In VMWare, it is pretty straightforward and there are plenty of tutorials online if you get stuck. A quicker way is if you already have a physical machine is to use a free tool from VMWare. It takes a physical machine and converts it into a virtual machine. "
For VirtualBox, see the online manual here for instructions on setting up your first machine. After you have one up and running, you can clone it using the Clone Virtual Machine wizard. (See the online manual here).
Again quoting Sam:
"Whichever one you use, you want to be conscious of the size of the hard drive. You want to make it as small as possible and yet have enough space to do whatever development you need to do. Somewhere in the 50-100Gb range seems to work well. NOTE: You can expand it later. Also there may be an option to preallocate the entire harddrive space. Don’t do that. We want it to grow as we fill it to save space on the host. "
Software to Install
Before installing anything else you might want to consider what software you want on your base VM. If you want to avoid setting things up from scratch again, create a base VM first, clone it to make a working VM, then install the software that is project specific. The specific software might include which version of LabVIEW/LabVIEW NXG to install.
For working on the GCentral Indexer there might be other software you wish to install but at a minimum you will need:
Other software suggestions include:
- SourceTree (Git Client GUI, easier than Git Commands)
- Chrome, Firefox, Opera, etc. (If you don't like I.E. or Edge)
Getting the GCentral Repository
If you are new to Git for source code control and chose to use SourceTree (and I recommend you do) here is some help getting SourceTree set up and connected to the GCentral repository.
1. Open the GCentral GitHub repo in a browser. The repository is located on GitHub at: https://github.com/gcentral/Website
2. Fork the repo to your own account:
4. Open Source Tree
5. Select File-->Clone / New...
6. Paste the repo URL.
7. Set you local code directory on your hard drive.
8. Click Clone.
9. Wait until the cloning is complete. You now have a copy of the repo locally on your computer.
Getting all Dependencies
Tour of the Source Code
The indexer for the GCentral Website consists of two projects:
- The NXG WebApp
- The LV WebServices
Suggestions on Improvements
These first suggestions are from Matthias Baudot, whom created the indexer:
- Refactor the storage of Packages on the WebServices in a Database instead of a file as it is now. I think using SQLite would be a good idea since it doesn’t involve complex infrastructure with the need to install a database server. The WebServices will need to be modified to go look for packages in that database instead of looking at the Repo global variable.
- Implement a Configuration File for the Web Services where we can specify the repositories to be fetched (GPM, VIPM, NIPM). Right now, there is only one GPM repo and 2 VIPM repos. When we will add NIPM, it will be important to be able to specify the feeds in a config file rather than rebuilding the WebServices when a new feed needs to be added.
- Rating packages
- User Login allowing them to register private repos/feeds
Have ideas of your own? Please, share your own ideas on GCentral's discussion thread on LAVA.