create_readme_table.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # Usage: python moveit/moveit/scripts/create_readme_table.py > /tmp/table.md
4 # First update supported_distro_ubuntu_dict below!
5 
6 from __future__ import print_function
7 import os
8 import sys
9 import requests
10 import catkin_pkg
11 from catkin_pkg.packages import find_packages
12 
13 
14 def create_header(ros_ubuntu_dict):
15  ros_distros = sorted(ros_ubuntu_dict.keys())
16  section_header = "### ROS Buildfarm\n"
17  header = "MoveIt Package"
18  header_lines = "-" * len(header)
19  for ros in ros_distros:
20  source = " ".join([ros.capitalize(), "Source"])
21  debian = " ".join([ros.capitalize(), "Debian"])
22  header = " | ".join([header, source, debian])
23  header_lines = " | ".join([header_lines, "-" * len(source), "-" * len(debian)])
24  return "\n".join([section_header, header, header_lines])
25 
26 
27 def define_urls(target, params):
28  if target == "src":
29  params["job"] = "{R}src_u{U}__{package}__ubuntu_{ubuntu}__source".format(
30  **params
31  )
32  params["url"] = "{base_url}/view/{R}src_u{U}/job/{job}".format(**params)
33  elif target == "bin":
34  params[
35  "job"
36  ] = "{R}bin_u{U}64__{package}__ubuntu_{ubuntu}_amd64__binary".format(**params)
37  params["url"] = "{base_url}/view/{R}bin_u{U}64/job/{job}".format(**params)
38 
39 
40 def create_line(package, ros_ubuntu_dict):
41  ros_distros = sorted(ros_ubuntu_dict.keys())
42  line = "\n" + package
43  print(package, file=sys.stderr)
44  for ros in ros_distros:
45  ubuntu = ros_ubuntu_dict[ros]
46  params = dict(
47  R=ros[0].upper(),
48  U=ubuntu[0].upper(),
49  ubuntu=ubuntu.lower(),
50  package=package,
51  base_url="https://build.ros.org",
52  )
53  for target in ["src", "bin"]:
54  define_urls(target, params)
55  response = requests.get(params["url"]).status_code
56  # we want to show a particular OS's badges to indicate they are not released / working yet
57  if response < 400 or ubuntu == "focal": # success
58  line += " | [![Build Status]({base_url}/buildStatus/icon?job={job})]({url})".format(
59  **params
60  )
61  else: # error
62  line += " | "
63  print(
64  " {}: {} {}".format(ros, response, params["url"]), file=sys.stderr
65  )
66 
67  return line
68 
69 
71  """
72  Creates MoveIt buildfarm badge table
73  """
74  # Update the following dictionary with the appropriate ROS-Ubuntu
75  # combinations for supported distribitions. For instance, in Noetic,
76  # remove {"indigo":"trusty"} and add {"noetic":"fbuntu"} with "fbuntu"
77  # being whatever the 20.04 distro is named
78  supported_distro_ubuntu_dict = {
79  "melodic": "bionic",
80  "noetic": "focal",
81  }
82 
83  all_packages = sorted(
84  [package.name for _, package in find_packages(os.getcwd()).items()]
85  )
86  moveit_packages = list()
87  other_packages = list()
88  for package in all_packages:
89  if package.startswith("moveit"):
90  moveit_packages.append(package)
91  else:
92  other_packages.append(package)
93  moveit_packages.extend(other_packages)
94 
95  buildfarm_table = create_header(supported_distro_ubuntu_dict)
96  for package in moveit_packages:
97  buildfarm_table += create_line(package, supported_distro_ubuntu_dict)
98  print(buildfarm_table)
99 
100 
101 if __name__ == "__main__":
create_readme_table.create_moveit_buildfarm_table
def create_moveit_buildfarm_table()
Definition: create_readme_table.py:70
create_readme_table.create_line
def create_line(package, ros_ubuntu_dict)
Definition: create_readme_table.py:40
create_readme_table.create_header
def create_header(ros_ubuntu_dict)
Definition: create_readme_table.py:14
create_readme_table.define_urls
def define_urls(target, params)
Definition: create_readme_table.py:27


moveit
Author(s): Ioan Sucan , Sachin Chitta
autogenerated on Sat May 3 2025 02:28:52