Skip to content

Commit ad01eb1

Browse files
authored
Publish things under the new name (gel-server, gel-cli, gel-ls) (#137)
Original package definitions remain unchanged so that back branches can continue to be built and published as `edgedb`. .deb and .rpm platforms publish "transitional" packages with old names which pull the new-named package as the dependency.
1 parent e9127a9 commit ad01eb1

File tree

33 files changed

+724
-268
lines changed

33 files changed

+724
-268
lines changed

edgedbpkg/edgedb/__init__.py

Lines changed: 70 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@
3737
)
3838

3939

40-
class EdgeDBNoPostgres(packages.BundledPythonPackage):
41-
title = "EdgeDB"
42-
ident = "edgedb-server"
40+
class GelNoPostgres(packages.BundledPythonPackage):
41+
title = "Gel"
42+
ident = "gel-server"
4343
description = "Next generation graph-relational database"
4444
license_id = "Apache-2.0"
4545
group = "Applications/Databases"
46-
identifier = "com.edgedb.edgedb-server"
47-
url = "https://edgedb.com/"
46+
identifier = "com.geldata.gel-server"
47+
url = "https://geldata.com/"
4848

4949
sources = [
5050
{
@@ -265,7 +265,7 @@ def get_package_repository(
265265
repo.register_package_impl("cryptography", Cryptography)
266266
repo.register_package_impl("cffi", Cffi)
267267
repo.register_package_impl("jwcrypto", JWCrypto)
268-
repo.register_package_impl("edgedb", EdgeDBPython)
268+
repo.register_package_impl("gel", EdgeDBPython)
269269
repo.register_package_impl("maturin", Maturin)
270270
return repo
271271

@@ -300,6 +300,14 @@ def slot(self) -> str:
300300
else:
301301
return f"{self.base_slot}-dev{self.get_catalog_version()}"
302302

303+
@property
304+
def marketing_name(self) -> str:
305+
return "Gel"
306+
307+
@property
308+
def marketing_slug(self) -> str:
309+
return "gel"
310+
303311
def version_includes_revision(self) -> bool:
304312
return ".s" in self.pretty_version
305313

@@ -310,7 +318,7 @@ def get_catalog_version(self) -> str:
310318
return entry[2:]
311319

312320
raise RuntimeError(
313-
f"no catalog version in EdgeDB version: {self.pretty_version}"
321+
f"no catalog version in Gel version: {self.pretty_version}"
314322
)
315323

316324
def get_version_metadata_fields(self) -> dict[str, str]:
@@ -334,7 +342,9 @@ def sh_get_build_wheel_env(
334342
if build.target.is_portable():
335343
runstate = ""
336344
else:
337-
runstate = str(build.get_install_path(self, "runstate") / "edgedb")
345+
runstate = str(
346+
build.get_install_path(self, "runstate") / self.marketing_slug
347+
)
338348
shared_dir = (
339349
build.get_install_path(self, "data") / "data"
340350
).relative_to("/")
@@ -396,13 +406,13 @@ def sh_get_build_wheel_env(
396406
return env
397407

398408
def get_build_script(self, build: targets.Build) -> str:
399-
# Run edgedb-server --bootstrap to produce stdlib cache
409+
# Run gel-server --bootstrap to produce stdlib cache
400410
# for the benefit of faster bootstrap in the package.
401411
common_script = super().get_build_script(build)
402412

403413
if build.channel == "stable" and not self.version.is_stable():
404414
raise AssertionError(
405-
f"cannot build non-stable edgedb-server=={self.version} "
415+
f"cannot build non-stable gel-server=={self.version} "
406416
f"for the stable channel"
407417
)
408418

@@ -583,18 +593,20 @@ def get_extra_system_requirements(
583593

584594
def get_before_install_script(self, build: targets.Build) -> str:
585595
dataroot = (
586-
build.get_install_path(self, "localstate") / "lib" / "edgedb"
596+
build.get_install_path(self, "localstate")
597+
/ "lib"
598+
/ self.marketing_slug
587599
)
588600

589601
action = build.target.get_action("adduser", build)
590602
assert isinstance(action, targets.AddUserAction)
591603
user_script = action.get_script(
592-
name="edgedb",
593-
group="edgedb",
604+
name=self.marketing_slug,
605+
group=self.marketing_slug,
594606
homedir=str(dataroot),
595607
shell=True,
596608
system=True,
597-
description="EdgeDB Server",
609+
description=f"{self.marketing_name} Server",
598610
)
599611

600612
return user_script
@@ -604,21 +616,23 @@ def get_exposed_commands(self, build: targets.Build) -> list[pathlib.Path]:
604616

605617
return [
606618
bindir / "edgedb-server",
619+
bindir / "gel-server",
607620
]
608621

609622
def get_meta_packages(
610623
self,
611624
build: targets.Build,
612625
root_version: str,
613626
) -> list[packages.MetaPackage]:
627+
ms = self.marketing_slug
614628
return [
615629
packages.MetaPackage(
616-
base_name="edgedb",
617-
name=f"edgedb-{self.slot}",
630+
base_name=ms,
631+
name=f"{ms}-{self.slot}",
618632
description=f"{self.description} (server and client tools)",
619633
dependencies={
620-
f"edgedb-server-{self.slot}": f"= {root_version}",
621-
"edgedb-cli": "",
634+
f"{ms}-server-{self.slot}": f"= {root_version}",
635+
f"{ms}-cli": "",
622636
},
623637
)
624638
]
@@ -630,6 +644,12 @@ def get_conflict_packages(
630644
) -> list[str]:
631645
return ["edgedb-common"]
632646

647+
def get_transition_packages(
648+
self,
649+
build: targets.Build,
650+
) -> list[str]:
651+
return [f"edgedb-server{self.slot_suffix}"]
652+
633653
def _get_edgedb_catalog_version(self, build: targets.Build) -> str:
634654
source = pathlib.Path(build.get_source_dir(self, relative_to="fsroot"))
635655

@@ -650,7 +670,38 @@ def get_provided_packages(
650670
root_version: str,
651671
) -> list[tuple[str, str]]:
652672
catver = self._get_edgedb_catalog_version(build)
653-
return [("edgedb-server-catalog", catver)]
673+
return [(f"{self.marketing_slug}-server-catalog", catver)]
674+
675+
676+
class Gel(GelNoPostgres):
677+
artifact_requirements = packages.merge_requirements(
678+
GelNoPostgres.artifact_requirements,
679+
GelNoPostgres.postgres_requirements,
680+
)
681+
682+
683+
class EdgeDBNoPostgres(GelNoPostgres):
684+
title = "EdgeDB"
685+
ident = "edgedb-server"
686+
description = "Next generation graph-relational database"
687+
license_id = "Apache-2.0"
688+
group = "Applications/Databases"
689+
identifier = "com.edgedb.edgedb-server"
690+
url = "https://edgedb.com/"
691+
692+
@property
693+
def marketing_name(self) -> str:
694+
return "EdgeDB"
695+
696+
@property
697+
def marketing_slug(self) -> str:
698+
return "edgedb"
699+
700+
def get_transition_packages(
701+
self,
702+
build: targets.Build,
703+
) -> list[str]:
704+
return []
654705

655706

656707
class EdgeDB(EdgeDBNoPostgres):

edgedbpkg/edgedb_ls/__init__.py

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
from __future__ import annotations
2-
from typing import TYPE_CHECKING
2+
from typing import (
3+
TYPE_CHECKING,
4+
Self,
5+
)
36

47
import pathlib
58

@@ -24,11 +27,10 @@
2427
)
2528

2629

27-
class EdgeDBLanguageServer(edgedb_server.EdgeDBNoPostgres):
28-
title = "EdgeDBLanguageServer"
29-
ident = "edgedb-ls"
30-
description = "Language server for EdgeDB"
31-
identifier = "com.edgedb.edgedb-ls"
30+
class GelLanguageServer(edgedb_server.EdgeDBNoPostgres):
31+
title = "GelLanguageServer"
32+
ident = "gel-ls"
33+
description = "Language server for Gel"
3234

3335
# We don't need Postgres at all even at the build stage.
3436
artifact_build_requirements = packages.merge_requirements(
@@ -48,7 +50,7 @@ def resolve(
4850
is_release: bool = False,
4951
target: targets.Target,
5052
requires: list[poetry_dep.Dependency] | None = None,
51-
) -> EdgeDBLanguageServer:
53+
) -> Self:
5254
return (
5355
super()
5456
.resolve(
@@ -86,16 +88,28 @@ def get_stdlib_bootstrap_script(self, build: targets.Build) -> str:
8688
def get_stdlib_install_script(self, build: targets.Build) -> str:
8789
return ""
8890

91+
def get_exposed_commands(self, build: targets.Build) -> list[pathlib.Path]:
92+
bindir = build.get_install_path(self, "bin")
93+
94+
return [
95+
bindir / "gel-ls",
96+
]
97+
98+
def get_transition_packages(self, build: targets.Build) -> list[str]:
99+
return ["edgedb-ls"]
100+
101+
102+
class EdgeDBLanguageServer(GelLanguageServer):
103+
title = "EdgeDBLanguageServer"
104+
ident = "edgedb-ls"
105+
description = "Language server for EdgeDB"
106+
89107
def get_exposed_commands(self, build: targets.Build) -> list[pathlib.Path]:
90108
bindir = build.get_install_path(self, "bin")
91109

92110
return [
93111
bindir / "edgedb-ls",
94112
]
95113

96-
def get_conflict_packages(
97-
self,
98-
build: targets.Build,
99-
root_version: str,
100-
) -> list[str]:
101-
return ["edgedb-common"]
114+
def get_transition_packages(self, build: targets.Build) -> list[str]:
115+
return []

edgedbpkg/edgedb_ls/ignore.list

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{bindir}/*
2+
{libdir}/**/edb/pgsql/parser/**
3+
{libdir}/**/edb/pgsql/resolver/**
4+
{libdir}/**/edb/pgsql/dbops/**
5+
{libdir}/**/edb/server/dbview/**
6+
{libdir}/**/edb/server/pgcon/**
7+
{libdir}/**/edb/server/protocol/**
8+
{libdir}/**/edb/server/pgproto/**
9+
{libdir}/**/edb/graphql/**
10+
{libdir}/**/edb/graphql-rewrite/**
11+
{libdir}/**/edb/_graphql_rewrite.*.so
12+
{libdir}/**/edb/testbase/**
13+
{libdir}/**/edb/protocol/**

edgedbpkg/edgedb_ls/no_install.list

Lines changed: 0 additions & 18 deletions
This file was deleted.

edgedbpkg/edgedbcli/__init__.py

Lines changed: 63 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,34 @@
33
Any,
44
)
55

6+
import textwrap
7+
68
from metapkg import packages
79
from metapkg import targets
810

911

10-
class EdgeDBCLI(packages.BundledRustPackage):
11-
title = "EdgeDBCLI"
12-
ident = "edgedb-cli"
13-
description = "EdgeDB Command Line Tools"
12+
class GelCLI(packages.BundledRustPackage):
13+
title = "GelCLI"
14+
ident = "gel-cli"
15+
description = "Gel Command Line Tools"
1416
license_id = "Apache-2.0"
1517
group = "Applications/Databases"
16-
identifier = "com.edgedb.edgedb-cli"
17-
url = "https://edgedb.com/"
18+
url = "https://geldata.com/"
1819

1920
sources = [
2021
{
2122
"url": "git+https://github.com/edgedb/edgedb-cli.git",
2223
},
2324
]
2425

26+
@property
27+
def marketing_name(self) -> str:
28+
return "Gel"
29+
30+
@property
31+
def marketing_slug(self) -> str:
32+
return "gel"
33+
2534
def get_package_layout(
2635
self, build: targets.Build
2736
) -> packages.PackageFileLayout:
@@ -32,14 +41,60 @@ def get_license_files_patterns(self) -> list[str]:
3241

3342
def get_artifact_metadata(self, build: targets.Build) -> dict[str, Any]:
3443
metadata = dict(super().get_artifact_metadata(build))
35-
metadata["publish_link_to_latest"] = True
44+
metadata["publish_link_to_latest"] = ["gel-cli", "edgedb-cli"]
3645
return metadata
3746

3847
def get_build_script(self, build: targets.Build) -> str:
3948
if build.channel == "stable" and not self.version.is_stable():
4049
raise AssertionError(
41-
f"cannot build non-stable edgedb-cli=={self.version} "
50+
f"cannot build non-stable gel-cli=={self.version} "
4251
f"for the stable channel"
4352
)
4453

4554
return super().get_build_script(build)
55+
56+
def get_transition_packages(
57+
self,
58+
build: targets.Build,
59+
) -> list[str]:
60+
return ["edgedb-cli"]
61+
62+
def get_prepare_script(self, build: targets.Build) -> str:
63+
script = super().get_prepare_script(build)
64+
sed = build.sh_get_command("sed")
65+
src = build.get_source_dir(self, relative_to="pkgbuild")
66+
script += textwrap.dedent(
67+
f"""\
68+
{sed} -i -e '/\\[\\[bin\\]\\]/,/\\[\\[.*\\]\\]/{{
69+
s/^name\\s*=.*/name = "{self.marketing_slug}"/;
70+
}}' \\
71+
"{src}/Cargo.toml"
72+
"""
73+
)
74+
return script
75+
76+
def get_file_install_entries(self, build: targets.Build) -> list[str]:
77+
entries = list(super().get_file_install_entries(build))
78+
entries.append(f"{{systembindir}}/{self.marketing_slug}{{exesuffix}}")
79+
return entries
80+
81+
82+
class EdgeDBCLI(GelCLI):
83+
title = "EdgeDBCLI"
84+
ident = "edgedb-cli"
85+
description = "EdgeDB Command Line Tools"
86+
url = "https://edgedb.com/"
87+
88+
@property
89+
def marketing_name(self) -> str:
90+
return "EdgeDB"
91+
92+
@property
93+
def marketing_slug(self) -> str:
94+
return "edgedb"
95+
96+
def get_transition_packages(
97+
self,
98+
build: targets.Build,
99+
) -> list[str]:
100+
return []

edgedbpkg/edgedbcli/install.list

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)