Skip to content

Commit

Permalink
Display in-development stage plugins
Browse files Browse the repository at this point in the history
It is would be nice to display "in active development" packages under
plugins reference page. It can help to involve more contributors and
inform the xRally consumers about news.

This patch extends `tox -e update_plugins` script to generate pages for
such packages.
Also, xrally-docker and xrally-kubernetes packages are added.
  • Loading branch information
andreykurilin authored and boris-42 committed May 28, 2018
1 parent 5850dd0 commit 34b65d6
Show file tree
Hide file tree
Showing 6 changed files with 86 additions and 15 deletions.
13 changes: 13 additions & 0 deletions docs/plugins/docker/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Docker

__Repository__: <https://github.com/xrally/xrally-docker>

!!! note

This package is under active development and has not been released yet.

Follow the repository on GitHub to do not miss any updates.

## Description

A set of xRally plugins to run workloads against Docker platform.
13 changes: 13 additions & 0 deletions docs/plugins/kubernetes/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Kubernetes

__Repository__: <https://github.com/xrally/xrally-kubernetes>

!!! note

This package is under active development and has not been released yet.

Follow the repository on GitHub to do not miss any updates.

## Description

A set of xRally plugins to run workloads against Kubernetes platform.
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ pages:
- In-tree:
- {Plugins: plugins/in_tree/plugins.md}
- {Config Options: plugins/in_tree/options.md}
- {Docker: plugins/docker/overview.md}
- {Kubernetes: plugins/kubernetes/overview.md}
- OpenStack:
- {Overview: plugins/openstack/overview.md}
- {Plugins: plugins/openstack/plugins.md}
Expand Down
12 changes: 12 additions & 0 deletions plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,17 @@
"repository": "https://github.com/openstack/rally-openstack",
"versions": ["1.0.0", "1.1.0"],
"changelog_file": "CHANGELOG.rst"
},
{
"name": "xrally-docker",
"title": "Docker",
"repository": "https://github.com/xrally/xrally-docker",
"description": "A set of xRally plugins to run workloads against Docker platform."
},
{
"name": "xrally-kuberneted",
"title": "Kubernetes",
"repository": "https://github.com/xrally/xrally-kubernetes",
"description": "A set of xRally plugins to run workloads against Kubernetes platform."
}
]
20 changes: 20 additions & 0 deletions xrally_docs_tools/plugins_ref/pages.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,26 @@ def _make(self):
return "\n\n".join(page)


class DevOverviewPage(PackagePage):
"""Shows the overview page for a package which had not been released yet"""
NAME = "overview.md"

def _make(self):
page = [
"# %s" % self.package["title"],
"__Repository__: <%s>" % self.package["repository"],
"!!! note",
" This package is under active development and has not "
"been released yet.",
" Follow the repository on GitHub to do not miss any updates."
]
if "description" in self.package:
page.append("## Description")
page.append(self.package["description"])

return "\n\n".join(page)


class ChangeLogPage(PackagePage):
"""Shows changelog for the package."""

Expand Down
41 changes: 26 additions & 15 deletions xrally_docs_tools/update_plugins_reference.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,22 +34,30 @@

def process_package(package, results):
print("Start processing %s." % package["name"])

processed_versions = None
if package["name"] not in results:
# this package is new for us.
results[package["name"]] = copy.deepcopy(package)
results[package["name"]]["plugins"] = {}
results[package["name"]]["plugins_bases"] = {}
processed_versions = None
else:
processed_versions = results[package["name"]]["versions"]
if "versions" in results[package["name"]]:
processed_versions = results[package["name"]]["versions"]

p_data = results[package["name"]]

if processed_versions and processed_versions == package["versions"]:
if processed_versions and processed_versions == package.get("versions"):
# nothing had changed. skipping
print("Nothing had changed. Skipping...\n\n")
return

if "versions" not in p_data:
# it is in-active-development-plugin
print("Package is under active development, but had not been released "
"yet...\n\n")
return

print("Cloning the source code.")
repo_dir = utils.generate_random_path(_ROOT_TMP_DIR)
utils.sp_call(["git", "clone", p_data["repository"], repo_dir])
Expand Down Expand Up @@ -151,16 +159,19 @@ def generate_pages(data):
{"Config Options": pages.ConfigOptionsReference(root_package).save()}
]})
for package in sorted(data.values(), key=lambda p: p["title"]):
res = [
{"Overview": pages.OverviewPage(package).save()},
{"Plugins": pages.PluginsReferencesPage(package).save()}
]
if package["changelog"]:
res.append({"ChangeLog": pages.ChangeLogPage(package).save()})
if package["options"]:
res.append({
"Config Options":
pages.ConfigOptionsReference(package).save()})
if "versions" not in package:
res = pages.DevOverviewPage(package).save()
else:
res = [
{"Overview": pages.OverviewPage(package).save()},
{"Plugins": pages.PluginsReferencesPage(package).save()}
]
if package["changelog"]:
res.append({"ChangeLog": pages.ChangeLogPage(package).save()})
if package["options"]:
res.append({
"Config Options":
pages.ConfigOptionsReference(package).save()})

plugins_section.append({package["title"]: res})

Expand Down Expand Up @@ -195,10 +206,10 @@ def main():
if os.path.exists(_ROOT_TMP_DIR):
shutil.rmtree(_ROOT_TMP_DIR)

results = json.dumps(results, indent=4)
data = json.dumps(results, indent=4)
if changed:
with open(RESULTS_FILE, "w") as f:
f.write(results)
f.write(data)

generate_pages(results)

Expand Down

0 comments on commit 34b65d6

Please sign in to comment.