-
Notifications
You must be signed in to change notification settings - Fork 434
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
high level over view for adding features #3309
Comments
Currently the only way for adding new features is to modify the source and then reinstall the GUI. On Windows and macOS this means you have to either compile the modified source to binaries or install the python3 interpreter and run the GUI using the interpreter. As compiling the GUI is undocumented, the second way is easier, but redistribution is difficult. The easiest way is to convince the GNS3 devs to include your addition. Adding new features in the nodes context menu is done in graphics_view.py function populateDeviceContextualMenu. If you need new API endpoints you additionally have to modify the GNS3 server. The issue #708 discusses a plugin system, that would allow to add new features to the GUI without modifying its source. But that is one of those ever lasting issues (already open since 2015) and I don't know, if you want to wait for its implementation. |
Yeah, I think I'll stick to doing dev work on Linux which should make prototyping easier. Thanks for the link to graphics_view.py. That should be enough to get me started. I don't think I'll need a new API endpoint, but I really don't know yet. |
Development under Windows or macOS is not much different to development under Linux. You have to install Python3, choose a good editor and then you are good to go. Even when you prefer using Linux, you might want to check, if your changes are running fine on Windows. My comment about compiling the source was meant, when you want to distribute your changes. On Linux there is normally python installed. So you can give others your sources, and tell then to install it with |
ah, I get you. I'll do this as a push request and see happens. I don't plan on making an official Spikefish GNS3 fork beyond doing so for patches. |
Hi, can you give some guidance on how to make an installer on Windows. I tried PyInstaller but
|
Sorry no, I have never tried to create an installer. |
OK, do you know who is responsible for making the installer, just as you said, there is no related document. |
@kefins unfortunately we do not share how we make the installer. We use cx_Freeze and NSIS to make it. |
OK, I got it. I used PyInstaller and NSIS, maybe I should try cx_Freeze. Thank you, anyway. |
I'd like to play around with adding a feature to GNS3. The idea is to right click a VM and create a new base image.
high level this would have to make sure the VM is shutoff, verify its qcow backed and then issue a qemu-img command to clone it and maybe create a copy of the template. Just kind of thinking out loud at the moment.
Is there a high level work flow for adding feature to the gui? Not sure if that requires recompile of the fat client. I'm also not sure if the feature I'm thinking about would require a new API end point, but lets just say in theory it did.
Any pointers?
The text was updated successfully, but these errors were encountered: