Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » UppHub
UppHub [message #55542] Fri, 20 November 2020 17:37 Go to next message
mirek is currently offline  mirek
Messages: 14162
Registered: November 2005
Ultimate Member
This will be both development thread and the testing data... Smile

UPPHUB_BEGIN
{
  "nests": [
    { "name": "URR",
      "packages": [ "Urr" ],
      "description": "Simple UDP Request-Response protocol",
      "repository": "https://github.com/mirek-fidler/urr.git",
      "status": "stable",
      "category": "networking",
      "readme": "https://raw.githubusercontent.com/mirek-fidler/urr/master/README.md"
    },
    { "name": "Turtle",
      "packages": [ "Turtle"],
      "description": "Provides HTML5 web application with U++ plain GUI code",
      "repository": "https://github.com/mirek-fidler/Turtle.git",
      "status": "experimental",
      "category": "networking",
      "readme": "https://raw.githubusercontent.com/mirek-fidler/Turtle/master/README.md"
    },
    { "url": "https://www.ultimatepp.org/forums/index.php?t=msg&goto=55566&#msg_55566"
    }
  ]
}
UPPHUB_END

[Updated on: Thu, 28 January 2021 13:27]

Report message to a moderator

Re: Uppiverse [message #55568 is a reply to message #55542] Sun, 22 November 2020 14:00 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14162
Registered: November 2005
Ultimate Member
The very first experiment implemented in theide. I would like some sanity check by community before refining the issue.

Uppiverse is meant to be a decentralized system of independently developed U++ modules.

The idea for now is that such a module is an U++ nest somewhere on github (or another git repo, will probably add svn support in time). Then there are declaration files which are placed somewhere on the net (later probably in files), in the extreme it can even be a forum post as demonstated by this message thread and another one, "uppiverse2".

Declaration file is basically a json that declares that there is a repo with U++ nest, its name, description, packages, repo url AND (the important twist..) it also contains links to other declaration files (that is the one in uppiverse2 message thread for now).

Another element is "uppiverse" folder on development machine, that is where these nests are cloned. uppiverse folder can be set in assembly or left empty for default uppiverse (which is then set in theide settings or if empty is ConfigFile("uppiverse"). Integration of these cloned nests with current system is then trivial: all folders in uppiverse folder are simply added at then end of list of assembly nests.

I guess this is the basic description of current status. In theide trunk, in setup menu, there is a new very preliminary "Install Uppiverse package(s).." entry to test this, it really now just loads the links from the forum uppiverse2 message thread Smile (will be changed later).

A lot is to be polished and resolved, the one relatively difficult thing is that uppiverse should be somehow activated when on loading the main package some package is missing. There are also issues with possible nameclashes, I think the best solution is to declare any nest that would introduce a package nameclash ill-formed and reject its installation (more specifically, remove it after installation).

Also, if you do not like "uppiverse", I absolutely welcome suggestions for a better name!

[Updated on: Sun, 22 November 2020 14:00]

Report message to a moderator

Re: Uppiverse [message #55581 is a reply to message #55568] Sun, 22 November 2020 22:54 Go to previous messageGo to next message
Klugier is currently online  Klugier
Messages: 1086
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello Mirek,

We should support not only branch name but tag (common approach for creating library release) and commit. Basing on branch is risky especially on master it can break anytime.

Do you plan to pull on build? As I wrote before branch could change anytime

Maybe we should try removing i from "uppverse" or "uverse" (Ultimate universe). My other proposition is "upm" (Ultimate package manager) very similar to umk. We could collect proposition and make final decision basing on poll.

Klugier


U++ - one framework to rule them all.

[Updated on: Sun, 22 November 2020 23:00]

Report message to a moderator

Re: Uppiverse [message #55583 is a reply to message #55581] Sun, 22 November 2020 23:51 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14162
Registered: November 2005
Ultimate Member
Klugier wrote on Sun, 22 November 2020 22:54
Hello Mirek,

We should support not only branch name but tag (common approach for creating library release) and commit. Basing on branch is risky especially on master it can break anytime.


Sure, that is IMO detail.

Quote:

Do you plan to pull on build? As I wrote before branch could change anytime


No. Everything else should be exactly the same as now. You can pull by sync...

Mirek
Re: Uppiverse [message #55590 is a reply to message #55581] Mon, 23 November 2020 11:11 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14162
Registered: November 2005
Ultimate Member
Klugier wrote on Sun, 22 November 2020 22:54


Maybe we should try removing i from "uppverse" or "uverse" (Ultimate universe). My other proposition is "upm" (Ultimate package manager) very similar to umk. We could collect proposition and make final decision basing on poll.

Klugier


UU or UU++ ? Smile
Re: Uppiverse [message #55603 is a reply to message #55590] Mon, 23 November 2020 20:27 Go to previous messageGo to next message
Didier is currently offline  Didier
Messages: 697
Registered: November 2008
Location: France
Contributor
What about U++U (U++ Universe)

It could could make a fancy Icon Smile
Re: Uppiverse [message #55613 is a reply to message #55568] Mon, 23 November 2020 23:51 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1143
Registered: August 2007
Senior Contributor
Hello Mirek,

Wouldn't it be better to develop a standalone console app ("uppget", as per Klugier's suggestion) that will take some arguments and output the results in human or machine readable format? (Similar to any other CLI tool)

It can be run as a separate process and its output can be parsed by theIDE (as it is done with svn or git, for example).

This may simplify the development of this concept and reduce the risk of breaking theIDE.

Not to mention users can directly run it on CLI if they wish. And this way we can allow some batch operations if needed.


Best regards,
Oblivion


[Updated on: Mon, 23 November 2020 23:52]

Report message to a moderator

Re: Uppiverse [message #55614 is a reply to message #55613] Tue, 24 November 2020 00:23 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14162
Registered: November 2005
Ultimate Member
Oblivion wrote on Mon, 23 November 2020 23:51
Hello Mirek,

Wouldn't it be better to develop a standalone console app ("uppget", as per Klugier's suggestion) that will take some arguments and output the results in human or machine readable format? (Similar to any other CLI tool)

It can be run as a separate process and its output can be parsed by theIDE (as it is done with svn or git, for example).

This may simplify the development of this concept and reduce the risk of breaking theIDE.

Not to mention users can directly run it on CLI if they wish. And this way we can allow some batch operations if needed.


Best regards,
Oblivion


I think in time this will have to happen. But for me for now it is easier to develop it integrated with theide.

[Updated on: Tue, 24 November 2020 00:23]

Report message to a moderator

Re: Uppiverse [message #55674 is a reply to message #55614] Sun, 29 November 2020 18:40 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14162
Registered: November 2005
Ultimate Member
I have added the critical feature: If on start there is a missing package, theide now searches UppHub for it.

For testing, I have also created the first "real" repo: https://github.com/mirek-fidler/urr

The root hub was moved here: https://raw.githubusercontent.com/ultimatepp/ultimatepp/mast er/upphub.root - I guess it will stay there...

I guess now it is functional and ready for testing and finetuning...
Re: Uppiverse [message #55740 is a reply to message #55674] Sun, 06 December 2020 18:58 Go to previous messageGo to next message
Klugier is currently online  Klugier
Messages: 1086
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello Mirek,

I obtains following error when trying to download UppHub package:
index.php?t=getfile&id=6292&private=0

The problem here is that ssh access to git requires additional configuration. In our case when ssh failed we should reswitch to http and clone using following command:
git clone https://github.com/mirek-fidler/urr.git

Also, I think https way is much more safer as default clone strategy rather than ssh as it doesn't require any additional configuration. We could also think about adding ssh fail-back if https failed.

Klugier


U++ - one framework to rule them all.

[Updated on: Sun, 06 December 2020 18:59]

Report message to a moderator

Re: Uppiverse [message #55742 is a reply to message #55740] Sun, 06 December 2020 20:40 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1378
Registered: December 2006
Ultimate Contributor
Same with me.
I'm also wondering why it is cloning into .config/u++/ide/ ...
My .config is shared between several projects.
And this is not the place where I keep my source code ...


Regards,
Novo
Re: Uppiverse [message #55744 is a reply to message #55740] Mon, 07 December 2020 00:25 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14162
Registered: November 2005
Ultimate Member
Klugier wrote on Sun, 06 December 2020 18:58
Hello Mirek,

I obtains following error when trying to download UppHub package:
index.php?t=getfile&id=6292&private=0

The problem here is that ssh access to git requires additional configuration. In our case when ssh failed we should reswitch to http and clone using following command:
git clone https://github.com/mirek-fidler/urr.git

Also, I think https way is much more safer as default clone strategy rather than ssh as it doesn't require any additional configuration. We could also think about adding ssh fail-back if https failed.

Klugier


Thats sort of issue because https has sort of problem with commits. Or maybe it does not, I just was not able to commit with https at all.

Of course, the problem is relative and it is till the question: Do we want upphub packages to be edited "in upphub" (without separate repo)?

Mirek
Re: Uppiverse [message #55745 is a reply to message #55742] Mon, 07 December 2020 00:26 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14162
Registered: November 2005
Ultimate Member
Novo wrote on Sun, 06 December 2020 20:40
Same with me.
I'm also wondering why it is cloning into .config/u++/ide/ ...
My .config is shared between several projects.
And this is not the place where I keep my source code ...


Then change it in settings....

Suggest a better default place?

Mirek
Re: Uppiverse [message #55747 is a reply to message #55745] Mon, 07 December 2020 02:50 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1378
Registered: December 2006
Ultimate Contributor
mirek wrote on Sun, 06 December 2020 18:26

Then change it in settings....

Nothing happens when I press a Settings button ...
Quote:

Suggest a better default place?

Mirek

Next to MyApps ...
I'd call it "External", or "ExtCode", or "ExtApps" ...


Regards,
Novo
Re: Uppiverse [message #55748 is a reply to message #55747] Mon, 07 December 2020 03:05 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1378
Registered: December 2006
Ultimate Contributor
I do not know what is hidden behind the Settings button, but I'd like to recommend to take a look at vim-plug - Minimalist Vim Plugin Manager. It is extremely popular (21K stars).
It allows to use settings below with each module.
Option 	Description
branch/tag/commit 	Branch/tag/commit of the repository to use
rtp 	Subdirectory that contains Vim plugin
dir 	Custom directory for the plugin
as 	Use different name for the plugin
do 	Post-update hook (string or funcref)
on 	On-demand loading: Commands or <Plug>-mappings
for 	On-demand loading: File types
frozen 	Do not update unless explicitly specified

Besides of that it has a lot of optimizations, like it doesn't fetch whole history from git, just the last revision.
There is much more than just that.

IMHO, it makes sense to adapt this workflow.


Regards,
Novo
Re: Uppiverse [message #55750 is a reply to message #55747] Mon, 07 December 2020 05:14 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 1378
Registered: December 2006
Ultimate Contributor
Novo wrote on Sun, 06 December 2020 20:50

Next to MyApps ...
I'd call it "External", or "ExtCode", or "ExtApps" ...

Or next to Upp itself ...


Regards,
Novo
Re: Uppiverse [message #55755 is a reply to message #55747] Mon, 07 December 2020 13:20 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14162
Registered: November 2005
Ultimate Member
Novo wrote on Mon, 07 December 2020 02:50
mirek wrote on Sun, 06 December 2020 18:26

Then change it in settings....

Nothing happens when I press a Settings button ...


IDE settings. Sorry, it is all under development...


Quote:

Suggest a better default place?

Mirek

Next to MyApps ...
[/quote]

Next to MyApps is probably OK (it already is in Windows), but I would keep UppHub for clarity...
Re: Uppiverse [message #55934 is a reply to message #55755] Tue, 05 January 2021 10:23 Go to previous messageGo to next message
Xemuth is currently offline  Xemuth
Messages: 387
Registered: August 2018
Location: France
Senior Member
Maybe I'm totally late (almost 1 month from last post) but from my computer, it work fine.
I can Install/Uninstall package. I changed the directory of UppHub, worked fine too. The README button not working yet.

@Mirek, do you have design idea for the UppHub Window ?
have you planned to add a button to Open UppHub when being in the assembly window ?
have you planned to add a button to Open UppHub when being on TheIDE ?
https://i.imgur.com/1ctKBXC.png
Don't joke on it, I have done it in 3 min Laughing
Re: Uppiverse [message #55936 is a reply to message #55934] Tue, 05 January 2021 11:27 Go to previous messageGo to next message
Klugier is currently online  Klugier
Messages: 1086
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello Xemuth,

I was thinking about it. I think we should use one of the icon available in Silk Icons to be compatible with the rest of upp/ide icons.

I was searching for container, but without luck. Maybe anchor or box (box that keeps bricks)? Please view this image and propose your favorite option.

Klugier


U++ - one framework to rule them all.

[Updated on: Tue, 05 January 2021 11:28]

Report message to a moderator

Re: Uppiverse [message #55938 is a reply to message #55936] Tue, 05 January 2021 14:20 Go to previous messageGo to previous message
Xemuth is currently offline  Xemuth
Messages: 387
Registered: August 2018
Location: France
Senior Member
Quote:
I was thinking about it. I think we should use one of the icon available in Silk Icons to be compatible with the rest of upp/ide icons.


Shocked I through the brick icon to represente package was an U++ invention ! Shocked

I don't find anything which stick to the concept, maybe brick link : https://i.imgur.com/ITZvJ0o.png


Previous Topic: NetBSD support
Next Topic: Want to use CLANG with MSBT64 toolchain
Goto Forum:
  


Current Time: Sat Dec 14 14:25:26 CET 2024

Total time taken to generate the page: 0.03871 seconds