mirror of
https://github.com/bonfire-networks/bonfire-app.git
synced 2024-04-28 15:28:44 +00:00
Rename libs
This commit is contained in:
parent
9e493e16a9
commit
e1a9e44894
|
@ -53,7 +53,7 @@ The code is broadly composed namespaces such as these, many of which are package
|
|||
|
||||
Contexts are were we put any core logic. A context often is circumscribed to providing logic for a particular object type (e. g. `Bonfire.Posts` implements `Bonfire.Data.Social.Post`).
|
||||
|
||||
All Bonfire objects use an ULID as their primary key. We use the `Pointers` library (with extra logic in `Bonfire.Common.Pointers`) to reference any object by its primary key without knowing what type it is beforehand. This is very useful as it allows for example following or liking many different types of objects (as opposed to say only a user or a post) and this approach allows us to store the context of the like/follow by only storing its primary key (see `Bonfire.Data.Social.Follow`) for an example.
|
||||
All Bonfire objects use an ULID as their primary key. We use the `Needle` library (with extra logic in `Bonfire.Common.Needle`) to reference any object by its primary key without knowing what type it is beforehand. This is very useful as it allows for example following or liking many different types of objects (as opposed to say only a user or a post) and this approach allows us to store the context of the like/follow by only storing its primary key (see `Bonfire.Data.Social.Follow`) for an example.
|
||||
|
||||
Context modules usually have `one/2`, `many/2`, and `many_paginated/1` functions for fetching objects, which in turn call a `query/2` function. These take a keyword list as filters (and an optional `opts` argument) allowing objects to be fetched by arbitrary criteria.
|
||||
|
||||
|
@ -94,7 +94,7 @@ Here is an incomplete sample of some of current extensions and modules:
|
|||
- `Bonfire.GraphQL` (GraphQL API abstractions)
|
||||
- `Queery` and `Bonfire.Repo.Query` (Helpers for making queries on the database)
|
||||
- `Bonfire.Repo` (Ecto repository)
|
||||
- `Flexto` (to extend DB schemas in config, especially useful for adding associations)
|
||||
- `Exto` (to extend DB schemas in config, especially useful for adding associations)
|
||||
- `AbsintheClient` (for querying the API from within the server)
|
||||
|
||||
|
||||
|
@ -123,7 +123,7 @@ Here is an incomplete sample of some of current extensions and modules:
|
|||
- Schemas
|
||||
- Resolvers
|
||||
- Sometimes Plugs (eg `Bonfire.Web.Plugs.UserRequired` and `Bonfire.Web.LivePlugs.UserRequired`)
|
||||
- Other extensions or libraries (eg `Pointers` or `Bonfire.Common` which are used by most other extensions)
|
||||
- Other extensions or libraries (eg `Needle` or `Bonfire.Common` which are used by most other extensions)
|
||||
|
||||
|
||||
## Naming
|
||||
|
@ -132,7 +132,7 @@ It is said that naming is one of the four hard problems of computer science (alo
|
|||
|
||||
### Naming guidelines
|
||||
|
||||
- Module names mostly begin with `Bonfire.` unless they belong to a more generic library (eg `Pointers` or `ValueFlows`)
|
||||
- Module names mostly begin with `Bonfire.` unless they belong to a more generic library (eg `Needle` or `ValueFlows`)
|
||||
- Everything within an extension begins with the context name and a `.` (eg `Bonfire.Social.Migrations`)
|
||||
- Database schemas should be named in the singular (eg `Bonfire.Data.Social.Post`)
|
||||
- Context modules are named in plural where possible (eg `Bonfire.Posts`)
|
||||
|
|
|
@ -14,7 +14,7 @@ Circles allow a user to categorise work colleagues differently from friends, for
|
|||
|
||||
Verbs represent actions that the user could perform, such as reading a post or replying to a message.
|
||||
|
||||
Each verb has a unique ID, like the table IDs from `pointers`, which must be known to the system through configuration.
|
||||
Each verb has a unique ID, like the table IDs from `Needle`, which must be known to the system through configuration.
|
||||
|
||||
## Permissions
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@ A social network, by contrast, is actually a graph of objects. Objects need to b
|
|||
|
||||
A simple example would be likes, you might have a `likes` table with `liked_post_id` field that references the `post` table. But you don't just have posts that can be liked, but also videos, images, polls, etc, each with their own table, but probably do not want to have to add `liked_video_id`, `liked_image_id`, etc?
|
||||
|
||||
We needed the flexibility to have a foreign key that can reference any referenceable object. We call our system `Pointers`.
|
||||
We needed the flexibility to have a foreign key that can reference any referenceable object. We call our system `Needle`.
|
||||
|
||||
This guide is a brief introduction to Pointers. It assumes some foundational knowledge:
|
||||
This guide is a brief introduction to Needle. It assumes some foundational knowledge:
|
||||
|
||||
* Basic understanding of how relational databases like Postgresql work, in particular:
|
||||
* Tables being made up of fields.
|
||||
|
@ -43,15 +43,15 @@ In PostgreSQL, we actually store `ULID`s as `UUID` columns, thanks to both being
|
|||
|
||||
## It's just a table
|
||||
|
||||
The `pointers` system is mostly based around a single table represented by the `Pointers.Pointer` schema with the following fields:
|
||||
The `Needle` system is mostly based around a single table represented by the `Needle.Pointer` schema with the following fields:
|
||||
|
||||
* `id` (ULID) - the database-wide unique id for the object, primary key.
|
||||
* `table_id` (ULID) - identifies the type of the object, references `Pointers.Table`.
|
||||
* `table_id` (ULID) - identifies the type of the object, references `Needle.Table`.
|
||||
* `deleted_at` (timestamp, default: `null`) - when the object was deleted.
|
||||
|
||||
Every object that is stored in the system will have a record in this table. It may also have records in other tables (handy for storing more than 3 fields about the object!).
|
||||
|
||||
Don't worry about `Pointers.Table` for now, just know that every object type will have a record there so `Pointers.Pointer.table_id` can reference it.
|
||||
Don't worry about `Needle.Table` for now, just know that every object type will have a record there so `Needle.Pointer.table_id` can reference it.
|
||||
|
||||
## Mixins - storing data about objects
|
||||
|
||||
|
@ -64,14 +64,14 @@ record or not record information for each mixin. Sample mixins include:
|
|||
|
||||
In this way, they are reusable across different object types. One mixin may (or may not) be used by any number of objects. This is mostly driven by the type of the object we are storing, but can also be driven by user input.
|
||||
|
||||
Mixins are just tables too! The only requirement is they have a `ULID` primary key which references `Pointers.Pointer`. The developer of the mixin is free to put whatever other fields they want in the table, so long as they have that primary-key-as-reference (which will be automatically added for you by the `mixin_schema` macro).
|
||||
Mixins are just tables too! The only requirement is they have a `ULID` primary key which references `Needle.Pointer`. The developer of the mixin is free to put whatever other fields they want in the table, so long as they have that primary-key-as-reference (which will be automatically added for you by the `mixin_schema` macro).
|
||||
|
||||
Here is a sample mixin definition for a user profile:
|
||||
|
||||
```elixir
|
||||
defmodule Bonfire.Data.Social.Profile do
|
||||
|
||||
use Pointers.Mixin,
|
||||
use Needle.Mixin,
|
||||
otp_app: :bonfire_data_social,
|
||||
source: "bonfire_data_social_profile"
|
||||
|
||||
|
@ -84,10 +84,10 @@ defmodule Bonfire.Data.Social.Profile do
|
|||
end
|
||||
```
|
||||
|
||||
Aside from `use`ing `Pointers.Mixin` instead of `Ecto.Schema` and calling `mixin_schema` instead of
|
||||
Aside from `use`ing `Needle.Mixin` instead of `Ecto.Schema` and calling `mixin_schema` instead of
|
||||
`schema`, pretty similar to a standard Ecto schema, right?
|
||||
|
||||
The arguments to `use Pointers.Mixin` are:
|
||||
The arguments to `use Needle.Mixin` are:
|
||||
|
||||
* `otp_app`: the OTP app name to use when loading dynamic configuration, e.g. the current extension or app (required)
|
||||
* `source`: the underlying table name to use in the database
|
||||
|
@ -98,18 +98,18 @@ We will cover dynamic configuration later. For now, you can use the OTP app that
|
|||
|
||||
Multimixins are like mixins, except that where an object may have 0 or 1 of a particular mixins, an object may have any number of a particular multimixin.
|
||||
|
||||
For this to work, a multimixin must have a *compound primary key* which must contain an `id` column referencing `Pointers.Pointer` and at least one other field which will collectively be unique.
|
||||
For this to work, a multimixin must have a *compound primary key* which must contain an `id` column referencing `Needle.Pointer` and at least one other field which will collectively be unique.
|
||||
|
||||
An example multimixin is used for publishing an item to feeds:
|
||||
|
||||
```elixir
|
||||
defmodule Bonfire.Data.Social.FeedPublish do
|
||||
|
||||
use Pointers.Mixin,
|
||||
use Needle.Mixin,
|
||||
otp_app: :bonfire_data_social,
|
||||
source: "bonfire_data_social_feed_publish"
|
||||
|
||||
alias Pointers.Pointer
|
||||
alias Needle.Pointer
|
||||
|
||||
mixin_schema do
|
||||
belongs_to :feed, Pointer, primary_key: true
|
||||
|
@ -132,20 +132,20 @@ For example, the ID for the `Feed` table is: `1TFEEDS0NTHES0V1S0FM0RTA1S`, which
|
|||
* They must be 26 characters in length.
|
||||
* The first character must be a digit in the range 0-7.
|
||||
|
||||
To help you with this, the `Pointers.ULID.synthesise!/1` method takes an alphanumeric binary and tries to return you it transliterated into a valid ULID. Example usage:
|
||||
To help you with this, the `Needle.ULID.synthesise!/1` method takes an alphanumeric binary and tries to return you it transliterated into a valid ULID. Example usage:
|
||||
|
||||
```
|
||||
iex(1)> Pointers.ULID.synthesise!("itfeedsonthesouls")
|
||||
iex(1)> Needle.ULID.synthesise!("itfeedsonthesouls")
|
||||
|
||||
11:20:28.299 [error] Too short, need 9 chars.
|
||||
:ok
|
||||
iex(2)> Pointers.ULID.synthesise!("itfeedsonthesoulsofmortalsandothers")
|
||||
iex(2)> Needle.ULID.synthesise!("itfeedsonthesoulsofmortalsandothers")
|
||||
|
||||
11:20:31.819 [warn] Too long, chopping off last 9 chars
|
||||
"1TFEEDS0NTHES0V1S0FM0RTA1S"
|
||||
iex(3)> Pointers.ULID.synthesise!("itfeedsonthesoulsofmortals")
|
||||
iex(3)> Needle.ULID.synthesise!("itfeedsonthesoulsofmortals")
|
||||
"1TFEEDS0NTHES0V1S0FM0RTA1S"
|
||||
iex(4)> Pointers.ULID.synthesise!("gtfeedsonthesoulsofmortals")
|
||||
iex(4)> Needle.ULID.synthesise!("gtfeedsonthesoulsofmortals")
|
||||
|
||||
11:21:03.268 [warn] First character must be a digit in the range 0-7, replacing with 7
|
||||
"7TFEEDS0NTHES0V1S0FM0RTA1S"
|
||||
|
@ -158,7 +158,7 @@ Virtuals are the simplest and most common type of object. Here's a definition of
|
|||
```elixir
|
||||
defmodule Bonfire.Data.Social.Block do
|
||||
|
||||
use Pointers.Virtual,
|
||||
use Needle.Virtual,
|
||||
otp_app: :bonfire_data_social,
|
||||
table_id: "310CK1NGSTVFFAV01DSSEE1NG1",
|
||||
source: "bonfire_data_social_block"
|
||||
|
@ -171,7 +171,7 @@ defmodule Bonfire.Data.Social.Block do
|
|||
end
|
||||
```
|
||||
|
||||
It should look quite similar to a mixin definition, except that we `use` `Pointers.Virtual` this time (passing an additional `table_id` argument) and we call the `virtual_schema` macro.
|
||||
It should look quite similar to a mixin definition, except that we `use` `Needle.Virtual` this time (passing an additional `table_id` argument) and we call the `virtual_schema` macro.
|
||||
|
||||
The primary limitation of a virtual is that you cannot put extra fields into one. This also means that `belongs_to` is not generally permitted because it results in adding a field. `has_one` and `has_many` work just fine as they do not cause the creation of fields in the schema.
|
||||
|
||||
|
@ -195,7 +195,7 @@ Here is a definition of a pointable type (indicating an ActivityPub activity who
|
|||
```elixir
|
||||
defmodule Bonfire.Data.Social.APActivity do
|
||||
|
||||
use Pointers.Pointable,
|
||||
use Needle.Pointable,
|
||||
otp_app: :bonfire_data_social,
|
||||
table_id: "30NF1REAPACTTAB1ENVMBER0NE",
|
||||
source: "bonfire_data_social_apactivity"
|
||||
|
@ -219,7 +219,7 @@ Most virtuals are incredibly simple to migrate for:
|
|||
```elixir
|
||||
defmodule Bonfire.Data.Social.Post.Migration do
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
alias Bonfire.Data.Social.Post
|
||||
|
||||
def migrate_post(), do: migrate_virtual(Post)
|
||||
|
@ -233,7 +233,7 @@ If you need to do more work, it can be a little trickier. Here's an example for
|
|||
defmodule Bonfire.Data.Social.Block.Migration do
|
||||
|
||||
import Ecto.Migration
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
import Bonfire.Data.Edges.Edge.Migration
|
||||
alias Bonfire.Data.Social.Block
|
||||
|
||||
|
@ -270,13 +270,13 @@ Example:
|
|||
defmodule Bonfire.Data.Social.APActivity.Migration do
|
||||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
alias Bonfire.Data.Social.APActivity
|
||||
|
||||
defp make_apactivity_table(exprs) do
|
||||
quote do
|
||||
require Pointers.Migration
|
||||
Pointers.Migration.create_pointable_table(Bonfire.Data.Social.APActivity) do
|
||||
require Needle.Migration
|
||||
Needle.Migration.create_pointable_table(Bonfire.Data.Social.APActivity) do
|
||||
Ecto.Migration.add :json, :jsonb
|
||||
unquote_splicing(exprs)
|
||||
end
|
||||
|
@ -311,15 +311,15 @@ Mixins look much like pointables:
|
|||
```elixir
|
||||
defmodule Bonfire.Data.Social.Profile.Migration do
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
alias Bonfire.Data.Social.Profile
|
||||
|
||||
# create_profile_table/{0,1}
|
||||
|
||||
defp make_profile_table(exprs) do
|
||||
quote do
|
||||
require Pointers.Migration
|
||||
Pointers.Migration.create_mixin_table(Bonfire.Data.Social.Profile) do
|
||||
require Needle.Migration
|
||||
Needle.Migration.create_mixin_table(Bonfire.Data.Social.Profile) do
|
||||
Ecto.Migration.add :name, :text
|
||||
Ecto.Migration.add :summary, :text
|
||||
Ecto.Migration.add :website, :text
|
||||
|
@ -367,7 +367,7 @@ Similar to mixins:
|
|||
defmodule Bonfire.Data.Social.FeedPublish.Migration do
|
||||
|
||||
import Ecto.Migration
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
alias Bonfire.Data.Social.FeedPublish
|
||||
|
||||
@feed_publish_table FeedPublish.__schema__(:source)
|
||||
|
@ -376,10 +376,10 @@ defmodule Bonfire.Data.Social.FeedPublish.Migration do
|
|||
|
||||
defp make_feed_publish_table(exprs) do
|
||||
quote do
|
||||
require Pointers.Migration
|
||||
Pointers.Migration.create_mixin_table(Bonfire.Data.Social.FeedPublish) do
|
||||
require Needle.Migration
|
||||
Needle.Migration.create_mixin_table(Bonfire.Data.Social.FeedPublish) do
|
||||
Ecto.Migration.add :feed_id,
|
||||
Pointers.Migration.strong_pointer(), primary_key: true
|
||||
Needle.Migration.strong_pointer(), primary_key: true
|
||||
unquote_splicing(exprs)
|
||||
end
|
||||
end
|
||||
|
@ -434,4 +434,4 @@ scenarios by now:
|
|||
* [bonfire_data_edges](https://github.com/bonfire-networks/bonfire_data_edges/) (feat. bonus triggers)
|
||||
|
||||
If you want to know exactly what's happening, you may want to read the code for
|
||||
[Pointers.Migration](https://github.com/bonfire-networks/pointers/blob/main/lib/migration.ex).
|
||||
[Needle.Migration](https://github.com/bonfire-networks/needle/blob/main/lib/migration.ex).
|
|
@ -82,7 +82,7 @@
|
|||
| file_info | MIT | 0.0.4 | https://hex.pm/packages/file_info |
|
||||
| file_system | WTFPL | 0.2.10 | https://hex.pm/packages/file_system |
|
||||
| flame_on | MIT | 0.5.0 | https://hex.pm/packages/flame_on |
|
||||
| flexto | Apache 2.0 | 0.2.3 | https://github.com/bonfire-networks/flexto |
|
||||
| exto | Apache 2.0 | 0.2.3 | https://github.com/bonfire-networks/exto |
|
||||
| floki | MIT | 0.32.1 | https://hex.pm/packages/floki |
|
||||
| gen_smtp | BSD-2-Clause; Unrecognized license | 1.2.0 | https://hex.pm/packages/gen_smtp |
|
||||
| geo | MIT | 3.4.3 | https://hex.pm/packages/geo |
|
||||
|
@ -143,7 +143,7 @@
|
|||
| plug_cowboy | Apache 2.0 | 2.5.2 | https://hex.pm/packages/plug_cowboy |
|
||||
| plug_crypto | Apache 2.0 | 1.2.2 | https://hex.pm/packages/plug_crypto |
|
||||
| pointers | Apache 2.0 | 0.6.0 | https://github.com/bonfire-networks/pointers |
|
||||
| pointers_ulid | MIT | 0.2.2 | https://github.com/bonfire-networks/pointers_ulid |
|
||||
| needle_ulid | MIT | 0.2.2 | https://github.com/bonfire-networks/needle_ulid |
|
||||
| postgrex | Apache 2.0 | 0.16.3 | https://hex.pm/packages/postgrex |
|
||||
| pseudo_gettext | Undefined | 0.1.0 | https://github.com/tmbb/pseudo_gettext |
|
||||
| ranch | ISC | 1.8.0 | https://hex.pm/packages/ranch |
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
| file_info | MIT | 0.0.4 | https://hex.pm/packages/file_info |
|
||||
| file_system | WTFPL | 0.2.10 | https://hex.pm/packages/file_system |
|
||||
| flame_on | MIT | 0.2.1 | https://hex.pm/packages/flame_on |
|
||||
| flexto | Apache 2.0 | 0.2.3 | https://github.com/bonfire-networks/flexto |
|
||||
| exto | Apache 2.0 | 0.2.3 | https://github.com/bonfire-networks/exto |
|
||||
| floki | MIT | 0.32.0 | https://hex.pm/packages/floki |
|
||||
| gen_smtp | BSD 2-clause; Unrecognized license | 1.1.1 | https://hex.pm/packages/gen_smtp |
|
||||
| geo | MIT | 3.4.3 | https://hex.pm/packages/geo |
|
||||
|
@ -139,7 +139,7 @@
|
|||
| plug_cowboy | Apache 2.0 | 2.5.2 | https://hex.pm/packages/plug_cowboy |
|
||||
| plug_crypto | Apache 2.0 | 1.2.2 | https://hex.pm/packages/plug_crypto |
|
||||
| pointers | Apache 2.0 | 0.6.0 | https://github.com/bonfire-networks/pointers |
|
||||
| pointers_ulid | MIT | 0.2.2 | https://github.com/bonfire-networks/pointers_ulid |
|
||||
| needle_ulid | MIT | 0.2.2 | https://github.com/bonfire-networks/needle_ulid |
|
||||
| poolboy | Unlicense; Apache 2.0; ISC | 1.5.2 | https://hex.pm/packages/poolboy |
|
||||
| postgrex | Apache 2.0 | 0.16.2 | https://hex.pm/packages/postgrex |
|
||||
| ranch | ISC | 1.8.0 | https://hex.pm/packages/ranch |
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
| exsync | BSD 3-Clause; Unrecognized license | 0.2.4 | https://hex.pm/packages/exsync |
|
||||
| faker | MIT | 0.16.0 | https://hex.pm/packages/faker |
|
||||
| file_system | WTFPL | 0.2.10 | https://hex.pm/packages/file_system |
|
||||
| flexto | Apache 2.0 | 0.2.2 | https://github.com/bonfire-networks/flexto |
|
||||
| exto | Apache 2.0 | 0.2.2 | https://github.com/bonfire-networks/exto |
|
||||
| floki | MIT | 0.30.1 | https://hex.pm/packages/floki |
|
||||
| gen_smtp | BSD 2-clause; Unrecognized license | 0.15.0 | https://hex.pm/packages/gen_smtp |
|
||||
| geo | MIT | 3.4.2 | https://hex.pm/packages/geo |
|
||||
|
@ -84,7 +84,7 @@
|
|||
| plug_cowboy | Apache 2.0 | 2.5.0 | https://hex.pm/packages/plug_cowboy |
|
||||
| plug_crypto | Apache 2.0 | 1.2.2 | https://hex.pm/packages/plug_crypto |
|
||||
| pointers | Apache 2.0 | 0.5.1 | https://github.com/bonfire-networks/pointers |
|
||||
| pointers_ulid | MIT | 0.2.2 | https://github.com/bonfire-networks/pointers_ulid |
|
||||
| needle_ulid | MIT | 0.2.2 | https://github.com/bonfire-networks/needle_ulid |
|
||||
| poolboy | Unlicense; Apache 2.0; ISC | 1.5.2 | https://hex.pm/packages/poolboy |
|
||||
| postgrex | Apache 2.0 | 0.15.8 | https://hex.pm/packages/postgrex |
|
||||
| query_elf | Apache 2.0 | 0.3.0 | https://github.com/bonfire-networks/query_elf |
|
||||
|
|
|
@ -46,7 +46,7 @@ pointable_schema_extensions = [
|
|||
:bonfire_pages
|
||||
]
|
||||
|
||||
config :pointers, :search_path, pointable_schema_extensions
|
||||
config :needle, :search_path, pointable_schema_extensions
|
||||
|
||||
# Search these apps/extensions for context or queries modules to index (i.e. they contain modules with a query_module/0 or context_modules/0 function)
|
||||
context_and_queries_extensions =
|
||||
|
@ -125,8 +125,8 @@ config :bonfire_data_access_control,
|
|||
]
|
||||
|
||||
#### Alias modules for readability
|
||||
alias Pointers.Pointer
|
||||
alias Pointers.Table
|
||||
alias Needle.Pointer
|
||||
alias Needle.Table
|
||||
|
||||
alias Bonfire.Data.AccessControl.Acl
|
||||
alias Bonfire.Data.AccessControl.Circle
|
||||
|
@ -193,7 +193,7 @@ alias Bonfire.Files.Media
|
|||
alias Bonfire.Tag
|
||||
alias Bonfire.Tag.Tagged
|
||||
|
||||
#### Flexto Stitching
|
||||
#### Exto Stitching
|
||||
|
||||
## WARNING: This is the flaky magic bit. We use configuration to
|
||||
## compile extra stuff into modules. If you add new fields or
|
||||
|
@ -457,7 +457,7 @@ pointer_mixins =
|
|||
:feed_publishes
|
||||
])
|
||||
|
||||
config :pointers, Pointer,
|
||||
config :needle, Pointer,
|
||||
code:
|
||||
(quote do
|
||||
field(:dummy, :any, virtual: true)
|
||||
|
@ -479,7 +479,7 @@ config :pointers, Pointer,
|
|||
unquote_splicing(pointer_mixins)
|
||||
end)
|
||||
|
||||
config :pointers, Table, []
|
||||
config :needle, Table, []
|
||||
|
||||
# now let's weave everything else together for convenience
|
||||
# bonfire_data_access_control
|
||||
|
|
|
@ -94,7 +94,7 @@ config :bonfire, Bonfire.Common.TestInstanceRepo,
|
|||
# priv: flavour_path <> "/repo"
|
||||
|
||||
# ecto query filtering
|
||||
# config :query_elf, :id_types, [:id, :binary_id, Pointers.ULID]
|
||||
# config :query_elf, :id_types, [:id, :binary_id, Needle.ULID]
|
||||
|
||||
# disable Tzdata and replace with Tz library
|
||||
config :tzdata, :autoupdate, :disabled
|
||||
|
@ -109,8 +109,8 @@ config :elixir, :dbg_callback, {Untangle, :custom_dbg, []}
|
|||
config :surface, :compiler, warn_on_undefined_props: false
|
||||
|
||||
config :paper_trail,
|
||||
item_type: Pointers.ULID,
|
||||
originator_type: Pointers.ULID,
|
||||
item_type: Needle.ULID,
|
||||
originator_type: Needle.ULID,
|
||||
originator_relationship_options: [references: :id],
|
||||
originator: [name: :user, model: Bonfire.Data.Identity.User]
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ bonfire_data_shared_user = "https://github.com/bonfire-networks/bonfire_data_sha
|
|||
bonfire_tag = "https://github.com/bonfire-networks/bonfire_tag#main"
|
||||
|
||||
## UTILS
|
||||
arrows = "https://github.com/bonfire-networks/arrows"
|
||||
# arrows = "https://github.com/bonfire-networks/arrows"
|
||||
activity_pub = "https://github.com/bonfire-networks/activity_pub#develop"
|
||||
mfm_parser = "https://akkoma.dev/AkkomaGang/mfm-parser.git"
|
||||
nodeinfo = "https://github.com/bonfire-networks/nodeinfo#main"
|
||||
|
@ -39,9 +39,9 @@ emote = "https://github.com/bonfire-networks/emote#master"
|
|||
paginator = "https://github.com/bonfire-networks/paginator#main"
|
||||
voodoo = "https://github.com/bonfire-networks/voodoo#main"
|
||||
ecto_sparkles = "https://github.com/bonfire-networks/ecto_sparkles#main"
|
||||
flexto = "https://github.com/bonfire-networks/flexto#main"
|
||||
pointers = "https://github.com/bonfire-networks/pointers#main"
|
||||
pointers_ulid = "https://github.com/bonfire-networks/pointers_ulid#main"
|
||||
# exto = "https://github.com/bonfire-networks/exto#main"
|
||||
# needle = "https://github.com/bonfire-networks/needle#main"
|
||||
# needle_ulid = "https://github.com/bonfire-networks/needle_ulid#main"
|
||||
#twinkle_star = "https://github.com/bonfire-networks/twinkle_star"
|
||||
#tree_magic = "https://github.com/bonfire-networks/tree_magic.ex"
|
||||
live_admin = "https://github.com/bonfire-networks/live_admin"
|
||||
|
@ -58,7 +58,7 @@ capsule_supplement = "https://github.com/bonfire-networks/capsule_supplement#wit
|
|||
# beacon_live_admin = "https://github.com/beaconCMS/beacon_live_admin"
|
||||
# bonfire_website = "https://github.com/bonfire-networks/bonfire_website#main"
|
||||
|
||||
bonfire_open_id = "https://github.com/bonfire-networks/bonfire_open_id#main"
|
||||
# bonfire_open_id = "https://github.com/bonfire-networks/bonfire_open_id#main"
|
||||
# boruta = "https://gitlab.com/patatoid/boruta_auth#master"
|
||||
|
||||
# rauversion_extension = "https://github.com/mayel/rauversion-phx.git#modular-extension-step2"
|
||||
|
@ -81,8 +81,8 @@ paper_trail = "https://github.com/bonfire-networks/paper_trail#with-pointers"
|
|||
|
||||
# sentry = "https://github.com/getsentry/sentry-elixir"
|
||||
|
||||
bonfire_editor_ck = "https://github.com/bonfire-networks/bonfire_editor_ck#main"
|
||||
bonfire_editor_quill = "https://github.com/bonfire-networks/bonfire_editor_quill#main"
|
||||
# bonfire_editor_ck = "https://github.com/bonfire-networks/bonfire_editor_ck#main"
|
||||
# bonfire_editor_quill = "https://github.com/bonfire-networks/bonfire_editor_quill#main"
|
||||
bonfire_editor_milkdown = "https://github.com/bonfire-networks/bonfire_editor_milkdown"
|
||||
|
||||
# bonfire_gatherings = "https://github.com/bonfire-networks/bonfire_gatherings"
|
||||
|
|
|
@ -26,7 +26,7 @@ wobserver_ng = "~> 1.14"
|
|||
|
||||
# DB
|
||||
ecto_sql = "~> 3.8"
|
||||
flexto = "~> 0.2.3"
|
||||
exto = "~> 0.3"
|
||||
postgrex = ">= 0.16.2"
|
||||
ecto_psql_extras = "~> 0.7.4"
|
||||
# endo = "~> 0.1"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
defmodule Bonfire.Repo.Migrations.InitPointers do
|
||||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
init_pointers_ulid_extra()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFiles do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Media.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Files.Media.Migrations.migrate_media()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Social.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_social()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Social.Graph.Repo.Migrations.ImportSocial do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Social.Graph.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_social()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Posts.Repo.Migrations.ImportSocial do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Posts.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_social()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Messages.Repo.Migrations.ImportSocial do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Messages.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_social()
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
drop_if_exists(
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_data_activity_pub_peered") do
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFilesMixin do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
# cleanup old stuff
|
||||
|
|
|
@ -2,11 +2,11 @@ defmodule Bonfire.Social.Repo.Migrations.InstanceAdminUser do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_data_access_control_instance_admin") do
|
||||
Ecto.Migration.add_if_not_exists(:user_id, weak_pointer(Pointers.Pointer))
|
||||
Ecto.Migration.add_if_not_exists(:user_id, weak_pointer(Needle.Pointer))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Files.Repo.Migrations.FilesRefactor do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_files_media") do
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Data.Identity.Repo.Migrations.SettingsJson do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_data_identity_settings") do
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
defmodule Bonfire.Repo.Migrations.InitPointers do
|
||||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
init_pointers_ulid_extra()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFiles do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Media.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Files.Media.Migrations.migrate_media()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Social.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_social()
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
drop_if_exists(
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_data_activity_pub_peered") do
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFilesMixin do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
# cleanup old stuff
|
||||
|
|
|
@ -2,11 +2,11 @@ defmodule Bonfire.Social.Repo.Migrations.InstanceAdminUser do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_data_access_control_instance_admin") do
|
||||
Ecto.Migration.add_if_not_exists(:user_id, weak_pointer(Pointers.Pointer))
|
||||
Ecto.Migration.add_if_not_exists(:user_id, weak_pointer(Needle.Pointer))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
defmodule Bonfire.Repo.Migrations.InitPointers do
|
||||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
init_pointers_ulid_extra()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFiles do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Media.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Files.Media.Migrations.migrate_media()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Social.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_social()
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
drop_if_exists(
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_data_activity_pub_peered") do
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFilesMixin do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
# cleanup old stuff
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Pages.Repo.Migrations.ImportPages do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Pages.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_pages()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
defmodule Bonfire.Repo.Migrations.InitPointers do
|
||||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
init_pointers_ulid_extra()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFiles do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Media.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Files.Media.Migrations.migrate_media()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Social.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_social()
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
drop_if_exists(
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_data_activity_pub_peered") do
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFilesMixin do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
# cleanup old stuff
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
defmodule Bonfire.Repo.Migrations.InitPointers do
|
||||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
init_pointers_ulid_extra()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFiles do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Media.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Files.Media.Migrations.migrate_media()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Social.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_social()
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
drop_if_exists(
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_data_activity_pub_peered") do
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFilesMixin do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
# cleanup old stuff
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
defmodule Bonfire.Repo.Migrations.InitPointers do
|
||||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
import Pointers.Migration
|
||||
# import Pointers.ULID.Migration
|
||||
import Needle.Migration
|
||||
# import Needle.ULID.Migration
|
||||
|
||||
def up do
|
||||
init_pointers()
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
defmodule Bonfire.Repo.Migrations.InitPointersULID do
|
||||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
# import Pointers.Migration
|
||||
import Pointers.ULID.Migration
|
||||
# import Needle.Migration
|
||||
import Needle.ULID.Migration
|
||||
|
||||
def change do
|
||||
init_pointers_ulid_extra()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFiles do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Media.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Files.Media.Migrations.migrate_media()
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Social.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
migrate_social()
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
drop_if_exists(
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
|
|||
@moduledoc false
|
||||
use Ecto.Migration
|
||||
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_data_activity_pub_peered") do
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.AddFilesMixin do
|
|||
use Ecto.Migration
|
||||
|
||||
import Bonfire.Files.Migrations
|
||||
import Pointers.Migration
|
||||
import Needle.Migration
|
||||
|
||||
def up do
|
||||
# cleanup old stuff
|
||||
|
|
20
justfile
20
justfile
|
@ -274,7 +274,7 @@ update-deps-all: deps-unlock-unused pre-update-deps
|
|||
just js-ext-deps outdated
|
||||
-just mix "hex.outdated --all"
|
||||
|
||||
# Update a specify dep (eg. `just update.dep pointers`)
|
||||
# Update a specify dep (eg. `just update.dep needle`)
|
||||
update-dep dep: pre-update-deps
|
||||
just update-fork $dep pull
|
||||
just mix-remote "deps.update $dep"
|
||||
|
@ -360,39 +360,39 @@ dep-clone-local dep repo:
|
|||
deps-clone-local-all:
|
||||
curl -s https://api.github.com/orgs/bonfire-networks/repos?per_page=500 | ruby -rrubygems -e 'require "json"; JSON.load(STDIN.read).each { |repo| %x[just dep.clone.local dep="#{repo["name"]}" repo="#{repo["ssh_url"]}" ]}'
|
||||
|
||||
# Switch to using a local path, eg: just dep.go.local pointers
|
||||
# Switch to using a local path, eg: just dep.go.local needle
|
||||
dep-go-local dep:
|
||||
just dep-go-local-path $dep $EXT_PATH$dep
|
||||
|
||||
# Switch to using a local path, specifying the path, eg: just dep.go.local dep=pointers path=./libs/pointers
|
||||
# Switch to using a local path, specifying the path, eg: just dep.go.local dep=needle path=./libs/needle
|
||||
dep-go-local-path dep path:
|
||||
just dep-local add $dep $path
|
||||
just dep-local enable $dep $path
|
||||
|
||||
# Switch to using a git repo, eg: just dep.go.git pointers https://github.com/bonfire-networks/pointers (specifying the repo is optional if previously specified)
|
||||
# Switch to using a git repo, eg: just dep.go.git needle https://github.com/bonfire-networks/needle (specifying the repo is optional if previously specified)
|
||||
dep-go-git dep repo:
|
||||
-just dep-git add $dep $repo
|
||||
just dep-git enable $dep NA
|
||||
just dep-local disable $dep NA
|
||||
|
||||
# Switch to using a library from hex.pm, eg: just dep.go.hex dep="pointers" version="_> 0.2" (specifying the version is optional if previously specified)
|
||||
# Switch to using a library from hex.pm, eg: just dep.go.hex dep="needle" version="_> 0.2" (specifying the version is optional if previously specified)
|
||||
dep-go-hex dep version:
|
||||
-just dep-hex add dep=$dep version=$version
|
||||
just dep-hex enable $dep NA
|
||||
just dep-git disable $dep NA
|
||||
just dep-local disable $dep NA
|
||||
|
||||
# add/enable/disable/delete a hex dep with messctl command, eg: `just dep-hex enable pointers 0.2`
|
||||
# add/enable/disable/delete a hex dep with messctl command, eg: `just dep-hex enable needle 0.2`
|
||||
dep-hex command dep version:
|
||||
just messctl "$command $dep $version"
|
||||
just mix "deps.clean $dep"
|
||||
|
||||
# add/enable/disable/delete a git dep with messctl command, eg: `just dep-hex enable pointers https://github.com/bonfire-networks/pointers#main
|
||||
# add/enable/disable/delete a git dep with messctl command, eg: `just dep-hex enable needle https://github.com/bonfire-networks/needle#main
|
||||
dep-git command dep repo:
|
||||
just messctl "$command $dep $repo config/deps.git"
|
||||
just mix "deps.clean $dep"
|
||||
|
||||
# add/enable/disable/delete a local dep with messctl command, eg: `just dep-hex enable pointers ./libs/pointers`
|
||||
# add/enable/disable/delete a local dep with messctl command, eg: `just dep-hex enable needle ./libs/needle`
|
||||
dep-local command dep path:
|
||||
just messctl "$command $dep $path config/deps.path"
|
||||
just mix "deps.clean $dep"
|
||||
|
@ -726,7 +726,7 @@ shell:
|
|||
@imix *args='':
|
||||
just cmd iex -S mix $@
|
||||
|
||||
# Run a specific mix command, eg: `just mix deps.get` or `just mix "deps.update pointers"`
|
||||
# Run a specific mix command, eg: `just mix deps.get` or `just mix "deps.update needle"`
|
||||
@mix *args='':
|
||||
echo % mix $@
|
||||
{{ if MIX_ENV == "prod" { "just mix-maybe-prod $@" } else { "just cmd mix $@" } }}
|
||||
|
@ -737,7 +737,7 @@ shell:
|
|||
@mix-maybe-prod-pre-release *args='':
|
||||
{{ if path_exists("./_build/prod/rel/bonfire/bin/bonfire")=="true" { "echo Ignoring mix commands since we already have a prod release (delete _build/prod/rel/bonfire/bin/bonfire if you want to build a new release)" } else { "just cmd mix $@" } }}
|
||||
|
||||
# Run a specific mix command, while ignoring any deps cloned into forks, eg: `just mix-remote deps.get` or `just mix-remote deps.update pointers`
|
||||
# Run a specific mix command, while ignoring any deps cloned into forks, eg: `just mix-remote deps.get` or `just mix-remote deps.update needle`
|
||||
mix-remote *args='': init
|
||||
echo % WITH_FORKS=0 mix $@
|
||||
{{ if WITH_DOCKER == "total" { "docker compose run -e WITH_FORKS=0 web mix $@" } else {"WITH_FORKS=0 mix $@"} }}
|
||||
|
|
10
mix.exs
10
mix.exs
|
@ -116,7 +116,7 @@ defmodule Bonfire.Umbrella.MixProject do
|
|||
deps_prefixes: [
|
||||
docs: [
|
||||
"bonfire",
|
||||
"pointers",
|
||||
"needle",
|
||||
"paginator",
|
||||
"ecto_shorts",
|
||||
"ecto_sparkles",
|
||||
|
@ -124,7 +124,7 @@ defmodule Bonfire.Umbrella.MixProject do
|
|||
"activity_pub",
|
||||
"arrows",
|
||||
"ecto_materialized_path",
|
||||
"flexto",
|
||||
"exto",
|
||||
"grumble",
|
||||
"linkify",
|
||||
"verbs",
|
||||
|
@ -134,7 +134,7 @@ defmodule Bonfire.Umbrella.MixProject do
|
|||
],
|
||||
test: [
|
||||
"bonfire",
|
||||
"pointers",
|
||||
"needle",
|
||||
# "paginator",
|
||||
"ecto_shorts",
|
||||
"ecto_sparkles",
|
||||
|
@ -147,7 +147,7 @@ defmodule Bonfire.Umbrella.MixProject do
|
|||
data: [
|
||||
"bonfire_data_",
|
||||
"bonfire_data_edges",
|
||||
"pointers",
|
||||
"needle",
|
||||
"bonfire_boundaries",
|
||||
"bonfire_tag",
|
||||
"bonfire_classify",
|
||||
|
@ -279,7 +279,7 @@ defmodule Bonfire.Umbrella.MixProject do
|
|||
~r/^Bonfire.Fail?/,
|
||||
~r/^Bonfire.Files?/,
|
||||
~r/^Bonfire.Mailer?/,
|
||||
~r/^Pointers?/
|
||||
~r/^Needle?/
|
||||
],
|
||||
"Feature extensions": [~r/^Bonfire.?/, ~r/^ValueFlows.?/],
|
||||
Federation: [
|
||||
|
|
7
mix.lock
7
mix.lock
|
@ -6,7 +6,7 @@
|
|||
"acceptor_pool": {:hex, :acceptor_pool, "1.0.0", "43c20d2acae35f0c2bcd64f9d2bde267e459f0f3fd23dab26485bf518c281b21", [:rebar3], [], "hexpm", "0cbcd83fdc8b9ad2eee2067ef8b91a14858a5883cb7cd800e6fcd5803e158788"},
|
||||
"activity_pub": {:git, "https://github.com/bonfire-networks/activity_pub", "f6169b79eccdecd39b9805511f715f1010529104", [branch: "develop"]},
|
||||
"argon2_elixir": {:hex, :argon2_elixir, "4.0.0", "7f6cd2e4a93a37f61d58a367d82f830ad9527082ff3c820b8197a8a736648941", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "f9da27cf060c9ea61b1bd47837a28d7e48a8f6fa13a745e252556c14f9132c7f"},
|
||||
"arrows": {:git, "https://github.com/bonfire-networks/arrows", "277b3bc4babbcf89ea5e7e7fb670e6c13d796026", []},
|
||||
"arrows": {:hex, :arrows, "0.1.1", "c414e21173115987578bda1bf35a60cde228a16d7e52d9f6c76e1c8914c22c79", [:mix], [], "hexpm", "ce6de75d7cb43a032e9856826c5bace8f43434ee574e4a6a412f9d3b3931062e"},
|
||||
"assert_value": {:hex, :assert_value, "0.10.3", "bb4cc3f497e1eba276e1e55eb1574bb8657752539a72259d1d7e17e15bd98f6d", [:mix], [], "hexpm", "ca51af160d9ab14b283deac1d48ff72414257792a399dbe3d5cb384f4f3d625b"},
|
||||
"bamboo": {:hex, :bamboo, "2.3.0", "d2392a2cabe91edf488553d3c70638b532e8db7b76b84b0a39e3dfe492ffd6fc", [:mix], [{:hackney, ">= 1.15.2", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.4 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "dd0037e68e108fd04d0e8773921512c940e35d981e097b5793543e3b2f9cd3f6"},
|
||||
"bamboo_campaign_monitor": {:hex, :bamboo_campaign_monitor, "0.1.0", "e4b60354a2186c75e9a338fdd932e027b8bbeba9c274245546291429671e8753", [:mix], [{:bamboo, ">= 1.2.0", [hex: :bamboo, repo: "hexpm", optional: false]}, {:hackney, ">= 1.6.5", [hex: :hackney, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "5b60a27ab2b8596f274f22d3cb8bd8d8f3865667f1ec181bfa6635aa7646d79a"},
|
||||
|
@ -128,13 +128,13 @@
|
|||
"excellent_migrations": {:hex, :excellent_migrations, "0.1.6", "5ac916760cee8c63f55a2dbf3eadabb699a60adde5943ce069c1f7ee93f92963", [:mix], [{:credo, "~> 1.5", [hex: :credo, repo: "hexpm", optional: true]}], "hexpm", "c39269b0e4c0412b3e87fd77fe7ce8dd0e8470a6ec3df7d150b8d198b69a0239"},
|
||||
"exdiff": {:hex, :exdiff, "0.1.5", "3e55bd840214508fd478d91fb07f1671d90d2f0d6f5266296e3b596e07d92305", [:mix], [], "hexpm", "b1ccef642edc28ed3acf1b08c8dbc6e42852d18dfe51b453529588e53c733eba"},
|
||||
"expo": {:hex, :expo, "0.5.1", "249e826a897cac48f591deba863b26c16682b43711dd15ee86b92f25eafd96d9", [:mix], [], "hexpm", "68a4233b0658a3d12ee00d27d37d856b1ba48607e7ce20fd376958d0ba6ce92b"},
|
||||
"exto": {:git, "https://github.com/bonfire-networks/exto", "44273bc9e530ea9752f534a46836475af12e0355", [branch: "main"]},
|
||||
"faker": {:hex, :faker, "0.17.0", "671019d0652f63aefd8723b72167ecdb284baf7d47ad3a82a15e9b8a6df5d1fa", [:mix], [], "hexpm", "a7d4ad84a93fd25c5f5303510753789fc2433ff241bf3b4144d3f6f291658a6a"},
|
||||
"fast_ngram": {:hex, :fast_ngram, "1.2.0", "0652c25d3f66e69e6780121cf19200442fe70da689b39ccaa8998da6ee2f65cc", [:mix], [], "hexpm", "90c949c5b00314d8117a5bf2fbf6a05ef945ce4cad66a47bc26f8d9ec30dc1bd"},
|
||||
"fetch_favicon": {:git, "https://github.com/bonfire-networks/fetch_favicon", "5fbcbbd633e954c90c3a6c3a7daf2230a189e919", [branch: "master"]},
|
||||
"file_info": {:hex, :file_info, "0.0.4", "2e0e77f211e833f38ead22cb29ce53761d457d80b3ffe0ffe0eb93880b0963b2", [:mix], [{:mimetype_parser, "~> 0.1.2", [hex: :mimetype_parser, repo: "hexpm", optional: false]}], "hexpm", "50e7ad01c2c8b9339010675fe4dc4a113b8d6ca7eddce24d1d74fd0e762781a5"},
|
||||
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
|
||||
"finch": {:hex, :finch, "0.16.0", "40733f02c89f94a112518071c0a91fe86069560f5dbdb39f9150042f44dcfb1a", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f660174c4d519e5fec629016054d60edd822cdfe2b7270836739ac2f97735ec5"},
|
||||
"flexto": {:git, "https://github.com/bonfire-networks/flexto", "44273bc9e530ea9752f534a46836475af12e0355", [branch: "main"]},
|
||||
"floki": {:hex, :floki, "0.35.2", "87f8c75ed8654b9635b311774308b2760b47e9a579dabf2e4d5f1e1d42c39e0b", [:mix], [], "hexpm", "6b05289a8e9eac475f644f09c2e4ba7e19201fd002b89c28c1293e7bd16773d9"},
|
||||
"flow": {:hex, :flow, "0.15.0", "503717c0e367b5713336181d5305106840f64abbad32c75d7af5ef1bb0908e38", [:mix], [{:gen_stage, "~> 0.14.0", [hex: :gen_stage, repo: "hexpm", optional: false]}], "hexpm", "d7ecbd4dd38a188494bc996d5014ef8335f436a0b262140a1f6441ae94714581"},
|
||||
"forecastr": {:git, "https://github.com/bonfire-networks/forecastr", "84235e51e4cd36ca4df03a24718b4367e296c053", []},
|
||||
|
@ -204,6 +204,7 @@
|
|||
"mogrify": {:git, "https://github.com/chaskiq/mogrify.git", "48e237d2332d24ddf5996f78b13d8bc97221b094", [branch: "identify-option"]},
|
||||
"mox": {:hex, :mox, "1.1.0", "0f5e399649ce9ab7602f72e718305c0f9cdc351190f72844599545e4996af73c", [:mix], [], "hexpm", "d44474c50be02d5b72131070281a5d3895c0e7a95c780e90bc0cfe712f633a13"},
|
||||
"nebulex": {:hex, :nebulex, "2.5.2", "2d358813ccb2eeea525e3a29c270ad123d3337e97ed9159d9113cf128108bd4c", [:mix], [{:decorator, "~> 1.4", [hex: :decorator, repo: "hexpm", optional: true]}, {:shards, "~> 1.1", [hex: :shards, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "61a122302cf42fa61eca22515b1df21aaaa1b98cf462f6dd0998de9797aaf1c7"},
|
||||
"needle_ulid": {:git, "https://github.com/bonfire-networks/needle_ulid", "c20fe48d846a0f3c6074f2c6a4b0edafffe45803", [branch: "main"]},
|
||||
"neuron": {:hex, :neuron, "5.1.0", "dd321d5c2d9c03706ee7161ab49f8af634bfd1becb6fb95d8caa28bc95b6c655", [:mix], [{:httpoison, "~> 1.0 or ~> 2.0", [hex: :httpoison, repo: "hexpm", optional: false]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "23cddb0e0dd9c0eea247bc5b4bc3e1f8b52dbaf63f1637623920ec0b2385b6ce"},
|
||||
"nimble_csv": {:hex, :nimble_csv, "1.2.0", "4e26385d260c61eba9d4412c71cea34421f296d5353f914afe3f2e71cce97722", [:mix], [], "hexpm", "d0628117fcc2148178b034044c55359b26966c6eaa8e2ce15777be3bbc91b12a"},
|
||||
"nimble_options": {:hex, :nimble_options, "1.1.0", "3b31a57ede9cb1502071fade751ab0c7b8dbe75a9a4c2b5bbb0943a690b63172", [:mix], [], "hexpm", "8bbbb3941af3ca9acc7835f5655ea062111c9c27bcac53e004460dfd19008a99"},
|
||||
|
@ -252,8 +253,6 @@
|
|||
"plug_cowboy": {:hex, :plug_cowboy, "2.6.1", "9a3bbfceeb65eff5f39dab529e5cd79137ac36e913c02067dba3963a26efe9b2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "de36e1a21f451a18b790f37765db198075c25875c64834bcc82d90b309eb6613"},
|
||||
"plug_crypto": {:hex, :plug_crypto, "2.0.0", "77515cc10af06645abbfb5e6ad7a3e9714f805ae118fa1a70205f80d2d70fe73", [:mix], [], "hexpm", "53695bae57cc4e54566d993eb01074e4d894b65a3766f1c43e2c61a1b0f45ea9"},
|
||||
"plug_http_validator": {:git, "https://github.com/bonfire-networks/plug_http_validator", "dbc277f8a328bc44107174fb1770b1376337697a", [branch: "pr-naive-datetime"]},
|
||||
"pointers": {:git, "https://github.com/bonfire-networks/pointers", "81836571494c0d73927128f0504f6f92bd390035", [branch: "main"]},
|
||||
"pointers_ulid": {:git, "https://github.com/bonfire-networks/pointers_ulid", "c20fe48d846a0f3c6074f2c6a4b0edafffe45803", [branch: "main"]},
|
||||
"poison": {:hex, :poison, "5.0.0", "d2b54589ab4157bbb82ec2050757779bfed724463a544b6e20d79855a9e43b24", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "11dc6117c501b80c62a7594f941d043982a1bd05a1184280c0d9166eb4d8d3fc"},
|
||||
"poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm", "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"},
|
||||
"postgrex": {:hex, :postgrex, "0.17.4", "5777781f80f53b7c431a001c8dad83ee167bcebcf3a793e3906efff680ab62b3", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "6458f7d5b70652bc81c3ea759f91736c16a31be000f306d3c64bcdfe9a18b3cc"},
|
||||
|
|
Loading…
Reference in a new issue