Skip to content

Commit eae44ae

Browse files
membraneframeworkadminmat-hekMembrane Bot
authored
[Passed] Auto update packages list (#795)
* fix update packages list action * update packages list * auto update packages list in readme --------- Co-authored-by: Mateusz Front <mateusz.front@swmansion.com> Co-authored-by: Membrane Bot <bot@membrane.stream>
1 parent fb10564 commit eae44ae

File tree

3 files changed

+33
-10
lines changed

3 files changed

+33
-10
lines changed

.github/workflows/update-packages-list.yml

+13-2
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,22 @@ jobs:
1818
env:
1919
GH_TOKEN: ${{ secrets.BOT_TOKEN }}
2020
run: |
21-
elixir scripts/elixir/update_packages_list.exs
21+
echo "Run script"
22+
elixir scripts/elixir/update_packages_list.exs > output.txt 2> output.txt || ERROR=$? || true
23+
cat output.txt
24+
echo "Set status"
25+
STATUS=$(if [ -n "$ERROR" ]; then echo "[Failed]"; else echo "[Passed]"; fi)
26+
echo "Status: ${STATUS}"
27+
echo "Configure git"
2228
git config user.name 'Membrane Bot'
2329
git config user.email 'bot@membrane.stream'
30+
echo "Checkout"
2431
git checkout -B auto-update-packages-list
32+
echo "Commit"
2533
git add README.md
2634
git commit -m "auto update packages list in readme" --allow-empty
35+
echo "Push"
2736
git push -f -u origin auto-update-packages-list
28-
gh pr create -B master -H auto-update-packages-list --title 'Auto update packages list' --body ''
37+
echo "Create PR"
38+
gh pr create -B master -H auto-update-packages-list --label no-changelog --title "${STATUS} Auto update packages list" --body-file output.txt \
39+
|| gh pr edit auto-update-packages-list --title "${STATUS} Auto update packages list" --body-file output.txt

README.md

+8-3
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,10 @@ If you have any questions regarding Membrane Framework or need consulting, feel
201201
#### Video codecs
202202
| Package | Description | Links |
203203
| --- | --- | --- |
204-
| [membrane_h264_plugin](https://github.com/membraneframework/membrane_h264_plugin) | Membrane h264 parser | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_h264_plugin.svg)](https://hex.pm/api/packages/membrane_h264_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_h264_plugin/) |
204+
| [membrane_h26x_plugin](https://github.com/membraneframework/membrane_h26x_plugin) | Membrane h264 and h265 parsers | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_h26x_plugin.svg)](https://hex.pm/api/packages/membrane_h26x_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_h26x_plugin/) |
205205
| [membrane_h264_ffmpeg_plugin](https://github.com/membraneframework/membrane_h264_ffmpeg_plugin) | Membrane H264 decoder and encoder based on FFmpeg and x264 | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_h264_ffmpeg_plugin.svg)](https://hex.pm/api/packages/membrane_h264_ffmpeg_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_h264_ffmpeg_plugin/) |
206+
| [membrane_abr_transcoder_plugin](https://github.com/membraneframework/membrane_abr_transcoder_plugin) | | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_abr_transcoder_plugin.svg)](https://hex.pm/api/packages/membrane_abr_transcoder_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_abr_transcoder_plugin/) |
207+
| [membrane_h265_ffmpeg_plugin](https://github.com/gBillal/membrane_h265_ffmpeg_plugin) | [Maintainer: [gBillal](https://github.com/gBillal)] Membrane H265 decoder and encoder based on FFmpeg and x265 | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_h265_ffmpeg_plugin.svg)](https://hex.pm/api/packages/membrane_h265_ffmpeg_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_h265_ffmpeg_plugin/) |
206208
| [elixir-turbojpeg](https://github.com/BinaryNoggin/elixir-turbojpeg) | [Maintainer: [BinaryNoggin](https://github.com/BinaryNoggin)] libjpeg-turbo bindings for Elixir | |
207209
| [membrane_subtitle_mixer_plugin](https://github.com/kim-company/membrane_subtitle_mixer_plugin) | [Maintainer: [kim-company](https://github.com/kim-company)] Membrane.Filter that uses CEA708 to merge subtitles directly in H264 packets. | |
208210

@@ -226,18 +228,20 @@ If you have any questions regarding Membrane Framework or need consulting, feel
226228
| --- | --- | --- |
227229
| [membrane_raw_video_parser_plugin](https://github.com/membraneframework/membrane_raw_video_parser_plugin) | Membrane plugin for parsing raw video streams | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_raw_video_parser_plugin.svg)](https://hex.pm/api/packages/membrane_raw_video_parser_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_raw_video_parser_plugin/) |
228230
| [membrane_video_merger_plugin](https://github.com/membraneframework/membrane_video_merger_plugin) | Membrane raw video cutter, merger and cut & merge bin | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_video_merger_plugin.svg)](https://hex.pm/api/packages/membrane_video_merger_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_video_merger_plugin/) |
229-
| [membrane_video_compositor_plugin](https://github.com/membraneframework/membrane_video_compositor_plugin) | Membrane plugin that accepts multiple video inputs, transforms them according to provided transformations and composes them into a single output video. | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_video_compositor_plugin.svg)](https://hex.pm/api/packages/membrane_video_compositor_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_video_compositor_plugin/) |
231+
| [membrane_video_compositor_plugin](https://github.com/membraneframework/membrane_video_compositor_plugin) | Membrane plugin for video and audio mixing/composing | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_video_compositor_plugin.svg)](https://hex.pm/api/packages/membrane_video_compositor_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_video_compositor_plugin/) |
230232
| [membrane_camera_capture_plugin](https://github.com/membraneframework/membrane_camera_capture_plugin) | A set of elements allowing for capturing local media such as camera or microphone | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_camera_capture_plugin.svg)](https://hex.pm/api/packages/membrane_camera_capture_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_camera_capture_plugin/) |
231233
| [membrane_rpicam_plugin](https://github.com/membraneframework/membrane_rpicam_plugin) | Membrane rpicam plugin | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_rpicam_plugin.svg)](https://hex.pm/api/packages/membrane_rpicam_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_rpicam_plugin/) |
232234
| [membrane_framerate_converter_plugin](https://github.com/membraneframework/membrane_framerate_converter_plugin) | Element for converting frame rate of raw video stream | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_framerate_converter_plugin.svg)](https://hex.pm/api/packages/membrane_framerate_converter_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_framerate_converter_plugin/) |
233235
| [membrane_sdl_plugin](https://github.com/membraneframework/membrane_sdl_plugin) | Membrane video player based on SDL | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_sdl_plugin.svg)](https://hex.pm/api/packages/membrane_sdl_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_sdl_plugin/) |
236+
| [membrane_overlay_plugin](https://github.com/membraneframework/membrane_overlay_plugin) | Filter for applying overlay image or text on top of video | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_overlay_plugin.svg)](https://hex.pm/api/packages/membrane_overlay_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_overlay_plugin/) |
234237
| [membrane_ffmpeg_swscale_plugin](https://github.com/membraneframework/membrane_ffmpeg_swscale_plugin) | Plugin providing an element scaling raw video frames, using SWScale module of FFmpeg library. | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_ffmpeg_swscale_plugin.svg)](https://hex.pm/api/packages/membrane_ffmpeg_swscale_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_ffmpeg_swscale_plugin/) |
235238
| [membrane_ffmpeg_video_filter_plugin](https://github.com/membraneframework/membrane_ffmpeg_video_filter_plugin) | FFmpeg-based video filters | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_ffmpeg_video_filter_plugin.svg)](https://hex.pm/api/packages/membrane_ffmpeg_video_filter_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_ffmpeg_video_filter_plugin/) |
236239
| [membrane_video_mixer_plugin](https://github.com/kim-company/membrane_video_mixer_plugin) | [Maintainer: [kim-company](https://github.com/kim-company)] Membrane.Filter that mixes a variable number of input videos into one output using ffmpeg filters | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_video_mixer_plugin.svg)](https://hex.pm/api/packages/membrane_video_mixer_plugin) |
237240

238241
#### External APIs
239242
| Package | Description | Links |
240243
| --- | --- | --- |
244+
| [membrane_aws_plugin](https://github.com/jellyfish-dev/membrane_aws_plugin) | [Maintainer: [jellyfish-dev](https://github.com/jellyfish-dev)] | |
241245
| [membrane_agora_plugin](https://github.com/membraneframework/membrane_agora_plugin) | Membrane Sink for Agora Server Gateway | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_agora_plugin.svg)](https://hex.pm/api/packages/membrane_agora_plugin) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_agora_plugin/) |
242246
| [membrane_element_gcloud_speech_to_text](https://github.com/membraneframework/membrane_element_gcloud_speech_to_text) | Membrane plugin providing speech recognition via Google Cloud Speech-to-Text API | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_element_gcloud_speech_to_text.svg)](https://hex.pm/api/packages/membrane_element_gcloud_speech_to_text) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_element_gcloud_speech_to_text/) |
243247
| [membrane_element_ibm_speech_to_text](https://github.com/membraneframework/membrane_element_ibm_speech_to_text) | Membrane plugin providing speech recognition via IBM Cloud Speech-to-Text service | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_element_ibm_speech_to_text.svg)](https://hex.pm/api/packages/membrane_element_ibm_speech_to_text) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_element_ibm_speech_to_text/) |
@@ -265,7 +269,7 @@ If you have any questions regarding Membrane Framework or need consulting, feel
265269
### Standalone media libs
266270
| Package | Description | Links |
267271
| --- | --- | --- |
268-
| [video_compositor](https://github.com/membraneframework/video_compositor) | Tool for real-time video processing / transforming / composing | |
272+
| [video_compositor](https://github.com/membraneframework/video_compositor) | Media server for low-latency live video and audio mixing/composing | |
269273
| [ex_sdp](https://github.com/membraneframework/ex_sdp) | Parser and serializer for Session Description Protocol | [![Hex.pm](https://img.shields.io/hexpm/v/ex_sdp.svg)](https://hex.pm/api/packages/ex_sdp) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/ex_sdp/) |
270274
| [ex_libnice](https://github.com/membraneframework/ex_libnice) | Libnice-based Interactive Connectivity Establishment (ICE) protocol support for Elixir | [![Hex.pm](https://img.shields.io/hexpm/v/ex_libnice.svg)](https://hex.pm/api/packages/ex_libnice) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/ex_libnice/) |
271275
| [ex_libsrtp](https://github.com/membraneframework/ex_libsrtp) | Elixir bindings for libsrtp | [![Hex.pm](https://img.shields.io/hexpm/v/ex_libsrtp.svg)](https://hex.pm/api/packages/ex_libsrtp) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/ex_libsrtp/) |
@@ -282,6 +286,7 @@ If you have any questions regarding Membrane Framework or need consulting, feel
282286
| [bunch](https://github.com/membraneframework/bunch) | A bunch of helper functions, intended to make life easier | [![Hex.pm](https://img.shields.io/hexpm/v/bunch.svg)](https://hex.pm/api/packages/bunch) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/bunch/) |
283287
| [bunch_native](https://github.com/membraneframework/bunch_native) | Native part of the Bunch package | [![Hex.pm](https://img.shields.io/hexpm/v/bunch_native.svg)](https://hex.pm/api/packages/bunch_native) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/bunch_native/) |
284288
| [shmex](https://github.com/membraneframework/shmex) | Elixir bindings for shared memory | [![Hex.pm](https://img.shields.io/hexpm/v/shmex.svg)](https://hex.pm/api/packages/shmex) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/shmex/) |
289+
| [membrane_timestamp_queue](https://github.com/membraneframework/membrane_timestamp_queue) | | |
285290
| [membrane_common_c](https://github.com/membraneframework/membrane_common_c) | Membrane Multimedia Framework: Common C Routines | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_common_c.svg)](https://hex.pm/api/packages/membrane_common_c) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_common_c/) |
286291
| [membrane_telemetry_metrics](https://github.com/membraneframework/membrane_telemetry_metrics) | Membrane tool for generating metrics | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_telemetry_metrics.svg)](https://hex.pm/api/packages/membrane_telemetry_metrics) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_telemetry_metrics/) |
287292
| [membrane_opentelemetry](https://github.com/membraneframework-labs/membrane_opentelemetry) | [Labs] Utilities for using OpenTelemetry with Membrane | [![Hex.pm](https://img.shields.io/hexpm/v/membrane_opentelemetry.svg)](https://hex.pm/api/packages/membrane_opentelemetry) [![Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/membrane_opentelemetry/) |

scripts/elixir/update_packages_list.exs

+12-5
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,10 @@ packages =
5858
"membrane_wav_plugin",
5959
"membrane_g711_plugin",
6060
{:md, "#### Video codecs"},
61-
"membrane_h264_plugin",
61+
"membrane_h26x_plugin",
6262
"membrane_h264_ffmpeg_plugin",
63+
"membrane_abr_transcoder_plugin",
64+
"gBillal/membrane_h265_ffmpeg_plugin",
6365
"binarynoggin/elixir-turbojpeg",
6466
"kim-company/membrane_subtitle_mixer_plugin",
6567
{:md, "#### Raw audio & video"},
@@ -79,10 +81,12 @@ packages =
7981
"membrane_rpicam_plugin",
8082
"membrane_framerate_converter_plugin",
8183
"membrane_sdl_plugin",
84+
"membrane_overlay_plugin",
8285
"membrane_ffmpeg_swscale_plugin",
8386
"membrane_ffmpeg_video_filter_plugin",
8487
"kim-company/membrane_video_mixer_plugin",
8588
{:md, "#### External APIs"},
89+
"membrane_aws_plugin",
8690
"membrane_agora_plugin",
8791
"membrane_element_gcloud_speech_to_text",
8892
"membrane_element_ibm_speech_to_text",
@@ -118,6 +122,7 @@ packages =
118122
"bunch",
119123
"bunch_native",
120124
"shmex",
125+
"membrane_timestamp_queue",
121126
"membrane_common_c",
122127
"membrane_telemetry_metrics",
123128
"membrane_opentelemetry",
@@ -148,7 +153,7 @@ repos =
148153
|> Stream.map(fn page ->
149154
Process.sleep(gh_req_timeout)
150155
url = "https://api.github.com/orgs/#{org}/repos?per_page=100&page=#{page}"
151-
IO.puts("Fetching #{url}")
156+
Logger.debug("Fetching #{url}")
152157
Req.get!(url, decode_json: [keys: :atoms]).body
153158
end)
154159
|> Enum.take_while(&(&1 != []))
@@ -185,10 +190,10 @@ lacking_repos =
185190
end)
186191

187192
unless Enum.empty?(lacking_repos) do
188-
Logger.warning("""
193+
raise """
189194
The following repositories aren't mentioned in the package list:
190195
#{Enum.map_join(lacking_repos, ",\n", & &1.name)}
191-
""")
196+
"""
192197
end
193198

194199
# equip packages with the data from GH and Hex
@@ -203,7 +208,7 @@ packages =
203208
owner != nil ->
204209
Process.sleep(gh_req_timeout)
205210
url = "https://api.github.com/repos/#{owner}/#{name}"
206-
IO.puts("Fetching #{url}")
211+
Logger.debug("Fetching #{url}")
207212
Req.get!(url, decode_json: [keys: :atoms]).body
208213

209214
Map.has_key?(repos, name) ->
@@ -291,3 +296,5 @@ File.read!(readme_path)
291296
packages_md
292297
)
293298
|> then(&File.write!(readme_path, &1))
299+
300+
IO.puts("Packages updated successfully.")

0 commit comments

Comments
 (0)