:name_badge: A previous lengthy :bike: :derelict_h...
# general
f
📛 A previous lengthy 🚲 🏚️ bikeshed thread concluded that we should change the naming of "experimental" (unstable) features to something that avoids sending a message that Pants is not production-ready. Instead of calling things "experimental", we would use some other (probably novel name), and each item with this feature would have a tracking issue in GH that would explain the exact nature of the stability and release-readiness of the item at that point in time. So now we need to decide on a name. Items raised in the linked thread include the following: • `muslin`: sewing metaphor: test garment that you're making out of cheap fabric to test the fit • `basting`: another sewing metaphor: temporary stitches to hold things together until you've put in the final ones • `tacks`: another sewing metaphor: loose stitches to transfer pattern markings into fabric prior to sewing • `next`: Just a word to mean "coming soon" or something like that • `future`: Closer to what Python uses • `labs`: how startups brand themselves to present themselves as forward-thinking The chosen name would show up as something like
pants.backend.$newname.$feature
in the switches to enable the backend. Using them as a prefix in goals/targets/options would be avoided as much as possible (although we may need to discuss the finer details of this in another thread). Pants community, what's your opinion on a good name here? We can discuss here, narrow these down, and the we'll put it to a vote
h/t @dry-analyst-73584 for the sewing names
👍 1
s
as somebody who doesn’t sew, I would prefer not to use the sewing metaphors 🙂 otherwise I’d be off googling what fancy new language
muslin
is
I missed the original 🚲🏠 party so apologies if I’m reopening any can of worms - I agree
experimental_
prefixes in goal names would be good to move away from, but (in my experience)
experimental
in plugin package names hasn’t caused any headaches/confusion. is it possible that we could keep using that name, just scoped down to only the context of package names?
if
experimental
has already been voted off the island then I’d prefer
future
over the rest
f
The conclusion around "experimental" that overuse of words like experimental/unstable/alpha/beta etc in names and docs contribute to FUD around Pants adoption, and many examples of this happening in practice were cited there. This applies even in the backend namespace names and such
👍 2
h
I like
future
as well, and its usage in this way is familiar to Python people
Less keen on the sewing puns
b
(also
experimental
is long hard to type)
w
I'm on board with
future
or
next
, mostly because I suggested them, but also under the assumption that they won't end up being keyword issues (I'm assuming not, if it's just a registration package name). I would also suggest we caution against doing/not doing something because it's more familiar in Python. Given that Pants is adding languages like hotcakes, I wouldn't want to pigeon hole anything. And FWIW: I still like
experimental
b
I'm -1 on
next
, as to me, it implies this will be in the immediate "next" version. E.g. If 2.14 has
next.teleportation
I'd expect 2.15 to have
teleportation
.
1
f
Of the sewing words, I don't like "muslin" just because it's such an uncommon word. It could be even more confusing for non-native speakers of English
👍 2
b
labs
sounds like the baggage of
experimental
to me too. I lean toward any of
basting
,
tacks
, or
future
. Though I wonder if
future
would have the baggage of
experimental
and
alpha
, e.g. raw, unfinished, not ready, etc?
f
I don't think there's a perfect solution here. I referenced the Python side because Python devs are familiar with
from __future__ import some_feature
and it feels more like "this optional feature is backwards incompatible in some way, but it's polished enough to use"
👆 1
but not everyone is a Python dev, nor will everyone have that context
Do we have any other suggestions? If we put it to a vote now, i'm pretty sure
future
would win, as the sewing metaphors don't seem too popular
w
If the route was metaphors, I'd prefer to stay away from sewing, and... dunno... something directly pants-centric, like
suspenders
? It would also need to be something that would be uniquely difficult to confuse with a possible backend, which is why simple and direct words seem to work reasonably.
h
I would personally vote for
future
over metaphors. I continue to not like non-intuitive words, other than when there isn't a viable alternative, like "target". I like
future
, much less of a negative connotation. Instead, it's a positive thing that you get early access to something we're gonna make stable Another option is
preview
b
What about
evolving
?
w
Oooh, I kinda like
preview
👍 1
b
I like
preview
.
w
Also, I think for categorizing stability, for something in this namespace, would it be recommended to use for production purposes? I know this comes down to tracking issues and such, but typically this kinda namespace implies something to the end user. I guess to quote Josh Reed from the thread open on my screen, "how beta is beta?"
f
That would be the point of the tracking issue
Pants doesn't really run as production code...so the blast radius of running something in dev isn't as huge; what we want to avoid is people tying themselves to unstable features and then getting frustrated when they change
👍 1
s
I also like
preview
w
tying themselves to unstable features and then getting frustrated when they change
But, isn't that the point of this namespace? Calling it whatever we want, isn't the idea that until it's promoted out of this namespace, it's subject to change?
b
When we document the new naming scheme, let's be sure to mention this. https://pantsbuild.slack.com/archives/C046T6T9U/p1661286923017719?thread_ts=1661194154.457299&cid=C046T6T9U It's an important point. Pants is stable. The hermetic env is stable. Your code is safe.
f
But, isn't that the point of this namespace? Calling it whatever we want, isn't the idea that until it's promoted out of this namespace, it's subject to change?
Yes. What I mean is that "subject to change" is a very different thing from "unsafe to use in your dev environment."
👍 1
I've used
experimental_shell_command
a few times and none of our production databases have gone down yet 😅
b
preview
sounds like there's less wiggle-room for change IMO. Whether that's what we want or not is I suppose, part of the debate 😛
w
I don't particularly get a wiggle-room vibe from
preview
- just feels like something upcoming, and if it's well documented what it actually means, then I think it sounds better than
future
which is more temporal in nature, while
preview
feels like a state
2
h
sounds like there's less wiggle-room for change IMO.
That may honestly be a good thing, per the discussion around better backward compatibility. That we should spend more time thinking through design, even if it's
preview
f
"Preview" sounds like something coming from a movie studio or some big org with heavy UX and user testing. It definitely sounds less FUD like though
🎥 4
Another name I'm thinking of based on this thread and the need for having a tracking issue in general is
tracking
or
track
okay poll time