Skip to content

Commit 1a081b6

Browse files
author
Sergio Schvezov
authored
store: temprorarily remove support for progressive releases (#2946)
The exposure of the progressive key has been reassessed and will not be part of the exposed feature. The UX also needs reconsideration on how the table is presented when a progressive release is triggered. Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>
1 parent 1fdd243 commit 1a081b6

2 files changed

Lines changed: 3 additions & 174 deletions

File tree

snapcraft/cli/store.py

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import stat
2222
import sys
2323
from textwrap import dedent
24-
from typing import Dict, List, Optional, Union
24+
from typing import Dict, List, Union
2525

2626
import click
2727
from tabulate import tabulate
@@ -219,24 +219,7 @@ def push_metadata(snap_file, force):
219219
@click.argument("snap-name", metavar="<snap-name>")
220220
@click.argument("revision", metavar="<revision>")
221221
@click.argument("channels", metavar="<channels>")
222-
@click.option(
223-
"--progressive-percentage",
224-
type=click.IntRange(0, 100),
225-
metavar="<percentage>",
226-
help="set a release progression to a certain percentage before continuing.",
227-
)
228-
@click.option(
229-
"--progressive-key",
230-
metavar="<key>",
231-
help="the progression key to use to keep track of the --progressive-percentage to be set.",
232-
)
233-
def release(
234-
snap_name,
235-
revision,
236-
channels,
237-
progressive_percentage: Optional[int],
238-
progressive_key: Optional[str],
239-
) -> None:
222+
def release(snap_name, revision, channels) -> None:
240223
"""Release <snap-name> on <revision> to the selected store <channels>.
241224
<channels> is a comma separated list of valid channels on the
242225
store.
@@ -267,19 +250,7 @@ def release(
267250
snapcraft release my-snap 9 lts-channel/stable
268251
snapcraft release my-snap 9 lts-channel/stable/my-branch
269252
"""
270-
progressive_options = [progressive_percentage, progressive_key]
271-
if any(progressive_options) and not all(progressive_options):
272-
raise click.UsageError(
273-
"--progressive-percentage and --progressive-key must be used together."
274-
)
275-
276-
snapcraft.release(
277-
snap_name,
278-
revision,
279-
channels.split(","),
280-
progressive_percentage=progressive_percentage,
281-
progressive_key=progressive_key,
282-
)
253+
snapcraft.release(snap_name, revision, channels.split(","))
283254

284255

285256
@storecli.command()

tests/unit/commands/test_release.py

Lines changed: 0 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -122,64 +122,6 @@ def test_release_snap_with_lts_channel(self):
122122
progressive_percentage=None,
123123
)
124124

125-
def test_progressive_release(self):
126-
self.fake_store_release.mock.return_value = {
127-
"opened_channels": ["2.1/beta"],
128-
"channel_map_tree": {
129-
"2.1": {
130-
"16": {
131-
"amd64": [
132-
{"channel": "stable", "info": "none"},
133-
{"channel": "candidate", "info": "none"},
134-
{
135-
"revision": 19,
136-
"channel": "beta",
137-
"version": "0",
138-
"info": "specific",
139-
},
140-
{"channel": "edge", "info": "tracking"},
141-
]
142-
}
143-
}
144-
},
145-
}
146-
147-
result = self.run_command(
148-
[
149-
"release",
150-
"nil-snap",
151-
"19",
152-
"2.1/beta",
153-
"--progressive-key",
154-
"progressive-key",
155-
"--progressive-percentage",
156-
"10",
157-
]
158-
)
159-
160-
self.assertThat(result.exit_code, Equals(0))
161-
self.assertThat(
162-
result.output,
163-
Contains(
164-
dedent(
165-
"""\
166-
Track Arch Channel Version Revision Notes
167-
2.1 amd64 stable - - -
168-
candidate - - -
169-
beta 0 19 progressive (10%)
170-
edge ^ ^ -
171-
\x1b[0;32mThe '2.1/beta' channel is now open.\x1b[0m"""
172-
)
173-
),
174-
)
175-
self.fake_store_release.mock.assert_called_once_with(
176-
snap_name="nil-snap",
177-
revision="19",
178-
channels=["2.1/beta"],
179-
progressive_key="progressive-key",
180-
progressive_percentage=10,
181-
)
182-
183125
def test_release_snap_with_branch(self):
184126
self.fake_store_release.mock.return_value = {
185127
"opened_channels": ["stable/hotfix1"],
@@ -235,72 +177,6 @@ def test_release_snap_with_branch(self):
235177
progressive_percentage=None,
236178
)
237179

238-
def test_progressive_release_snap_with_branch(self):
239-
self.fake_store_release.mock.return_value = {
240-
"opened_channels": ["stable/hotfix1"],
241-
"channel_map_tree": {
242-
"latest": {
243-
"16": {
244-
"amd64": [
245-
{"channel": "stable", "info": "none"},
246-
{"channel": "candidate", "info": "none"},
247-
{
248-
"revision": 19,
249-
"channel": "beta",
250-
"version": "0",
251-
"info": "specific",
252-
},
253-
{"channel": "edge", "info": "tracking"},
254-
{
255-
"channel": "stable/hotfix1",
256-
"info": "branch",
257-
"revision": 20,
258-
"version": "1",
259-
"expires_at": "2017-05-21T18:52:14.578435",
260-
},
261-
]
262-
}
263-
}
264-
},
265-
}
266-
267-
result = self.run_command(
268-
[
269-
"release",
270-
"nil-snap",
271-
"20",
272-
"stable/hotfix1",
273-
"--progressive-key",
274-
"progressive-key",
275-
"--progressive-percentage",
276-
"10",
277-
]
278-
)
279-
280-
self.assertThat(result.exit_code, Equals(0))
281-
self.assertThat(
282-
result.output,
283-
Contains(
284-
dedent(
285-
"""\
286-
Track Arch Channel Version Revision Notes Expires at
287-
latest amd64 stable - - -
288-
candidate - - -
289-
beta 0 19 -
290-
edge ^ ^ -
291-
stable/hotfix1 1 20 progressive (10%) 2017-05-21T18:52:14.578435
292-
\x1b[0;32mThe 'stable/hotfix1' channel is now open.\x1b[0m"""
293-
)
294-
),
295-
)
296-
self.fake_store_release.mock.assert_called_once_with(
297-
snap_name="nil-snap",
298-
revision="20",
299-
channels=["stable/hotfix1"],
300-
progressive_key="progressive-key",
301-
progressive_percentage=10,
302-
)
303-
304180
def test_release_snap_opens_more_than_one_channel(self):
305181
self.fake_store_release.mock.return_value = {
306182
"opened_channels": ["stable", "beta", "edge"],
@@ -434,21 +310,3 @@ def test_release_without_login_must_ask(self):
434310
self.assertThat(
435311
result.output, Contains("You are required to login before continuing.")
436312
)
437-
438-
439-
class ReleaseCommandProgressiveUsageTest(FakeStoreCommandsBaseTestCase):
440-
scenarios = (
441-
("key and no percentage", dict(args=["--progressive-key", "pk"])),
442-
("percentage and no key", dict(args=["--progressive-percentage", "10"])),
443-
)
444-
445-
def test_progressive_release_usage(self):
446-
result = self.run_command(["release", "nil-snap", "19", "beta"] + self.args)
447-
448-
self.assertThat(result.exit_code, Equals(2))
449-
self.assertThat(
450-
result.output,
451-
Contains(
452-
"Error: --progressive-percentage and --progressive-key must be used together."
453-
),
454-
)

0 commit comments

Comments
 (0)