unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: Go Package with multiple subpackage
@ 2024-10-26 22:11 Sharlatan Hellseher
  2024-10-27 15:14 ` Denis 'GNUtoo' Carikli
  0 siblings, 1 reply; 10+ messages in thread
From: Sharlatan Hellseher @ 2024-10-26 22:11 UTC (permalink / raw)
  To: guix-devel; +Cc: Denis 'GNUtoo' Carikli

[-- Attachment #1: Type: text/plain, Size: 3091 bytes --]


Hi Denis,

Adding to Andreas's thesis - it's hard to be the first =) and extending
your concern - start with small; small series, small contribution,
small steps, but be persistent in your efforts and keep the attitude
(refering to Chris Hadfield's "An Astronaut's Guide to Life on Earth").

To ease you first step - just don't think about overwhelming complexity
of bringing all 500+ (or more) packages into Guix at one go, start with
short logical series say 5-10. Contribution in small series is,
personally as a commiter, easy to review and merge quickly than wait for
months when someone has a free time slot to review long chain (I
try to find time between family duties and main job).

Sending small series from larger count of involved contributors makes
propagation of new packages much faster, e.g. you may pack 10 projects
which will be in inputs for others sent by someone else etc.

Take a look at the current effort of unbundle (gnu packages ipfs) -
kubo. Bit by bit and we nearly unweaved the rainbow.

--8<---------------cut here---------------start------------->8---
I've also no idea about how many go packages use bundled dependencies,
so maybe if there is a way to somehow un-bundle part of the
dependencies it could be a road to improve the situations as the
maintenance the dependencies shared by many go packages could be shared
somehow (assuming people do check that when updating things it doesn't
break other packages).
--8<---------------cut here---------------end--------------->8---

This part may be addressed in go-build-system with default phase,
removing "vendor" directory - the only way to bundle in Go ecosystem.

--8<---------------cut here---------------start------------->8---
Another issue is that all that is statically built but that's part of
the default go compiler if I understood well, though given how Guix
works, it might easier to somehow use shared libraries (compared to
more standard distributions) if some compilers that support that since
we don't need very strict/strong ABI guarantees with Guix, and thanks
to that, reduce build times and resources consumption (like RAM, space,
etc).
--8<---------------cut here---------------end--------------->8---

There is nearly 0 linking to any libraries in Go ecosystem, each
"library" is a bunch of code which compiler use to build the final
binary, nothing is linked in terminology of C/C++ e.g. - library from
the Golang point of view is a source code (text, not blob)

--8<---------------cut here---------------start------------->8---
What would be the quality of the maintenance in the long run with
about 500 packages to update?
--8<---------------cut here---------------end--------------->8---

No need to update all the chain to make a fresh version of final binary
in most cases it's enough to refresh 2-3 packages to make build/test
green. Golang does not implement any pin mechanics for dependencie
versions like Rust/Cargo does.

So... let's get packages be packed and review in small consistence flow,
keep your altitude and let the curiosity be with you!

Keep hacking.

--
Oleg

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread
* Go Package with multiple subpackage
@ 2024-09-22 21:30 Sharlatan Hellseher
  0 siblings, 0 replies; 10+ messages in thread
From: Sharlatan Hellseher @ 2024-09-22 21:30 UTC (permalink / raw)
  To: superfly.johnson; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 821 bytes --]


Hi,

That issue is resolved on go-team branch which it's prepared for the
merge right now.

See 
- https://git.savannah.gnu.org/cgit/guix.git/commit/?h=go-team&id=45cbf468d25ddb0075db14f372caea8ba1add26c
- https://git.savannah.gnu.org/cgit/guix.git/commit/?h=go-team&id=d691b09392fa0034d4ccbcd5b1d9b5b71af609d9
- https://git.savannah.gnu.org/cgit/guix.git/commit/?h=go-team&id=23dbf8d073fa0eae4f3422d2997078c44d295074

I'm about to refresh/import all dependencies to upgrade/unbundle:

- go-afero:201
- go-boxo:223
- go-chezmoi:38
- go-matterbridge:300+
- go-rclone:352
- go-restic:225
- go-viper:227
- go-xtaci-kcp-go-v5:203

Feel free to check go-branch and how the import works now.
It also has fix for embed files via new key parameter #:embed-files and
additional #:test-flags.

--
Oleg

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread
[parent not found: <8f50a338-43e8-4142-90de-fb255686aaca.ref@yahoo.com>]

end of thread, other threads:[~2024-10-27 17:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-26 22:11 Go Package with multiple subpackage Sharlatan Hellseher
2024-10-27 15:14 ` Denis 'GNUtoo' Carikli
2024-10-27 17:56   ` Andreas Enge
  -- strict thread matches above, loose matches on Subject: below --
2024-09-22 21:30 Sharlatan Hellseher
     [not found] <8f50a338-43e8-4142-90de-fb255686aaca.ref@yahoo.com>
2024-09-22 17:21 ` Superfly Johnson
2024-10-18 21:43   ` Denis 'GNUtoo' Carikli
2024-10-21 14:18     ` Andreas Enge
2024-10-21 19:32       ` Samuel Christie via Development of GNU Guix and the GNU System distribution.
2024-10-25 22:46       ` Denis 'GNUtoo' Carikli
2024-10-21 17:13   ` Nicolas Graves

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).