Skip to content

Commit 8dd6efd

Browse files
committed
Deploy preview for PR 83 🛫
1 parent f56a550 commit 8dd6efd

File tree

135 files changed

+17127
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+17127
-0
lines changed

‎pr-preview/pr-83/.eslintrc.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module.exports = {
2+
"env": {
3+
"browser": true,
4+
"es2021": true
5+
},
6+
"extends": "eslint:recommended",
7+
"parserOptions": {
8+
"ecmaVersion": "latest",
9+
"sourceType": "module"
10+
},
11+
}

‎pr-preview/pr-83/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules/

‎pr-preview/pr-83/.nojekyll

Whitespace-only changes.

‎pr-preview/pr-83/LICENSE

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
BSD 2-Clause License
2+
3+
Copyright (c) 2024, CERN
4+
5+
Redistribution and use in source and binary forms, with or without
6+
modification, are permitted provided that the following conditions are met:
7+
8+
1. Redistributions of source code must retain the above copyright notice, this
9+
list of conditions and the following disclaimer.
10+
11+
2. Redistributions in binary form must reproduce the above copyright notice,
12+
this list of conditions and the following disclaimer in the documentation
13+
and/or other materials provided with the distribution.
14+
15+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
19+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

‎pr-preview/pr-83/README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# eede
2+
*EDM4hep Event Data Explorer*
3+
4+
Warning: **Experimental**
5+
6+
Explore your events at [eede](https://key4hep.github.io/eede/).
7+
8+
To generate your `.json` file use `edm4hep2json` available in the Key4hep stack.
9+
Example usage for the events from FCC `winter2023` campaign:
10+
```
11+
source /cvmfs/sw.hsf.org/key4hep/setup.sh
12+
edm4hep2json -l Particle \
13+
-n 10 \
14+
-o p8_ee_WW_ecm240.json \
15+
/eos/experiment/fcc/ee/generation/DelphesEvents/winter2023/IDEA/p8_ee_WW_ecm240/events_059793334.root
16+
```
17+
18+
19+
## Development
20+
21+
The tool is written in pure JS and draws on HTML Cavas.
22+
To run a local version, clone the repo and create simple web server:
23+
```bash
24+
python -m http.server
25+
```
26+
after that visit localhost (`http://0.0.0.0:8000/`) in your browser.
27+
28+
## ToDo
29+
30+
* Filters:
31+
* generator status
32+
* generation
33+
* ancestor
34+
* Event switcher
35+
* Status box
36+
* Details box
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ref: refs/heads/main
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[core]
2+
repositoryformatversion = 0
3+
filemode = true
4+
bare = true
5+
[remote "origin"]
6+
url = https://github.com/rossjrw/pr-preview-action
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Unnamed repository; edit this file 'description' to name the repository.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/sh
2+
#
3+
# An example hook script to check the commit log message taken by
4+
# applypatch from an e-mail message.
5+
#
6+
# The hook should exit with non-zero status after issuing an
7+
# appropriate message if it wants to stop the commit. The hook is
8+
# allowed to edit the commit message file.
9+
#
10+
# To enable this hook, rename this file to "applypatch-msg".
11+
12+
. git-sh-setup
13+
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
14+
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
15+
:
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/sh
2+
#
3+
# An example hook script to check the commit log message.
4+
# Called by "git commit" with one argument, the name of the file
5+
# that has the commit message. The hook should exit with non-zero
6+
# status after issuing an appropriate message if it wants to stop the
7+
# commit. The hook is allowed to edit the commit message file.
8+
#
9+
# To enable this hook, rename this file to "commit-msg".
10+
11+
# Uncomment the below to add a Signed-off-by line to the message.
12+
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
13+
# hook is more suited to it.
14+
#
15+
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
16+
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
17+
18+
# This example catches duplicate Signed-off-by lines.
19+
20+
test "" = "$(grep '^Signed-off-by: ' "$1" |
21+
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
22+
echo >&2 Duplicate Signed-off-by lines.
23+
exit 1
24+
}
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
#!/usr/bin/perl
2+
3+
use strict;
4+
use warnings;
5+
use IPC::Open2;
6+
7+
# An example hook script to integrate Watchman
8+
# (https://facebook.github.io/watchman/) with git to speed up detecting
9+
# new and modified files.
10+
#
11+
# The hook is passed a version (currently 2) and last update token
12+
# formatted as a string and outputs to stdout a new update token and
13+
# all files that have been modified since the update token. Paths must
14+
# be relative to the root of the working tree and separated by a single NUL.
15+
#
16+
# To enable this hook, rename this file to "query-watchman" and set
17+
# 'git config core.fsmonitor .git/hooks/query-watchman'
18+
#
19+
my ($version, $last_update_token) = @ARGV;
20+
21+
# Uncomment for debugging
22+
# print STDERR "$0 $version $last_update_token\n";
23+
24+
# Check the hook interface version
25+
if ($version ne 2) {
26+
die "Unsupported query-fsmonitor hook version '$version'.\n" .
27+
"Falling back to scanning...\n";
28+
}
29+
30+
my $git_work_tree = get_working_dir();
31+
32+
my $retry = 1;
33+
34+
my $json_pkg;
35+
eval {
36+
require JSON::XS;
37+
$json_pkg = "JSON::XS";
38+
1;
39+
} or do {
40+
require JSON::PP;
41+
$json_pkg = "JSON::PP";
42+
};
43+
44+
launch_watchman();
45+
46+
sub launch_watchman {
47+
my $o = watchman_query();
48+
if (is_work_tree_watched($o)) {
49+
output_result($o->{clock}, @{$o->{files}});
50+
}
51+
}
52+
53+
sub output_result {
54+
my ($clockid, @files) = @_;
55+
56+
# Uncomment for debugging watchman output
57+
# open (my $fh, ">", ".git/watchman-output.out");
58+
# binmode $fh, ":utf8";
59+
# print $fh "$clockid\n@files\n";
60+
# close $fh;
61+
62+
binmode STDOUT, ":utf8";
63+
print $clockid;
64+
print "\0";
65+
local $, = "\0";
66+
print @files;
67+
}
68+
69+
sub watchman_clock {
70+
my $response = qx/watchman clock "$git_work_tree"/;
71+
die "Failed to get clock id on '$git_work_tree'.\n" .
72+
"Falling back to scanning...\n" if $? != 0;
73+
74+
return $json_pkg->new->utf8->decode($response);
75+
}
76+
77+
sub watchman_query {
78+
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
79+
or die "open2() failed: $!\n" .
80+
"Falling back to scanning...\n";
81+
82+
# In the query expression below we're asking for names of files that
83+
# changed since $last_update_token but not from the .git folder.
84+
#
85+
# To accomplish this, we're using the "since" generator to use the
86+
# recency index to select candidate nodes and "fields" to limit the
87+
# output to file names only. Then we're using the "expression" term to
88+
# further constrain the results.
89+
my $last_update_line = "";
90+
if (substr($last_update_token, 0, 1) eq "c") {
91+
$last_update_token = "\"$last_update_token\"";
92+
$last_update_line = qq[\n"since": $last_update_token,];
93+
}
94+
my $query = <<" END";
95+
["query", "$git_work_tree", {$last_update_line
96+
"fields": ["name"],
97+
"expression": ["not", ["dirname", ".git"]]
98+
}]
99+
END
100+
101+
# Uncomment for debugging the watchman query
102+
# open (my $fh, ">", ".git/watchman-query.json");
103+
# print $fh $query;
104+
# close $fh;
105+
106+
print CHLD_IN $query;
107+
close CHLD_IN;
108+
my $response = do {local $/; <CHLD_OUT>};
109+
110+
# Uncomment for debugging the watch response
111+
# open ($fh, ">", ".git/watchman-response.json");
112+
# print $fh $response;
113+
# close $fh;
114+
115+
die "Watchman: command returned no output.\n" .
116+
"Falling back to scanning...\n" if $response eq "";
117+
die "Watchman: command returned invalid output: $response\n" .
118+
"Falling back to scanning...\n" unless $response =~ /^\{/;
119+
120+
return $json_pkg->new->utf8->decode($response);
121+
}
122+
123+
sub is_work_tree_watched {
124+
my ($output) = @_;
125+
my $error = $output->{error};
126+
if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
127+
$retry--;
128+
my $response = qx/watchman watch "$git_work_tree"/;
129+
die "Failed to make watchman watch '$git_work_tree'.\n" .
130+
"Falling back to scanning...\n" if $? != 0;
131+
$output = $json_pkg->new->utf8->decode($response);
132+
$error = $output->{error};
133+
die "Watchman: $error.\n" .
134+
"Falling back to scanning...\n" if $error;
135+
136+
# Uncomment for debugging watchman output
137+
# open (my $fh, ">", ".git/watchman-output.out");
138+
# close $fh;
139+
140+
# Watchman will always return all files on the first query so
141+
# return the fast "everything is dirty" flag to git and do the
142+
# Watchman query just to get it over with now so we won't pay
143+
# the cost in git to look up each individual file.
144+
my $o = watchman_clock();
145+
$error = $output->{error};
146+
147+
die "Watchman: $error.\n" .
148+
"Falling back to scanning...\n" if $error;
149+
150+
output_result($o->{clock}, ("/"));
151+
$last_update_token = $o->{clock};
152+
153+
eval { launch_watchman() };
154+
return 0;
155+
}
156+
157+
die "Watchman: $error.\n" .
158+
"Falling back to scanning...\n" if $error;
159+
160+
return 1;
161+
}
162+
163+
sub get_working_dir {
164+
my $working_dir;
165+
if ($^O =~ 'msys' || $^O =~ 'cygwin') {
166+
$working_dir = Win32::GetCwd();
167+
$working_dir =~ tr/\\/\//;
168+
} else {
169+
require Cwd;
170+
$working_dir = Cwd::cwd();
171+
}
172+
173+
return $working_dir;
174+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/sh
2+
#
3+
# An example hook script to prepare a packed repository for use over
4+
# dumb transports.
5+
#
6+
# To enable this hook, rename this file to "post-update".
7+
8+
exec git update-server-info
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/sh
2+
#
3+
# An example hook script to verify what is about to be committed
4+
# by applypatch from an e-mail message.
5+
#
6+
# The hook should exit with non-zero status after issuing an
7+
# appropriate message if it wants to stop the commit.
8+
#
9+
# To enable this hook, rename this file to "pre-applypatch".
10+
11+
. git-sh-setup
12+
precommit="$(git rev-parse --git-path hooks/pre-commit)"
13+
test -x "$precommit" && exec "$precommit" ${1+"$@"}
14+
:
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/sh
2+
#
3+
# An example hook script to verify what is about to be committed.
4+
# Called by "git commit" with no arguments. The hook should
5+
# exit with non-zero status after issuing an appropriate message if
6+
# it wants to stop the commit.
7+
#
8+
# To enable this hook, rename this file to "pre-commit".
9+
10+
if git rev-parse --verify HEAD >/dev/null 2>&1
11+
then
12+
against=HEAD
13+
else
14+
# Initial commit: diff against an empty tree object
15+
against=$(git hash-object -t tree /dev/null)
16+
fi
17+
18+
# If you want to allow non-ASCII filenames set this variable to true.
19+
allownonascii=$(git config --type=bool hooks.allownonascii)
20+
21+
# Redirect output to stderr.
22+
exec 1>&2
23+
24+
# Cross platform projects tend to avoid non-ASCII filenames; prevent
25+
# them from being added to the repository. We exploit the fact that the
26+
# printable range starts at the space character and ends with tilde.
27+
if [ "$allownonascii" != "true" ] &&
28+
# Note that the use of brackets around a tr range is ok here, (it's
29+
# even required, for portability to Solaris 10's /usr/bin/tr), since
30+
# the square bracket bytes happen to fall in the designated range.
31+
test $(git diff-index --cached --name-only --diff-filter=A -z $against |
32+
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
33+
then
34+
cat <<\EOF
35+
Error: Attempt to add a non-ASCII file name.
36+
37+
This can cause problems if you want to work with people on other platforms.
38+
39+
To be portable it is advisable to rename the file.
40+
41+
If you know what you are doing you can disable this check using:
42+
43+
git config hooks.allownonascii true
44+
EOF
45+
exit 1
46+
fi
47+
48+
# If there are whitespace errors, print the offending file names and fail.
49+
exec git diff-index --check --cached $against --
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/sh
2+
#
3+
# An example hook script to verify what is about to be committed.
4+
# Called by "git merge" with no arguments. The hook should
5+
# exit with non-zero status after issuing an appropriate message to
6+
# stderr if it wants to stop the merge commit.
7+
#
8+
# To enable this hook, rename this file to "pre-merge-commit".
9+
10+
. git-sh-setup
11+
test -x "$GIT_DIR/hooks/pre-commit" &&
12+
exec "$GIT_DIR/hooks/pre-commit"
13+
:

0 commit comments

Comments
 (0)