gridcoin-community / Gridcoin-Tasks

Gridcoin community tasks repository
https://gridcoin.us
MIT License
24 stars 5 forks source link

tutorial: set up dev environment #90

Closed skcin closed 4 years ago

skcin commented 6 years ago

Issue by Erkan-Yilmaz Saturday Feb 18, 2017 at 12:04 GMT Originally opened as https://github.com/Erkan-Yilmaz/Gridcoin-tasks/issues/87


@Quezacoatl1 asks here:

"Is there a guide to set up a dev environment? Or could anyone set one up?"

please contribute with ideas, docs

skcin commented 6 years ago

Comment by grctest Saturday Feb 18, 2017 at 12:38 GMT


@gridcoin @TheCharlatan @Quezacoatl1 @denravonska @caraka @theMarix @Tahvok

skcin commented 6 years ago

Comment by denravonska Saturday Feb 18, 2017 at 12:51 GMT


Would Docker work for this?

skcin commented 6 years ago

Comment by caraka Sunday Feb 19, 2017 at 21:20 GMT


'dev environment' is a very open question. For my limited contributions to the code and for patching, I use git and a text editor. For my build tests and for managing the Ubuntu PPA, I use docker extensively.

If you have a favourite IDE, setting it up in docker is very convenient and reasonably portable.

skcin commented 6 years ago

Comment by LokiToki Thursday Feb 23, 2017 at 14:05 GMT


Hi,

i spend the whole day on this topic. What i did:

Installing Qt-Creator on Windows, because the Wallet is a Qt project. Had trouble with levelDB and installed some additional stuff including boost. Very annoying... After some hours of raging i was looking for a docker solution but how docker should solve the problem? For me it's just a cmd based VB with some "bridges". I'm new to docker but i didn't find a way to set up an IDE with GUI or something like that.

The leads me to my first conclusion: A virtual machine with a rock solid Linux and needed packages with correct version seems to be the best solution.

My recommendations:

Greetings Loki

PS: cloning the Qt Project from GitHub with Qt-Creator works absolutely fine

skcin commented 6 years ago

Comment by startailcoon Monday Feb 27, 2017 at 20:40 GMT


Linked now has a very cheap shared server for only $5/month. https://www.linode.com/pricing

They are reliable and works great, and are expandable on the fly pretty much. Give it a try if you are going to set things up, I can only recommend them.

skcin commented 6 years ago

Comment by LokiToki Wednesday Mar 01, 2017 at 13:13 GMT


So, after some more hours i put a first version of a Virtual Machine together with a short guide "how to use". It's a pretty raw first Version so feel free to ask or suggest enhancements.

PDF: https://mega.nz/#!ChxSgSZS!ElPyMdfq7kz_4IKbLqx2S1SdGVZtl4TQC7KwePBfVlg

Virtual Machine (2.7 GB): https://mega.nz/#!ytASzb5S!6GOmgcnuz2KfzZG3tOSMQoHTu89TZ9CmHc88hqP7tXA

Greetings

2017.03.03 Update: PDF Version 0.1.1ALPHA with images and detailed installation steps. https://cryptocointalk.com/topic/52839-guidetool-virtual-machine-for-easy-development-start/

skcin commented 6 years ago

Comment by Lenni Friday Sep 01, 2017 at 19:52 GMT


Has anyone figured out how to cross-compile the wallet for Windows in the Linux VM?

skcin commented 6 years ago

Comment by denravonska Friday Sep 01, 2017 at 20:22 GMT


@Lenni it's on its way in the autotools branch.

skcin commented 6 years ago

Comment by TheCharlatan Friday Sep 01, 2017 at 20:23 GMT


In future the dev environment can be setup with either the depends system, similar to the one bitcoin is using, or by installing all the dependencies and using autotools to configure the project. I have created a pull request for this change here: https://github.com/gridcoin/Gridcoin-Research/pull/487 Its current state is that the autotools scripts run fine on linux and mac and the depends system compiles all the dependencies needed for linux, mac and windows as well, I have not been able to get a windows build yet, but it seems to be just a few more environment variable fixes away. Once this is achieved, the build system will be super flexible, capable of building the daemon, gui, tests and gui tests all in one go on linux, mac and windows. If anyone wants to add to it, please do!