Sharing Code Between Projects

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Sharing Code Between Projects

alexchernoff
Dear All,

I have multiple projects sharing certain modules such as logging, config routines... I created a symlink in each project's .src directory pointing to the actual file (with relative path like ln -s ../../../../SHARED/Mod_Logging.module)

Gambas sees it, also recognizes it as a link (icon has an arrow) but it's read only and no way to unlock. I tried all possible permissions and still no luck.

Anyone know about this or maybe better way to share modules?

thanks!

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

adamnt42@gmail.com
On Tue, 6 Jun 2017 02:22:26 -0700 (MST)
alexchernoff <[hidden email]> wrote:

> Dear All,
>
> I have multiple projects sharing certain modules such as logging, config
> routines... I created a symlink in each project's .src directory pointing to
> the actual file (with relative path like ln -s
> ../../../../SHARED/Mod_Logging.module)
>
> Gambas sees it, also recognizes it as a link (icon has an arrow) but it's
> read only and no way to unlock. I tried all possible permissions and still
> no luck.
>
> Anyone know about this or maybe better way to share modules?
>
> thanks!
>
>
>
>
>
> --
> View this message in context: http://gambas.8142.n7.nabble.com/Sharing-Code-Between-Projects-tp59251.html
> Sent from the gambas-user mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gambas-user


See here : http://gambaswiki.org/wiki/doc/library

--
B Bruen <[hidden email] (sort of)>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

Charlie
In reply to this post by alexchernoff
If you want to use a Module that is in another program just right click on FMain in the Project window and click in Import..



Navigate to the Module you want and open it in your project.

Or did I misunderstand what you are looking for?

Check out www.gambas.one

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

PICCORO McKAY Lenz
2017-06-06 7:02 GMT-04:00 Charlie <[hidden email]>:

> If you want to use a Module that is in another program just right click on
> FMain in the Project window and click in Import..
>
> <http://gambas.8142.n7.nabble.com/file/n59254/Selection_265.png>
>
> Navigate to the Module you want and open it in your project.
>
> Or did I misunderstand what you are looking for?
>

i want the same he said, u misunderstand

he wants to code the same component sahred by other project but without
duplication..

when u import the module, the code its duplicate.. if created simplink the
code its read only

*the solution its that all the shared code will be git submodules.. *




>
>
>
>
>
> -----
> Check out www.gambas.one
> --
> View this message in context: http://gambas.8142.n7.nabble.
> com/Sharing-Code-Between-Projects-tp59251p59254.html
> Sent from the gambas-user mailing list archive at Nabble.com.
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

alexchernoff
Correct, "import" only creates a local copy, and using a symlink results in a read only code in the IDE.

The goal is to edit shared centralised modules and having all projects see the changes.

Thanks
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

PICCORO McKAY Lenz
2017-06-06 10:13 GMT-04:00 alexchernoff <[hidden email]>:

> Correct, "import" only creates a local copy, and using a symlink results
> in a
> read only code in the IDE.
>
> The goal is to edit shared centralised modules and having all projects see
> the changes.
>
yeah like java does..

in some days i'll publish an article about using gambas modules and shared
code for editing live, but with git submodules..

but today i'm very busy due lack of funtionality in odbc module, make me
work doulble


>
> Thanks
>
>
>
> --
> View this message in context: http://gambas.8142.n7.nabble.
> com/Sharing-Code-Between-Projects-tp59251p59261.html
> Sent from the gambas-user mailing list archive at Nabble.com.
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

Christof Thalhofer
In reply to this post by alexchernoff
Am 06.06.2017 um 16:13 schrieb alexchernoff:
> Correct, "import" only creates a local copy, and using a symlink
> results in read only code in the IDE.
>
> The goal is to edit shared centralised modules and having all
> projects see the changes.

You can do this by creating a project as library. After you compiled it
once and mad an executable with Ctrl-Alt-X, all modules and classes with
the magic word "Export" in the beginning are shared by the library and
can be used in other projects.

You have to choose the library inside the other projects' definition
dialog (in the IDE).

So you can outsource common code and use it in a lot of projects.

http://gambaswiki.org/wiki/doc/library

Alles Gute

Christof Thalhofer

--
Dies ist keine Signatur


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

PICCORO McKAY Lenz
2017-06-07 7:33 GMT-04:00 Christof Thalhofer <[hidden email]>:
> Am 06.06.2017 um 16:13 schrieb alexchernoff:
>> The goal is to edit shared centralised modules and having all
>> projects see the changes.
>
> You can do this by creating a project as library. After you compiled it
> once and mad an executable with Ctrl-Alt-X, all modules and classes with
> the magic word "Export" in the beginning are shared by the library and
> can be used in other projects.
umm i was triying in the past that but not was as expected, i dont
remenber why, i try right now and report feedback here... due i'm in
same problem

>
> You have to choose the library inside the other projects' definition
> dialog (in the IDE).
>
> So you can outsource common code and use it in a lot of projects.
>
> http://gambaswiki.org/wiki/doc/library

umm seems the complication in the past was the locations of the
codes.. all of this have hardcoded paths... in git submodules there-s
no hardcode depends, due submodules can work off-line independen of..

if i moved the library from original path to another path, all the
depends break down..

i'll try and later report feedback

>
> Alles Gute
>
> Christof Thalhofer
>
> --
> Dies ist keine Signatur
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

adamnt42@gmail.com
On Wed, 7 Jun 2017 09:38:52 -0400
PICCORO McKAY Lenz <[hidden email]> wrote:

> 2017-06-07 7:33 GMT-04:00 Christof Thalhofer <[hidden email]>:
> > Am 06.06.2017 um 16:13 schrieb alexchernoff:
> >> The goal is to edit shared centralised modules and having all
> >> projects see the changes.
> >
> > You can do this by creating a project as library. After you compiled it
> > once and mad an executable with Ctrl-Alt-X, all modules and classes with
> > the magic word "Export" in the beginning are shared by the library and
> > can be used in other projects.
> umm i was triying in the past that but not was as expected, i dont
> remenber why, i try right now and report feedback here... due i'm in
> same problem
>
> >
> > You have to choose the library inside the other projects' definition
> > dialog (in the IDE).
> >
> > So you can outsource common code and use it in a lot of projects.
> >
> > http://gambaswiki.org/wiki/doc/library
>
> umm seems the complication in the past was the locations of the
> codes.. all of this have hardcoded paths... in git submodules there-s
> no hardcode depends, due submodules can work off-line independen of..
>
> if i moved the library from original path to another path, all the
> depends break down..
>
> i'll try and later report feedback
>
> >
> > Alles Gute
> >
> > Christof Thalhofer
> >
> > --
> > Dies ist keine Signatur
> >
> >
> > ------------------------------------------------------------------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > _______________________________________________
> > Gambas-user mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> >
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gambas-user

gerhard

I think you need to understand a lot more about libraries and components. Libraries are useful for one developer trying to re-use code between projects on a single machine. If you are talking about deploying shared code in a way that it can be used by different people developing different projects on different machines then you need to look at the component mechanism.  There is really no programming difference between a library and a component (except when talking about gui controls).  The difference is how and where they are deployed.
Libraries are (or were,until the naming convention changed :-< ) simple and easy. Components offer more deployment options but require a bit more packaging effort.

b

--
B Bruen <[hidden email] (sort of)>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

PICCORO McKAY Lenz
maybe its a good idead paste more clarelly that in gambas wiki..  the
documentation lack of that explanations, so right documentation its
important!

2017-06-07 10:25 GMT-04:00 [hidden email] <[hidden email]>:

> useful for one developer trying to re-use code between projects on a
> single machine. If you
>
library its limited to hardcoded path's.. so that was the problem in the
past


> are talking about deploying shared code in a way that it can be used by
> different people developing different projects on different machines then
> you need to look at the component
>
the problem with componente its the deploy system was not so simple..

my solution was used git submodules.. more standard way and more
generalized.. a manpower when comes and started, comes with git knowledge
with it!


> mechanism.  There is really no programming difference between a library
> and a component (except when talking about gui controls).  The difference
> is how and where they are deployed.
>
components it th right choice for distributed projects.. the only problem
its that must be deployed to all users can implement the result code
functions.. and not directly in IDE repository code..


>
> Libraries are (or were,until the naming convention changed :-< ) simple
> and easy.

yes.. right choice for local only projects but hardcoded paths limit the
usage of in distribute projects


> Components offer more deployment options but require a bit more packaging
> effort.
>
its the right choice for distribute projects, but limited to gambas only
usage and need deploy..

maybe its a good idead paste more clarelly that in gambas wiki..  the
documentation lack of that explanations


>
> b
>
> --
> B Bruen <[hidden email] (sort of)>
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

gambas-user mailing list
In reply to this post by adamnt42@gmail.com
Le 07/06/2017 à 16:25, [hidden email] a écrit :

>
> I think you need to understand a lot more about libraries and
> components. Libraries are useful for one developer trying to re-use
> code between projects on a single machine. If you are talking about
> deploying shared code in a way that it can be used by different
> people developing different projects on different machines then you
> need to look at the component mechanism.  There is really no
> programming difference between a library and a component (except when
> talking about gui controls).  The difference is how and where they
> are deployed. Libraries are (or were,until the naming convention
> changed :-< ) simple and easy. Components offer more deployment
> options but require a bit more packaging effort.
>
> b
>

Actually, components are more like extensions to the Gambas language,
and should be distributed with the Gambas source code.

So you should always make libraries for your own needs.

A library package is installed system-wide, and can be used by any
Gambas program, as now the reference to the library is based on its
name, not its absolute path as it was before.

A library used by a project is referenced by its vendor, and by its name.

When the project is executed, the library is searched in the following
paths, in that order:

1) '<project executable directory>/<name>.gambas' (for
backward-compatibility).

2) '$XDG_DATA_HOME/gambas3/lib/<vendor>/<name>:<version>.gambas' (if
$XDG_DATA_HOME is defined).

3) '~/.local/share/gambas3/lib/<vendor>/<name>:<version>.gambas', (if
$XDG_DATA_HOME is NOT defined).

4) '<project extra archive directory>/<vendor>/<name>:<version>.gambas'
(the project extra archive directory is a project property defined in
the 'library' tab of the project property dialog).

5) '/usr/lib/gambas3/<vendor>/<name>:<version>.gambas' (library packages
are installed there, system-wide).

6) '/usr/bin/<vendor>/<name>.gambas' (standard gambas programs can be
used as libraries).

I suggest not to use the 1) and 6) feature, they are there for
backward-compatibility mainly.

2) & 3) are there for user-wide installation of libraries. Libraries are
installed user-wide when you make an executable from their source
project ; or when you install a library from the gambas farm.

I hope all that was clear!

Regards,

--
Benoît Minisini

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

alexchernoff
Using a Library works well, thanks!

Is it possible to name it something other than .gambas? like XYZ_Super_Library.lib?

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

PICCORO McKAY Lenz
2017-06-09 4:00 GMT-04:30 alexchernoff <[hidden email]>:

> Using a Library works well, thanks!
>
> Is it possible to name it something other than .gambas? like
> XYZ_Super_Library.lib?
>
nop, like docs said must be gambas until are system wide


>
>
>
>
>
> --
> View this message in context: http://gambas.8142.n7.nabble.
> com/Sharing-Code-Between-Projects-tp59251p59292.html
> Sent from the gambas-user mailing list archive at Nabble.com.
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Sharing Code Between Projects

PICCORO McKAY Lenz
In reply to this post by alexchernoff
2017-06-09 4:00 GMT-04:30 alexchernoff <[hidden email]>:

> Using a Library works well, thanks!
>
> Is it possible to name it something other than .gambas? like
> XYZ_Super_Library.lib?
>
when are installed u can mannually search for a different name...


>
>
>
>
>
> --
> View this message in context: http://gambas.8142.n7.nabble.
> com/Sharing-Code-Between-Projects-tp59251p59292.html
> Sent from the gambas-user mailing list archive at Nabble.com.
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Loading...