Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🥔✨ Gizmos #709

Closed
16 of 23 tasks
zspencer opened this issue Jun 9, 2022 · 1 comment
Closed
16 of 23 tasks

🥔✨ Gizmos #709

zspencer opened this issue Jun 9, 2022 · 1 comment
Labels
✨ feature Reduces Client's Burden or Grants them Benefits 🥔 Satisfices It's good enough to use, but not particularly great
Milestone

Comments

@zspencer
Copy link
Member

zspencer commented Jun 9, 2022

Potatoes

These work just enough for most early adopters, but lack stability and polish...

Sprouts

It's not ready for anyone but the most early of early adopters, but we've started building...

Unplanted

We have not even started to build...

Use Cases

  • ✨ Adding a Gizmo to a Section
  • ✨ Removing a Gizmo from a Section
  • ✨ Reordering a Gizmo in a Section

For Developers

Bugs

@zspencer zspencer added this to the 1.0 - Andromeda milestone Jun 26, 2022
zspencer added a commit that referenced this issue Jan 26, 2023
#709

When we were smoke-testing the Marketplace, I realized we had to destroy
and re-create the Marketplace, but the way we delete them was... uhhh
not respecting the (very prudent) foreign-keys we had added!

So now FurniturePlacements polymorph into their child implementation
prior to destruction, so that all `dependent: :destroy`  etc. actions
get carried out.

Co-authored-by: Dalton <[email protected]>
zspencer added a commit that referenced this issue Jan 26, 2023
#709

When we were smoke-testing the Marketplace, I realized we had to destroy
and re-create the Marketplace, but the way we delete them was... uhhh
not respecting the (very prudent) foreign-keys we had added!

So now FurniturePlacements polymorph into their child implementation
prior to destruction, so that all `dependent: :destroy`  etc. actions
get carried out.

Co-authored-by: Dalton <[email protected]>
@zspencer zspencer changed the title Feature: Furniture 🌱 Furniture Feb 26, 2023
@zspencer zspencer changed the title 🌱 Furniture 🌱🥔 Furniture Feb 26, 2023
@zspencer zspencer mentioned this issue Mar 2, 2023
8 tasks
zspencer added a commit that referenced this issue Mar 3, 2023
zspencer added a commit that referenced this issue Mar 4, 2023
🧹 `Furniture`: use `location` rather when building new Furniture

- Extracted from: #1083
- #74
- #709
zspencer added a commit that referenced this issue Mar 11, 2023
- #709

This helps prepare us to rename from `FurniturePlacement` down to
`Furniture` by getting rid of some unnecessary fiddly bits.

Theoretically, our next step is to inline the `Furniture` namespace into
`FurniturePlacement` to make space at the `Furniture` namespace; then
rename `FurniturePlacement` to `Furniture`...

And then we don't have `Placement` anymore! Just `Furniture`!
zspencer added a commit that referenced this issue Mar 11, 2023
…lacement` (#1208)

* 🧹 `Furniture`: Streamline routing & instantiation

- #709

This helps prepare us to rename from `FurniturePlacement` down to
`Furniture` by getting rid of some unnecessary fiddly bits.

Theoretically, our next step is to inline the `Furniture` namespace into
`FurniturePlacement` to make space at the `Furniture` namespace; then
rename `FurniturePlacement` to `Furniture`...

And then we don't have `Placement` anymore! Just `Furniture`!

* `Furniture`: Inline `Furniture` into `FurniturePlacement`

This gets us almost all the way to the rename; since we don't have the
`Furniture` namespace in the way...

* 🧹 `Furniture`: Dynamic registry to get around circular class-load dependency

So:

```app/furniture/form.rb
class Form < FurniturePlacement
end
```

loads
```app/models/furniture_placement.rb
class FurniturePlacement
  REGISTRY = { Form }
end

```
Which loads...

You guessed it!

```app/furniture/form.rb
class Form < FurniturePlacement
end
```

Pulling the registry definition out of interpret-time and into runtime
fixes that; since the `Form` constant isn't referenced until the
`FurniturePlacement.registry` method is accessed.
zspencer added a commit that referenced this issue Mar 11, 2023
- #1209 (comment)
- #709

I don't really like the direction this pushes specs, but I can live with
it.

In particular, a single assert per request/response seems...
excruciatingly slow.

But there are other mechanisms we can explore to mitigate that as it
gets out of hand.
zspencer added a commit that referenced this issue Mar 11, 2023
- #1209 (comment)
- #709

I don't really like the direction this pushes specs, but I can live with
it.

In particular, a single assert per request/response seems...
excruciatingly slow.

But there are other mechanisms we can explore to mitigate that as it
gets out of hand.
zspencer added a commit that referenced this issue Mar 11, 2023
- #1209 (comment)
- #709

I don't really like the direction this pushes specs, but I can live with
it.

In particular, a single assert per request/response seems...
excruciatingly slow.

But there are other mechanisms we can explore to mitigate that as it
gets out of hand.
zspencer added a commit that referenced this issue Mar 31, 2023
- #832
- #1155
- #1154
- #709

As I was working to onboard Piikup, I discovered I couldn't really write
an easy script to merge into a space since I didn't have the
associations together.

Now they're super tight! Yyyaaaaaaah!
zspencer added a commit that referenced this issue Apr 2, 2023
- #832
- #1155
- #1154
- #709

As I was working to onboard Piikup, I discovered I couldn't really write
an easy script to merge into a space since I didn't have the
associations together.

Now they're super tight! Yyyaaaaaaah!
zspencer added a commit that referenced this issue Apr 10, 2023
- #1187
- #709

Apparenltly our tailwind config wasn't detecting classes in
furniture's `_component.rb` files. Womp. Womp.
zspencer added a commit that referenced this issue Apr 10, 2023
- #1187
- #709

Apparenltly our tailwind config wasn't detecting classes in
furniture's `_component.rb` files. Womp. Womp.
zspencer added a commit that referenced this issue Apr 30, 2023
- #831
- #709

There's something appealing about switching to Rails' built in `Single
Table Inheritance` for `Furniture`, rather than our flyweight registry;
but I also know that STI can be a bit of a smell...

Anyway, now when you call `Marketplace.all` and get *only*
`Marketplace`s. Maybe someday we'll pull this up in to the `Furniture`
classes responsibilities so we don't have to do it on every single piece
of Furniture...
zspencer added a commit that referenced this issue Apr 30, 2023
- #831
- #709

There's something appealing about switching to Rails' built in `Single
Table Inheritance` for `Furniture`, rather than our flyweight registry;
but I also know that STI can be a bit of a smell...

Anyway, now when you call `Marketplace.all` and get *only*
`Marketplace`s. Maybe someday we'll pull this up in to the `Furniture`
classes responsibilities so we don't have to do it on every single piece
of Furniture...
zspencer added a commit that referenced this issue May 4, 2023
- #831
- #709

There's something appealing about switching to Rails' built in `Single
Table Inheritance` for `Furniture`, rather than our flyweight registry;
but I also know that STI can be a bit of a smell...

Anyway, now when you call `Marketplace.all` and get *only*
`Marketplace`s. Maybe someday we'll pull this up in to the `Furniture`
classes responsibilities so we don't have to do it on every single piece
of Furniture...
This was referenced Nov 24, 2023
zspencer added a commit that referenced this issue Nov 25, 2023
- #709

Sprouts a tiny Gizmo for linking to Sections. At some point, we'll want
to add a UI for picking which `Sections` to include, preferably an
`AllowList` so that adding a `Section` doesn't immediately publish it.
zspencer added a commit that referenced this issue Jan 8, 2024
- #709
- zinc-collective#1

This is an attempt at using a README as a form of product-design
documentation.

It follows the Pain-Dream-Fix recipe for marketing copy, with an
emphasis on the code's *purpose*. By exposing the purpose of the code;
new contributors (or contributors that have been away for a bit)
have a way of grounding themselves in the product-thinking behind the
project itself.

That said, good README's have additional context beyond the purpose, such as:

- A Data Model, which exposes a high-level view of the interactions between
  entities within the system we are building.
- Setup instructions, such as guidance for how to populate an initial
  database or a reference to additional software to install.

But for now we don't have either of those things; and I wanted to do
some Product-based House Keeping, such as creating Fauxsonas and Use
Cases before diving into Engineering.
zspencer added a commit to zinc-collective/tobias that referenced this issue Jan 15, 2024
- zinc-collective#709
- #1

This is an attempt at using a README as a form of product-design
documentation.

It follows the Pain-Dream-Fix recipe for marketing copy, with an
emphasis on the code's *purpose*. By exposing the purpose of the code;
new contributors (or contributors that have been away for a bit)
have a way of grounding themselves in the product-thinking behind the
project itself.

That said, good README's have additional context beyond the purpose, such as:

- A Data Model, which exposes a high-level view of the interactions between
  entities within the system we are building.
- Setup instructions, such as guidance for how to populate an initial
  database or a reference to additional software to install.

But for now we don't have either of those things; and I wanted to do
some Product-based House Keeping, such as creating Fauxsonas and Use
Cases before diving into Engineering.
zspencer added a commit to zinc-collective/tobias that referenced this issue Jan 15, 2024
* 📝 `TOBIAS`: Sprout README as Contributor-Facing Product Marketing

- zinc-collective#709
- #1

This is an attempt at using a README as a form of product-design
documentation.

It follows the Pain-Dream-Fix recipe for marketing copy, with an
emphasis on the code's *purpose*. By exposing the purpose of the code;
new contributors (or contributors that have been away for a bit)
have a way of grounding themselves in the product-thinking behind the
project itself.

That said, good README's have additional context beyond the purpose, such as:

- A Data Model, which exposes a high-level view of the interactions between
  entities within the system we are building.
- Setup instructions, such as guidance for how to populate an initial
  database or a reference to additional software to install.

But for now we don't have either of those things; and I wanted to do
some Product-based House Keeping, such as creating Fauxsonas and Use
Cases before diving into Engineering.
zspencer added a commit that referenced this issue Jan 29, 2024
- #709

We initialize `active-storage` and `aws-sdk-s3` when we load the
application code, which loads up `config/storage.yml` and sets up an AWS
S3 Client.

But the `Journal` doesn't use AWS S3 (yet?), so the continuous
integration environment doesn't have AWS credentials. Which causes
[build failures].

I *could* add credentials to the Journal Gizmo's CI environment, but
that would mean other Gizmos that don't use AWS S3 would need AWS
credentials

So I'm going to add some fake test credentials to the .env.test.example
file, which should let the AWS S3 client initialize and then explode
horribly when we try and shovel some data into it.

[build failures]: https://github.com/zinc-collective/convene-journal/actions/runs/7690936384/job/20955491503
zspencer added a commit that referenced this issue Jan 29, 2024
- #709

We initialize `active-storage` and `aws-sdk-s3` when we load the
application code, which loads up `config/storage.yml` and sets up an AWS
S3 Client.

But the `Journal` doesn't use AWS S3 (yet?), so the continuous
integration environment doesn't have AWS credentials. Which causes
[build failures].

I *could* add credentials to the Journal Gizmo's CI environment, but
that would mean other Gizmos that don't use AWS S3 would need AWS
credentials

So I'm going to add some fake test credentials to the .env.test.example
file, which should let the AWS S3 client initialize and then explode
horribly when we try and shovel some data into it.

[build failures]: https://github.com/zinc-collective/convene-journal/actions/runs/7690936384/job/20955491503
zspencer added a commit to zinc-collective/tobias that referenced this issue Feb 13, 2024
- #1
- zinc-collective#709

- For a #9 to leverage
  the behavior we described, we need a way to put tobias on the web.
  zinc-collective#709 are the equivalent
  of an "App" in the Convene world.

- Note: `Gizmo` and `Furniture` are equivalent. We probably should
  finish zinc-collective#1472

- The migration change makes sure that ahttps://github.com//issues/4
  is connected to #1
zspencer added a commit to zinc-collective/tobias that referenced this issue Feb 13, 2024
- #1
- zinc-collective#709

- For a #9 to leverage
  the behavior we described, we need a way to put tobias on the web.
  zinc-collective#709 are the equivalent
  of an "App" in the Convene world.

- Note: `Gizmo` and `Furniture` are equivalent. We probably should
  finish zinc-collective#1472

- The migration change makes sure that ahttps://github.com//issues/4
  is connected to #1
zspencer added a commit to zinc-collective/tobias that referenced this issue Feb 13, 2024
- #1
- zinc-collective#709

- For a #9 to leverage
  the behavior we described, we need a way to put tobias on the web.
  zinc-collective#709 are the equivalent
  of an "App" in the Convene world.

- Note: `Gizmo` and `Furniture` are equivalent. We probably should
  finish zinc-collective#1472

- The migration change makes sure that ahttps://github.com//issues/4
  is connected to #1
zspencer added a commit that referenced this issue Feb 16, 2024
- #709
- #2200 (review)

Markdown is cool, but it's nerd-forward.

ActionText is a much more human-friendly way of implementing rich text
in Rails applications.

I don't know enough about [Trix] to know if it will work in multi-user
contexts; or how it will work with rich-embeds, ala Notion or Google Docs

But I think it's a good-enough-default for now; and if we get to the point
where embeddables or multi-user editing of a field is important we can
figure that out.

[Trix]: https://trix-editor.org/
zspencer added a commit that referenced this issue Feb 16, 2024
- #709
- #2200 (review)

Markdown is cool, but it's nerd-forward.

ActionText is a much more human-friendly way of implementing rich text
in Rails applications.

I don't know enough about [Trix] to know if it will work in multi-user
contexts; or how it will work with rich-embeds, ala Notion or Google Docs

But I think it's a good-enough-default for now; and if we get to the point
where embeddables or multi-user editing of a field is important we can
figure that out.

[Trix]: https://trix-editor.org/
zspencer added a commit that referenced this issue Feb 16, 2024
- #709
- #2200 (review)

Markdown is cool, but it's nerd-forward.

ActionText is a much more human-friendly way of implementing rich text
in Rails applications.

I don't know enough about [Trix] to know if it will work in multi-user
contexts; or how it will work with rich-embeds, ala Notion or Google Docs

But I think it's a good-enough-default for now; and if we get to the point
where embeddables or multi-user editing of a field is important we can
figure that out.

[Trix]: https://trix-editor.org/
zspencer added a commit that referenced this issue Feb 17, 2024
- #709
- #2200 (review)
- #2211

Markdown is cool, but it's nerd-forward.

ActionText is a much more human-friendly way of implementing rich text
in Rails applications.

I don't know enough about [Trix] to know if it will work in multi-user
contexts; or how it will work with rich-embeds, ala Notion or Google Docs

But I think it's a good-enough-default for now; and if we get to the point
where embeddables or multi-user editing of a field is important we can
figure that out.

[Trix]: https://trix-editor.org/
zspencer added a commit to zinc-collective/tobias that referenced this issue Feb 27, 2024
- #1
- zinc-collective#709

- For a #9 to leverage
  the behavior we described, we need a way to put tobias on the web.
  zinc-collective#709 are the equivalent
  of an "App" in the Convene world.

- Note: `Gizmo` and `Furniture` are equivalent. We probably should
  finish zinc-collective#1472

- The migration change makes sure that ahttps://github.com//issues/4
  is connected to #1
zspencer added a commit to zinc-collective/tobias that referenced this issue Feb 27, 2024
- #1
- zinc-collective#709

- For a #9 to leverage
  the behavior we described, we need a way to put tobias on the web.
  zinc-collective#709 are the equivalent
  of an "App" in the Convene world.

- Note: `Gizmo` and `Furniture` are equivalent. We probably should
  finish zinc-collective#1472

- The migration change makes sure that ahttps://github.com//issues/4
  is connected to #1
zspencer added a commit to zinc-collective/tobias that referenced this issue Mar 25, 2024
- zinc-collective#709
- zinc-collective#2200 (review)
- zinc-collective#2211

Markdown is cool, but it's nerd-forward.

ActionText is a much more human-friendly way of implementing rich text
in Rails applications.

I don't know enough about [Trix] to know if it will work in multi-user
contexts; or how it will work with rich-embeds, ala Notion or Google Docs

But I think it's a good-enough-default for now; and if we get to the point
where embeddables or multi-user editing of a field is important we can
figure that out.

[Trix]: https://trix-editor.org/
zspencer added a commit to zinc-collective/tobias that referenced this issue Mar 25, 2024
- #1
- zinc-collective#709

- For a #9 to leverage
  the behavior we described, we need a way to put tobias on the web.
  zinc-collective#709 are the equivalent
  of an "App" in the Convene world.

- Note: `Gizmo` and `Furniture` are equivalent. We probably should
  finish zinc-collective#1472

- The migration change makes sure that ahttps://github.com//issues/4
  is connected to #1
zspencer added a commit to zinc-collective/tobias that referenced this issue Mar 25, 2024
- #1
- zinc-collective#709

- For a #9 to leverage
  the behavior we described, we need a way to put tobias on the web.
  zinc-collective#709 are the equivalent
  of an "App" in the Convene world.

- Note: `Gizmo` and `Furniture` are equivalent. We probably should
  finish zinc-collective#1472

- The migration change makes sure that ahttps://github.com//issues/4
  is connected to #1
zspencer added a commit to zinc-collective/tobias that referenced this issue Mar 25, 2024
- #1
- zinc-collective#709

- For a #9 to leverage
  the behavior we described, we need a way to put tobias on the web.
  zinc-collective#709 are the equivalent
  of an "App" in the Convene world.

- Note: `Gizmo` and `Furniture` are equivalent. We probably should
  finish zinc-collective#1472

- The migration change makes sure that ahttps://github.com//issues/4
  is connected to #1
@rosschapman
Copy link
Contributor

🧹 Relegated to cold storage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ feature Reduces Client's Burden or Grants them Benefits 🥔 Satisfices It's good enough to use, but not particularly great
Projects
None yet
Development

No branches or pull requests

2 participants