Skip to content

Commit 4e60db2

Browse files
committed
chore: add snap-in version upgrade compatibility doc
1 parent e7864b7 commit 4e60db2

File tree

2 files changed

+139
-0
lines changed

2 files changed

+139
-0
lines changed
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
This document outlines the compatibility rules when upgrading snap-in versions. These rules determine what changes are allowed in a patch upgrade.
2+
3+
## Connections
4+
- New optional connections can be added
5+
- New required connections cannot be added
6+
- Existing connections can be removed
7+
- For existing connections:
8+
- Description can be changed
9+
- Display name can be changed
10+
- New keyring types can be added
11+
- Existing keyring types cannot be removed
12+
- Optional connections cannot be made required
13+
- Required connections can be made optional
14+
15+
## Event Sources
16+
- New event sources cannot be added
17+
- Existing event sources cannot be removed
18+
- For existing event sources:
19+
- Description can be changed
20+
- Display name can be changed
21+
- Type cannot be changed
22+
- Connection can be removed but cannot be changed
23+
- Source config can be changed (test changes thoroughly)
24+
- Setup instructions can be changed
25+
- Function can be changed
26+
27+
## Tags
28+
- New tags can be added
29+
- Existing tags cannot be removed
30+
- For existing tags:
31+
- Description can be changed
32+
33+
## Automations
34+
- Full flexibility - can be added, removed, or modified
35+
- Description can be changed
36+
- Source can be changed
37+
- Allowed event types can be changed
38+
- Function to execute can be changed
39+
40+
## Hooks
41+
- New hook types can be added
42+
- Existing hook types can be removed
43+
- Function to execute can be changed
44+
45+
## Functions
46+
- Full flexibility - can be added, removed, or modified
47+
- All properties can be changed
48+
49+
## Commands
50+
- Full flexibility - can be added, removed, or modified
51+
- All properties can be changed
52+
53+
## Snap Kit Actions
54+
- Can be removed
55+
- For existing snap kit actions:
56+
- Description can be changed
57+
- Function can be changed
58+
59+
## Snap Components
60+
- Can be removed
61+
- For existing snap components:
62+
- Display name can be changed
63+
- Description can be changed
64+
- Surface cannot be changed
65+
- Snap kit action name can be changed
66+
- Snap kit body can be changed
67+
- Initializer can be changed
68+
69+
## Service Account
70+
- Display name can be changed
71+
- Description can be changed
72+
73+
## Inputs (Global Variables)
74+
- Can be added or removed
75+
- For existing inputs:
76+
- Type cannot be changed
77+
- All other properties can be modified
78+
79+
## Imports
80+
- New imports can be added
81+
- Existing imports cannot be removed
82+
- For existing imports:
83+
- Display name can be changed
84+
- Description can be changed
85+
- Function cannot be changed
86+
- New allowed keyring types can be added
87+
- Existing allowed keyring types cannot be removed
88+
- Function name can be changed
89+
- Loader function cannot be removed once set
90+
91+
## User Level Keyrings
92+
- New keyrings can be added
93+
- Existing keyrings can be removed
94+
- For existing keyrings:
95+
- Description can be changed
96+
- Display name can be changed
97+
- New allowed types can be added
98+
- Existing allowed types cannot be removed
99+
- Required keyrings can be made optional
100+
101+
## User Level Inputs
102+
- Can be added or removed
103+
- For existing inputs:
104+
- Type cannot be changed
105+
- All other properties can be modified
106+
107+
## Keyring Types
108+
- Can be added or removed
109+
- For existing keyring types:
110+
- Name can be changed
111+
- Description can be changed
112+
- Scopes can be changed
113+
- Scope delimiter can be changed
114+
- Authorize, refresh, and revoke functions can be changed
115+
- Organization data can be changed
116+
- External service name can be changed
117+
- Kind cannot be changed
118+
- Keyring type template cannot be changed
119+
- OAuth secret ID cannot be changed
120+
121+
## Functions Build Config
122+
- Full flexibility - can be added, removed, or modified
123+
- All properties can be changed
124+
125+
## Configuration Handler
126+
- Full flexibility - can be added, removed, or modified
127+
- All properties can be changed
128+
129+
## Operations
130+
- New operations can be added
131+
- Existing operations cannot be removed
132+
- For existing operations:
133+
- Operation type cannot be changed
134+
- Input ports cannot be changed (including type and schema)
135+
- Output ports cannot be changed (including type and schema)
136+
- Keyring types follow the same rules as Connections

fern/versions/public.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,9 @@ navigation:
217217
- page: Customizing snap-in configuration
218218
slug: customizing-snap-in-configuration
219219
path: ../docs/pages/references/snap-in-configuration.mdx
220+
- page: Snap-in version upgrade compatibility
221+
slug: snap-in-version-upgrade-compatibility
222+
path: ../docs/pages/references/snap-in-version-upgrade-compatibility.mdx
220223
- page: Development best practices
221224
slug: best-practices
222225
path: ../docs/pages/best_practices.mdx

0 commit comments

Comments
 (0)