Added Docs

Added documentation using sphinx

Codecov Report

Merging #1 (5129f02) into main (8abf4e7) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main        #1   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines           32        32
=========================================
  Hits            32        32

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8abf4e7...5129f02. Read the comment docs.


Added active24 DNS provider

Added active24 dns provider.
https://github.com/jahudka/certbot-dns-active24

Can confirm, it's working

Looks like pipeline failed for other reasons then the code.

@jc21
Hi, sorry for mentioning. Is it possible to merge?


Relationships defined in parent class + ignore abstract classes

Some of our models extend a common base class which defines a relationship for all of them.
These relationships are not taken into account in the graph.
For instance:
class Participant extends Model {
    public function details() : MorphOne
}

abstract class ParticipantDetails extends Model {
    public function participant() : MorphOne
}

class PlayerDetails extends ParticipantDetails {
    // inherits the participant relationship
}

class RefereeDetails extends ParticipantDetails {
    // inherits the participant relationship
}

I think that any abstract class could be safely ignored.
And the inherited relationship should be pulled in each concrete class.

I can check that later in the week. What I have tried before posting the issue: I copy/pasted the base method from the base class in the child classes. And that worked properly.

Did you find some time to test this?

Coming back from holiday. Will try to make a simple case to reproduce this before July end.

I could reproduce this. When putting dd inside the relationship method, it does not get hit when generating the diagram.

To reproduce that on a fresh install
A migration to create the required tables
    public function up()
    {
        Schema::create('meetings', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title')->nullable();
            $table->timestamps();
        });

        Schema::create('participants', function (Blueprint $table) {
            $table->increments('id');
            $table->string('full_name')->nullable();
            $table->unsignedInteger('meeting_id')->nullable();
            $table->string('details_type')->nullable();
            $table->unsignedInteger('details_id')->nullable();
            $table->timestamps();
        });

        Schema::create('player_details', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('skill_level')->nullable();
            $table->timestamps();
        });

        Schema::create('referee_details', function (Blueprint $table) {
            $table->increments('id');
            $table->date('nominated_at')->nullable();
            $table->timestamps();
        });
    }

Corresponding model classes
class Meeting extends Model
{
    public function participants(): HasMany
    {
        return $this->hasMany(Participant::class);
    }
}

class Participant extends Model
{
    public function meeting(): BelongsTo
    {
        return $this->belongsTo(Meeting::class);
    }

    public function details(): MorphTo
    {
        return $this->morphTo('details');
    }
}

abstract class Details extends Model
{
    public function participant(): MorphOne
    {
        return $this->morphOne(Participant::class, 'details');
    }
}

class PlayerDetails extends Details
{
}

class RefereeDetails extends Details
{
}

A test to check models are working as expected
    /** @test */
    public function check_model_setup()
    {
        $meeting = Meeting::create();

        $playerDetails = PlayerDetails::create();

        $player = Participant::create();
        $player->meeting()->associate($meeting)->save();
        $player->details()->associate($playerDetails)->save();

        $this->assertCount(1, Meeting::get());
        $this->assertCount(1, PlayerDetails::get());
        $this->assertCount(1, Participant::get());

        $this->assertTrue($player->fresh()->details->is( PlayerDetails::first()));
    }

Diagram that gets generated

Found the code responsible for this:
->reject(function (ReflectionMethod $method) use ($model) {
                return $method->class !== $model;
            })

That means that all relationships defined in the base abstract get rejected because they are not directly attached to the current class.

Removing that is not enough though. Something else is preventing the methods to get classified as relationships.
On top of that method, I think you could safely exit when finding an abstract class.
Or perhaps better, maybe you could represent the class inheritance on the diagram and keep the abstract class.

Anybody find a work around here?


Update all github actions pipelines to latest versions and introduce dependabot

Issue description / feature objectives
Github actions has been iterating rapidly. CICD tools are high risk from a security perspective. Move to the latest versions of all actions steps if possible and introduce dependabot to ensure versions are updated.
Historically dependabot provided minimal value as it did not index setup.cfg files. This appears to be closed.
Caveats / Assumptions
No breaking changes have been introduced that have adverse affects outside of the github actions pipelines themselves (e.g. on the managed code)>
Completion Criteria

@AleJo2995 Is this issue should I can assist with? Looking to document this as part of https://github.com/oscal-compass/community/issues/4.

@jpower432 I think so, it would be helpful some assistance from you if you already have an idea in mind. I haven't started with this one yet, I was focusing on the other ones. Thanks


Increase span attribute limit at the OTel layer

Goal
OTel imposes a limit on how many attributes are allowed on a span, which is 128 by default. For the session span, we require more than that because you can theoretically have 100 session properties.
To support this, we bump the total limit set in the OTel layer to 300, and validate that our custom limit of 50 for SDK users is not enforced when the SDK adds attributes via the internal addSystemAttribute() method. This will also bump the total number of other attributes the SDK can add to the session span to a safer ceiling.
Testing
Added and modified appropriate unit tests to ensure the expected maximums can be written.

#1203  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @bidetofevil and the rest of your teammates on  Graphite

Merge activity

Aug 7, 2:10 PM EDT: @bidetofevil started a stack merge that includes this pull request via Graphite.


Roll engine 88facf405434..7ecc879ffd9a (1 commits)

https://github.com/flutter/engine/compare/88facf405434...7ecc879ffd9a
git log 88facf405434..7ecc879ffd9a --no-merges --oneline
7ecc879ff Fix failing test on Cirrus (flutter/engine#6469)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Auto-roller completed checks. About to merge.


IMPROVE - remain Undo button on position

The Undo button changes its position in several modes, e.g. it appears somewhere else in Layout Mode, than in Settings Mode. Remain it on its initial, fixed position. Even if other buttons appear and disappear while going back through Undo steps, it should not move. Because when a user goes through Undo steps, he's watching the screen while clicking on Undo blindly.

fixed https://github.com/TimSusa/midi-bricks-mono/releases/tag/v1.3.42


Allow custom prometheus alerts from manifest.

Resolves #100.

Thanks for taking a look @frodenas ! I renamed alerts to rules.

Does anyone have an example of how to add the custom rules using Operation files. I am receiving unmarshal error. ?


Honeypot additions for greenhouse API

DO NOT MERGE
this PR is just a preview of the changes added in the fork. It's not supposed to be merged
Honeypot changes to official greenhouse_io gem.

Are all of the cassettes added in this PR used?

@thisismydesign this PR is just a preview of the changes added in the fork. It's not supposed to be merged. The cassettes are needed to make tests pass.

Ah gotcha, thanks!


feat: integrate create order api

Trello ticket
Problem statement
Need to send orders to backend to save them
Solution description
Integrate "create order" api into frontend

Need to enable cors on backend before

it's working, merging


[CT-33] Add macro/run-operation for uploading files from local filesystem to S3

Describe the feature
Prompted by https://github.com/brooklyn-data/dbt_artifacts/issues/60.
Access to a macro such as:
{% do adapter.upload_file(file_path, destination) %}

would enable dbt_artifacts to become compatible with Redshift. The user would need to create their own S3 bucket, and grant any policies needed.
The adapter already has boto3 as a dependency, so not additional packages should be needed.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Please include any other relevant context here.
Who will this benefit?
What kind of use case will this feature be useful for? Please be specific and provide examples, this will help us prioritize properly.
Are you interested in contributing this feature?
Let us know if you want to write some code, and how we can help.

@NiallRees Thank you for also trying to implement this functionality in Redshift love the idea of having uniformity for how we extend our adapters as much as possible, I will open this up as a good first issue to work on as we did for the big-query

boto3 upload_file would need to add a new method in impl.py to be able to reference within the adapter.sql suggested macro.


Prepare for Gophercloud TWO

In order to test this, I do a checkout, make images and that it?

@haringsrob That'll test it builds, but that's already done for you as part of the Runtime actions (trust no one, even myself!)
Actual testing, that I would enforce as a reviewer, would involve creating (projects/users/etc get created) and deleting clusters (things get cleaned up afterwards), quite a bit of manual OpenStack admin knowledge required, but nothing too strenuous when you know how it all hangs together.

And on that note... All good, cluster comes up correctly and cleans up:
[Thu  6 Jun 09:00:23 BST 2024] simon@symphony ~/src/github.com/unikorn-cloud/unikorn openstack project list --domain unikorn-dev-simon
+----------------------------------+------------------+
| ID                               | Name             |
+----------------------------------+------------------+
| dcd8d1d011de4a8b9784ec3b76461fad | unikorn-kxd2jc8z |
+----------------------------------+------------------+
[Thu  6 Jun 09:09:14 BST 2024] simon@symphony ~/src/github.com/unikorn-cloud/unikorn openstack project list --domain unikorn-dev-simon


Sync this repo with the production copy

This is 76cc6f52b10d0f5aa525e7270c72a644037f00ea from production
This version has support for Azure Pipelines and Bitbucket
It also outputs the upload URL.
Closes #158

Not sure if I should switch the VERSION to tbd, or change the tests. Thoughts?


Wrong data type in Custom Storage Engine

Describe the bug
The cellid file its sending on "save" event a non-buffer type, and this is casualy making some unhandled promises error in your module, i managed to temp fix that by converting any non-buffer types to a string type, but im afraid that it might not be the best solution..
Versions
Latest

I don't see how that's possible, since the file-manager module converts strings to Buffers automatically.

This should be fixed in v4.12.2.


Rename Pos to Square

Eventually, to make it consistent with the other chess libs

I went ahead since it's mostly an LSP replace and I want to get to the bigger task of updating lila

cool, also I already have a pr for 14.8.1, so, you can update this change into that pr.


I can't override the default text completions with for the built-in javascript langauge.

I'm using Monaco to edit ES6 code and want to have syntax coloring with custom auto-completion suggestions. Monarch provides a basic JavaScript tokenizer at https://microsoft.github.io/monaco-editor/monarch.html, but it is very basic and isn't ES6 compliant. The typescript languages tokenizer is ES6 compliment, but when it comes with a lot of extra features I don't want like code completion and type hints.
Is it possible to use only the typescript tokenizer, or is there a monarch tokenizer for ES6?

Yes, it is possible to use only the tokenization part from typescript.
You can find an example how this is done in the built-in plugin monaco-typescript. You need to implement a specific interface:
https://github.com/Microsoft/monaco-typescript/blob/master/src/tokenization.ts
It is then registered to Monaco via monaco.languages.setTokensProvider

In the meantime, we have a TS Monarch tokenizer.


Kogito 6876 sw chrome extension

Added chrome extension support for serverless workflow editor
updated staging and release jobs

JIRA:
- chrome extension package - https://issues.redhat.com/browse/KOGITO-6877
- staging and release jobs - https://issues.redhat.com/browse/KOGITO-6878

reopening after changing repo name


Relocate from Langley to BEVi (cluster)?

moved front-end to http://filogeneti.ca/covizu
JSON files still being generated by back end on Langley, transferred over by scp

Note the cluster is running on CentOS so there may be some incompatibilities to look out for!

created covizu user on BEVi

pulled covizu from repo

python3 setup.py install --user

module load openmpi/gnu

attempted mpirun -np 3 python3 covizu/clustering.py failed with missing scipy error

needed to install pip with sudo yum install python3-pip (with my user account)
pip3 install scipy --user Successfully installed numpy-1.19.4 scipy-1.5.4

again failed with missing biopython error

pip3 install biopython --user Successfully installed biopython-1.78

another error:
[covizu@BEVi covizu]$ mpirun -np 3 python3 covizu/clustering.py
Script requires mpi4py - https://pypi.org/project/mpi4py/

pip3 install mpi4py --user
Successfully installed mpi4py-3.0.3

first real bug:
[covizu@BEVi covizu]$ mpirun -np 3 python3 covizu/clustering.py data/by_lineage.json B
🦠 [0:00:00.000014] loading JSON
Traceback (most recent call last):
  File "covizu/clustering.py", line 243, in <module>
    with open(args.infile) as handle:
AttributeError: 'Namespace' object has no attribute 'infile'

Successful run on head node:
[covizu@BEVi covizu]$ mpirun -np 3 python3 covizu/clustering.py data/by_lineage.json B --nboot 3 --outdir data
🦠 [0:00:00.000017] loading JSON
🦠 [0:00:00.000015] loading JSON
🦠 [0:00:00.000015] loading JSON
🦠 [0:00:05.165614] Reduced to 1571 variants; generating feature set union
[...]
🦠 [0:00:11.954229]   row 1500 of 1571
🦠 [0:00:11.963294]   row 1500 of 1571

but running on other nodes failed:
[covizu@BEVi covizu]$ mpirun --machinefile mfile python3 covizu/clustering.py data/by_lineage.json B --nboot 10 --outdir data
Fatal Python error: Py_Initialize: Unable to get the locale encoding
Traceback (most recent call last):
  File "/usr/lib64/python3.6/encodings/__init__.py", line 31, in <module>
Fatal Python error: Py_Initialize: Unable to get the locale encoding

Yeah it's an fstab issue:
[covizu@BEVi covizu]$ python3 -c "import codecs"
[covizu@BEVi covizu]$ bpsh 1 python3 -c "import codecs"
Fatal Python error: Py_Initialize: Unable to get the locale encoding
Traceback (most recent call last):
  File "/usr/lib64/python3.6/encodings/__init__.py", line 31, in <module>
ModuleNotFoundError: No module named 'codecs'
bpsh: Child process exited abnormally.

Usual process for reconfiguring NFS on Scyld cluster:

backed up /etc/exports
appended to /etc/exports:
/usr/lib64/python3.6	@cluster(ro,sync,no_root_squash)
sudo exportfs -a
backed up /etc/beowulf/fstab
appended to /etc/beowulf/fstab:
$MASTER:/usr/lib64/python3.6	/usr/lib64/python3.6	nfs	nolock,nonfatal		0 0

Process failed:
[art@BEVi skycross]$ sudo bpsh -a mkdir -p /usr/lib64/python3.6
[art@BEVi skycross]$ sudo bpsh -a mount -t nfs -o nolock master:/usr/lib64/python3.6 /usr/lib64/python3.6
mount.nfs: access denied by server while mounting master:/usr/lib64/python3.6

drwxr-xr-x. 26 root root    20480 Jun 11  2019 python2.7
drwxr-xr-x  32 root root     8192 Jun 11  2019 python3.6

Permissions are the same - apparently the . has something to do with SELinux, but that is disabled.

The above means for now, I can only launch processes on the head node.  I really need to get this working for the compute nodes as well, so we can spin up at least 50 processes and do 100 bootstraps in two rounds!

Run in verbose mode to try to get more info:
[art@BEVi ~]$ bpsh 0 python3 -v -c "a=1"
import _frozen_importlib # frozen
import _imp # builtin
import sys # builtin
import '_warnings' # <class '_frozen_importlib.BuiltinImporter'>
import '_thread' # <class '_frozen_importlib.BuiltinImporter'>
import '_weakref' # <class '_frozen_importlib.BuiltinImporter'>
import '_frozen_importlib_external' # <class '_frozen_importlib.FrozenImporter'>
import '_io' # <class '_frozen_importlib.BuiltinImporter'>
import 'marshal' # <class '_frozen_importlib.BuiltinImporter'>
import 'posix' # <class '_frozen_importlib.BuiltinImporter'>
import _thread # previously loaded ('_thread')
import '_thread' # <class '_frozen_importlib.BuiltinImporter'>
import _weakref # previously loaded ('_weakref')
import '_weakref' # <class '_frozen_importlib.BuiltinImporter'>
# installing zipimport hook
import 'zipimport' # <class '_frozen_importlib.BuiltinImporter'>
# installed zipimport hook
# /usr/lib64/python3.6/encodings/__pycache__/__init__.cpython-36.pyc matches /usr/lib64/python3.6/encodings/__init__.py
# code object from '/usr/lib64/python3.6/encodings/__pycache__/__init__.cpython-36.pyc'
Fatal Python error: Py_Initialize: Unable to get the locale encoding
Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/lib64/python3.6/encodings/__init__.py", line 31, in <module>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'codecs'
# destroy encodings
bpsh: Child process exited abnormally.

Using strace to get even more info:
[art@BEVi ~]$ bpsh 0 strace python3
[... omitting heaps of stuff ...]
stat("/usr/lib64/python3.6/lib-dynload", {st_mode=S_IFDIR|0755, st_size=40, ...}) = 0
openat(AT_FDCWD, "/usr/lib64/python3.6/lib-dynload", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 2 entries */, 32768)     = 48
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
write(2, "Fatal Python error: Py_Initializ"..., 69Fatal Python error: Py_Initialize: Unable to get the locale encoding

Yeah, it's an NFS issue alright:
[art@BEVi ~]$ bpsh 1 ls /usr/lib64/python3.6/lib-dynload
[art@BEVi ~]$ ls /usr/lib64/python3.6/lib-dynload
array.cpython-36m-x86_64-linux-gnu.so
_asyncio.cpython-36m-x86_64-linux-gnu.so
audioop.cpython-36m-x86_64-linux-gnu.so
binascii.cpython-36m-x86_64-linux-gnu.so
_bisect.cpython-36m-x86_64-linux-gnu.so
_blake2.cpython-36m-x86_64-linux-gnu.so
_bz2.cpython-36m-x86_64-linux-gnu.so
cmath.cpython-36m-x86_64-linux-gnu.so
_codecs_cn.cpython-36m-x86_64-linux-gnu.so
_codecs_hk.cpython-36m-x86_64-linux-gnu.so
_codecs_iso2022.cpython-36m-x86_64-linux-gnu.so
_codecs_jp.cpython-36m-x86_64-linux-gnu.so
_codecs_kr.cpython-36m-x86_64-linux-gnu.so
_codecs_tw.cpython-36m-x86_64-linux-gnu.so
[...]

[art@BEVi ~]$ sudo bpsh -a mount -t nfs -o nolock -vvvv master:/usr/lib64/python3.6 /usr/lib64/python3.6
mount.nfs: mount(2): No such file or directory
mount.nfs: portmap query failed: RPC: Authentication error
mount.nfs: access denied by server while mounting master:/usr/lib64/python3.6
mount.nfs: timeout set for Mon Dec  7 23:28:00 2020
mount.nfs: trying text-based options 'nolock,vers=4.1,addr=<IP_ADDRESS>,clientaddr=<IP_ADDRESS>'
mount.nfs: trying text-based options 'nolock,addr=<IP_ADDRESS>'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: mount(2): No such file or directory
mount.nfs: portmap query failed: RPC: Authentication error
mount.nfs: access denied by server while mounting master:/usr/lib64/python3.6
mount.nfs: timeout set for Mon Dec  7 23:28:01 2020
mount.nfs: trying text-based options 'nolock,vers=4.1,addr=<IP_ADDRESS>,clientaddr=<IP_ADDRESS>'
mount.nfs: trying text-based options 'nolock,addr=<IP_ADDRESS>'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: mount(2): No such file or directory
mount.nfs: portmap query failed: RPC: Authentication error
mount.nfs: timeout set for Mon Dec  7 23:28:01 2020
mount.nfs: trying text-based options 'nolock,vers=4.1,addr=<IP_ADDRESS>,clientaddr=<IP_ADDRESS>'
mount.nfs: trying text-based options 'nolock,addr=<IP_ADDRESS>'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: access denied by server while mounting master:/usr/lib64/python3.6
mount.nfs: mount(2): No such file or directory
mount.nfs: portmap query failed: RPC: Authentication error
mount.nfs: timeout set for Mon Dec  7 23:28:01 2020
mount.nfs: trying text-based options 'nolock,vers=4.1,addr=<IP_ADDRESS>,clientaddr=<IP_ADDRESS>'
mount.nfs: trying text-based options 'nolock,addr=<IP_ADDRESS>'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: access denied by server while mounting master:/usr/lib64/python3.6

Added the following lines to hosts.allow:
rpcbind : ALL : ALLOW
mountd : ALL : ALLOW

https://stackoverflow.com/questions/13111910/rpc-authentication-error
Success!

Ah, we're not done - need to get batch.py tested.

Installed dependencies:

compiled minimap2 version 2.17 and installed
updated fasttree2 to version 2.1.11, compiled for double precision

moved older version (2.1.10) to /usr/local/bin/fasttree2-2.1.10

installed TreeTime, including requirements NumPy, Cython, and pandas (needed to install version 1.1.5 instead of 1.2, because the latter no longer supports Python 3.6)

Exception thrown by TreeTime:
Inferred sequence evolution model (saved as data/molecular_clock.txt):
Root-Tip-Regression:
 --rate:        8.000e-04
 --r^2:         0.53

--- saved tree as
         data/timetree.pdf

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/matplotlib-3.3.3-py3.6-linux-x86_64.egg/matplotlib/mathtext.py", line 2609, in parse
    result = self._expression.parseString(s)
  File "/usr/local/lib/python3.6/site-packages/pyparsing-3.0.0b1-py3.6.egg/pyparsing/core.py", line 869, in parseString
    raise exc.with_traceback(None)
pyparsing.exceptions.ParseFatalException: Unknown symbol: \beta, found '\'  (at char 11), (line:1, col:12)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/bin/treetime", line 4, in <module>
    __import__('pkg_resources').run_script('phylo-treetime==0.8.0', 'treetime')
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 654, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1441, in run_script
    exec(script_code, namespace, namespace)

I modified the TreeTime code to skip writing the RTT plot if the user passes the argument --plot-rtt none.  Analysis runs to completion on same temporary data files now:
[covizu@BEVi covizu]$ treetime --tree /tmp/cvz_tt_nlqfuh2j --aln /tmp/cvz_tt_30987v78 --dates /tmp/cvz_tt_db7v7b9z --outdir data/ --verbose 0 --clock-rate 0.0008 --plot-rtt none
Attempting to parse dates...
	Using column 'name' as name. This needs match the taxon names in the tree!!
	Using column 'date' as date.

0.00	-TreeAnc: set-up

4.49	WARNING: Previous versions of TreeTime (<0.7.0) RECONSTRUCTED sequences of
    	tips at positions with AMBIGUOUS bases. This resulted in unexpected
    	behavior is some cases and is no longer done by default. If you want to
    	replace those ambiguous sites with their most likely state, rerun with
    	`reconstruct_tip_states=True` or `--reconstruct-tip-states`.

71.63	TreeTime: the following tips have been marked as outliers. Their date
     	constraints were not used. Please remove them from the tree. Their dates
     	have been reset:

71.63	B.1.129, input date: 2020.4986338797814, apparent date: 2021.05

71.63	B.1.130, input date: 2020.6516393442623, apparent date: 2022.39

Inferred sequence evolution model (saved as data/sequence_evolution_model.txt):
Substitution rate (mu): 1.0

Equilibrium frequencies (pi_i):
  A: 0.2976
  C: 0.1706
  G: 0.1876
  T: 0.3342
  -: 0.01

Symmetrized rates from j->i (W_ij):
	A	C	G	T	-
  A	0	0.2795	1.0439	0.1494	21.7918
  C	0.2795	0	0.2646	3.5697	22.1119
  G	1.0439	0.2646	0	1.3013	21.9549
  T	0.1494	3.5697	1.3013	0	25.5326
  -	21.7918	22.1119	21.9549	25.5326	0

Actual rates from j->i (Q_ij):
	A	C	G	T	-
  A	0	0.0832	0.3107	0.0445	6.4862
  C	0.0477	0	0.0451	0.6089	3.7715
  G	0.1959	0.0496	0	0.2442	4.1193
  T	0.0499	1.193	0.4349	0	8.5331
  -	0.2171	0.2203	0.2187	0.2544	0

Inferred sequence evolution model (saved as data/molecular_clock.txt):
Root-Tip-Regression:
 --rate:	8.000e-04
 --r^2:  	0.46

--- saved tree as
	 data/timetree.pdf

--- alignment including ancestral nodes saved as
	 data/ancestral_sequences.fasta

--- saved divergence times in
	 data/dates.tsv

--- tree saved in nexus format as
	 data/timetree.nexus

--- divergence tree saved in nexus format as
	 data/divergence_tree.nexus

Running default --mincount at 5000 was too slow because processing lineages in serial mode is slow.  Trying another run at 500.

Geh, forgot to load the openmpi module:
🦠 [0:11:01.700436] start B, 2841 entries
Traceback (most recent call last):
  File "batch.py", line 212, in <module>
    result = make_beadplots(by_lineage, args, cb.callback)
  File "batch.py", line 180, in make_beadplots
    args.bylineage, "--nboot", str(args.nboot), "--outdir", "data"]
  File "/usr/lib64/python3.6/subprocess.py", line 306, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/usr/lib64/python3.6/subprocess.py", line 287, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/usr/lib64/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'mpirun': 'mpirun'
[covizu@BEVi covizu]$ module load openmpi/gnu
[covizu@BEVi covizu]$ which mpirun
/opt/scyld/openmpi/2.0.4/gnu/bin/mpirun
[covizu@BEVi covizu]$ nohup python3 batch.py data/provision.json.xz data/clusters.json --mmthreads 8 --mincount 500 &
[1] 92525
[covizu@BEVi covizu]$ nohup: ignoring input and appending output to ‘nohup.out’

Still no:
🦠 [0:11:19.897082] start B, 2841 entries
Traceback (most recent call last):
  File "batch.py", line 212, in <module>
    result = make_beadplots(by_lineage, args, cb.callback)
  File "batch.py", line 180, in make_beadplots
    args.bylineage, "--nboot", str(args.nboot), "--outdir", "data"]
  File "/usr/lib64/python3.6/subprocess.py", line 311, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['mpirun', '--machinefile', 'mfile', 'python3', 'covizu/clustering.py', 'data/by_lineage.json', '--nboot', '100', '--outdir', 'data']' returned non-zero exit status 2.

Looks like a missing argument.

🦠 [0:11:13.019709] start B, 2841 entries
Traceback (most recent call last):
  File "batch.py", line 213, in <module>
    result = make_beadplots(by_lineage, args, cb.callback)
  File "batch.py", line 193, in make_beadplots
    ctree = clustering.consensus(trees, cutoff=args.cutoff)
  File "/home/covizu/covizu/covizu/clustering.py", line 137, in consensus
    trees = list(trees)
  File "/home/covizu/.local/lib/python3.6/site-packages/Bio/Phylo/_io.py", line 49, in parse
    yield from getattr(supported_formats[format], "parse")(fp, **kwargs)
  File "/home/covizu/.local/lib/python3.6/site-packages/Bio/Phylo/NewickIO.py", line 52, in parse
    return Parser(handle).parse(**kwargs)
  File "/home/covizu/.local/lib/python3.6/site-packages/Bio/Phylo/NewickIO.py", line 104, in __init__
    if handle.read(0) != "":
ValueError: I/O operation on closed file.

Running over night, nohup.out contained the following error:
<U+1F9A0> [0:31:15.370835]   row 20100 of 20347
Traceback (most recent call last):
  File "covizu/clustering.py", line 266, in <module>
    phy = bootstrap(union, indexed, args.binpath, callback=cb.callback)
  File "covizu/clustering.py", line 100, in bootstrap
    stdout = subprocess.check_output(cmd, stderr=subprocess.DEVNULL)
  File "/usr/lib64/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib64/python3.6/subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib64/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.6/subprocess.py", line 1295, in _execute_child
    restore_signals, start_new_session, preexec_fn)
OSError: [Errno 12] Cannot allocate memory

I'm reducing the number of processes distributed across the nodes from 50 to around 33, so we do 100 replicates in three rounds, not two.  Doing a trial run on lineage B.1:
[covizu@BEVi covizu]$ mpirun --machinefile mfile python3 covizu/clustering.py data/by_lineage.json B.1 --nboot 100 -o working/
🦠 [0:00:00.000024] loading JSON
[...]
🦠 [0:28:33.654588]   row 20000 of 20029

RapidNJ is running on all cores right now, should take roughly half an hour.  RAM consumption seems OK.

It took a bit under 5 hours to process all 100 trees for lineage B.1.1 (20347 variants).
Generating the consensus for these trees took up a lot of RAM (over 50% of about 64GB), need to keep an eye on this.

Successfully transitioned to the next big lineage!

Crap, that one tip tree problem again!
🧿 [11:23:23.441752] start B.1.1.62, 28 entries
🧿 [11:23:46.936157] start B.1.1.27, 125 entries
🧿 [11:24:12.279722] start B.1.1.8, 279 entries
🧿 [11:24:55.271488] start B.1.5.24, 200 entries
🧿 [11:25:27.534760] start B.1.165, 84 entries
🧿 [11:25:51.793485] start B.2.5, 1 entries
Traceback (most recent call last):
  File "batch.py", line 221, in <module>
    result = make_beadplots(by_lineage, args, cb.callback, t0=cb.t0.timestamp())
  File "batch.py", line 176, in make_beadplots
    beaddict = beadplot_serial(lineage, features, args)
  File "batch.py", line 114, in beadplot_serial
    trees, labels = clustering.build_trees(features, args, callback=callback)
  File "/home/covizu/covizu/covizu/clustering.py", line 208, in build_trees
    for _ in range(args.nboot)]
  File "/home/covizu/covizu/covizu/clustering.py", line 208, in <listcomp>
    for _ in range(args.nboot)]
  File "/home/covizu/covizu/covizu/clustering.py", line 102, in bootstrap
    stdout = subprocess.check_output(cmd, stderr=subprocess.DEVNULL)
  File "/usr/lib64/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib64/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['rapidnj', '/tmp/cvz_boot_n7tdp3fo', '-i', 'pd', '--no-negative-length']' returned non-zero exit status 1.

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 75805 covizu    20   0   17.4g  14.5g  14152 R 100.3 23.2  15:18.81 python3

BWAHAHAHA I forgot to add the filtering step into the new pipeline - this makes a HUGE difference - lineage B.1.1 reduces down to 13073 variants, memory consumption is way down and speed will be way up.

fwiw I re-optimized the consensus tree generation function to reduce memory consumption, see #158

So close...
🏄 [3:14:16.095184] start B.1.1.54, 365 entries
🏄 [3:15:10.230928] start B.1.148, 2 entries
ERROR: mismatch detected between tree and label file:
{'hCoV-19/England/LIVE-9A117/2020|EPI_ISL_439848|2020-04-17'}

Closing with successful run on cluster


Update lexical-core version to "^0.6".

Patches:

#1100
#1080
#1066
And a few upstream issues.

Coverage increased (+0.08%) to 87.386% when pulling 4f30b4bedaa1cf654131087e4a4508f3d74ef4b1 on Alexhuszagh:master into de22438189f95947f006d1a0584ca10b96e6f5fe on Geal:master.

Now that 0.7 has been released, it would be a nice addition to this :)

@Razican, eventually, yes, however, v0.7 only has support for Rustc >= 1.37, while v0.6 has support for Rustc >= 1.24 (this is due to dependency restrictions). I would like to avoid any breaking changes in Nom currently, but ideally yes, long-term, that would be ideal :D.

Looks like upgrading to 0.7 is just a bump -- tests still pass. :smile:

thank you for this! I'll probably raise the minimum Rust version for nom 6, so it could switch to v0.7


SAM-2479; map /direct/sam_pub when copying sites

Please see comments on PR 153. I messed up git, and had to do a new PR.
Don't  accept this PR at the moment, until I deal with the comments on 153.

I've now dealt with the comments in PR 153. As far as I know this is ready to commit


Move http://spongepowered.github.io/SpongeAPI/ to a spongepowered.org sub domain

See SpongePowered/SpongeAPI@d611989059edc288b507dc719ad562d8f22bfcd3


TypeError: Cannot read properties of undefined (reading 'usage')

TypeError: Cannot read properties of undefined (reading 'usage')
    at (node_modules/langchain/dist/chat_models/openai.js:419:118)
    at (node_modules/langchain/dist/chat_models/base.js:45:24)
    at (node_modules/langchain/dist/chains/llm_chain.js:118:32)
    at (node_modules/langchain/dist/chains/base.js:87:27)

Looks like it's trying to access data.usage but no handling if data is undefined
https://github.com/hwchase17/langchainjs/blob/efc486f1f7ee0f553e459b51f2a3a2ab6d221bf9/langchain/src/llms/openai.ts#L398C28-L398C28

faced this issue but its intermittent.


Fine-tuning for semantic segmentation

Hello!
I was wondering how I could use your code for fine-tuning on semantic segmentation only?
Thank you!

Hi, the easiest solution is to change the datasets that are used. Each dataset has its own set task that is used on.

Thank you!


REMI Yolov3 Object Detction Problem

import time
import io
import detection
import cv2
import remi.gui as gui
from remi import start, App
import yolo
#create yolo object once
yoloClass=yolo.YOLO()
class OpencvVideoWidget(gui.Image):
def __init__(self, fps=5, **kwargs):
	super(OpencvVideoWidget, self).__init__("/%s/get_image_data" % id(self), **kwargs)
	self.fps = fps
	#set camera below for desiere
	video_source=1
	self.capture = cv2.VideoCapture(video_source)
	javascript_code = gui.Tag()
	javascript_code.type = 'script'
	javascript_code.attributes['type'] = 'text/javascript'
	javascript_code.add_child('code', """
		function update_image%(id)s(){
			if(document.getElementById('%(id)s').getAttribute('play')=='False')
				return;

			var url = '/%(id)s/get_image_data';
			var xhr = new XMLHttpRequest();
			xhr.open('GET', url, true);
			xhr.responseType = 'blob'
			xhr.onload = function(e){
				var urlCreator = window.URL || window.webkitURL;
				var imageUrl = urlCreator.createObjectURL(this.response);
				document.getElementById('%(id)s').src = imageUrl;
			}
			xhr.send();
		};

		setInterval( update_image%(id)s, %(update_rate)s );
		""" % {'id': id(self), 'update_rate': 10000.0 / self.fps})

	self.add_child('javascript_code', javascript_code)
	self.play()

def play(self):
	self.attributes['play'] = True

def stop(self):
	self.attributes['play'] = False

def get_image_data(self):
	frame =detection.processFrame(self.capture.read(),yoloClass)

	if ret:
		ret, jpeg = cv2.imencode('.jpg', frame)
		if ret:
			headers = {'Content-type': 'image/jpeg'}
			# tostring is an alias to tobytes, which wasn't added till numpy 1.9
			return [jpeg.tostring(), headers]
	return None, None

class MyApp(App):
def init(self, *args):
super(MyApp, self).init(*args)
def main(self, name='world'):
    # the arguments are	width - height - layoutOrientationOrizontal
    wid = gui.Widget(width=640, height=600)
	#changed
    self.opencvideo_widget = OpencvVideoWidget( 10, width=416, height=416)
    self.opencvideo_widget.style['margin'] = '10px'
    menu = gui.Menu(width=620, height=30)
    m1 = gui.MenuItem('Video', width=100, height=30)
    m11 = gui.MenuItem('Play', width=100, height=30)
    m12 = gui.MenuItem('Stop', width=100, height=30)
    m11.set_on_click_listener(self.menu_play_clicked)
    m12.set_on_click_listener(self.menu_stop_clicked)

    menu.append(m1)
    m1.append(m11)
    m1.append(m12)

    wid.append(menu)
    wid.append(self.opencvideo_widget)

    # returning the root widget
    return wid

def menu_play_clicked(self, emitter):
    self.opencvideo_widget.play()

def menu_stop_clicked(self, emitter):
    self.opencvideo_widget.stop()

def startGUI(cameraNumber=0):
start(MyApp,address='<IP_ADDRESS>', port=8081, multiple_instance=True, enable_file_cache=True, update_interval=0.1, start_browser=True)

I was trying to run the previous code to display an object detection window in Remi. The process frame function only is running halfway, and the image will refresh before the frame is fully processed, stopping the process frame function in the middle. Is there anything that can be done to prevent this.
Thank You.

Hello @lukerschwan ,
first of all consider to use the following code for a better start point, here is less javascript code:
import time
import io

import cv2
import remi.gui as gui
from remi import start, App

class OpencvVideoWidget(gui.Image):
    def __init__(self, video_source=0, **kwargs):
        super(OpencvVideoWidget, self).__init__("/%s/get_image_data" % id(self), **kwargs)
        self.capture = cv2.VideoCapture(video_source)
        self.frame_index = 0

    def next_frame(self):
        self.set_image( "/%s/get_image_data?index=%s" % (self.identifier, self.frame_index) )
        self.frame_index += 1
        #the following line prevents video flickering
        self.style['background-image'] = "url('/%s/get_image_data?index=%s')" % (self.identifier, self.frame_index)

    def get_image_data(self, index=0):
        ret, frame = self.capture.read()
        if ret:
            ret, jpeg = cv2.imencode('.jpg', frame)
            if ret:
                headers = {'Content-type': 'image/jpeg'}
                # tostring is an alias to tobytes, which wasn't added till numpy 1.9
                return [jpeg.tostring(), headers]
        return None, None

class MyApp(App):
    def __init__(self, *args):
        super(MyApp, self).__init__(*args)

    def idle(self):
        if self.play:
            self.opencvideo_widget.next_frame()

    def main(self):
        # the arguments are	width - height - layoutOrientationOrizontal
        wid = gui.Widget(width=640, height=600, margin='0px auto')
        self.opencvideo_widget = OpencvVideoWidget(0, width=620, height=530)
        self.opencvideo_widget.style['margin'] = '10px'
        menu = gui.Menu(width=620, height=30)
        m1 = gui.MenuItem('Video', width=100, height=30)
        m11 = gui.MenuItem('Play', width=100, height=30)
        m12 = gui.MenuItem('Stop', width=100, height=30)
        m11.set_on_click_listener(self.menu_play_clicked)
        m12.set_on_click_listener(self.menu_stop_clicked)

        menu.append(m1)
        m1.append(m11)
        m1.append(m12)

        wid.append(menu)
        wid.append(self.opencvideo_widget)

        self.play = True

        # returning the root widget
        return wid

    def menu_play_clicked(self, widget):
        self.play = True

    def menu_stop_clicked(self, widget):
        self.play = False

if __name__ == "__main__":
    start(MyApp)

However, is the frame processing library syncronous or async? If it is asyc, does it provide a callback function?

Thank you, that code is much easier to work with. The library is synchronous.

I never used Yolo, it seems powerful.
However, if it works synchronously its execution can't be affected by remi. It should work.
The code you pasted in the beginning seems to be wrong, but the error is syntactic, so you should get a python exeption before it starts:
def get_image_data(self):
	frame =detection.processFrame(self.capture.read(),yoloClass)

	if ret:  #<<<< ERROR here "ret" is not declared
		ret, jpeg = cv2.imencode('.jpg', frame)
		if ret:

@lukerschwan Do you have any news about this?

Hello, thank you so much for your help, I was able to get Yolov3 to display through REMI by displaying a JPG in a thread running REMI and updating the JPG in another thread using asynch Yolov3 tensorflow.(keep in mind that this does flicker)  I will attach some screenshots soon. Again, thank you so much for your help!

So in REMI i have an image loaded that is being updated by the local computer but remi does not seem to be refreshing the image to match the image stored locally, is there a widget to do this?

@lukerschwan are you using the standard Image widget? If so, if your file changes in the harddrive and you would like to see a fresh image you can do a page update. You should pass the parameter enable_file_cache=False to the start call.
If you would like to force the image update by code, you should "force" a change to the Image widget, for example by setting an incremental value in a custom attribute, like myimage.attributes['refresh'] = str(counter) .
IF you are working with openCv, you can find this class useful:
class OpencvImageWidget(gui.Image):
    def __init__(self, filename, **kwargs):
        super(OpencvImageWidget, self).__init__("/%s/get_image_data" % id(self), **kwargs)
        self.img = cv2.imread(filename, 0)
        self.frame_index = 0
        self.set_image(filename)

    def set_image(self, filename):
        print(filename)
        self.img = cv2.imread(filename, cv2.IMREAD_GRAYSCALE) #cv2.IMREAD_COLOR)
        super(OpencvImageWidget, self).set_image( "/%s/get_image_data?index=%s" % (self.identifier, self.frame_index) )
        self.frame_index += 1

    def refresh(self, opencv_img=None):
        self.img = opencv_img
        super(OpencvImageWidget, self).set_image( "/%s/get_image_data?index=%s" % (self.identifier, self.frame_index) )
        self.frame_index += 1

    def get_image_data(self, index=0):
        ret, jpeg = cv2.imencode('.jpg', self.img)
        if ret:
            headers = {'Content-type': 'image/jpeg'}
            # tostring is an alias to tobytes, which wasn't added till numpy 1.9
            return [jpeg.tostring(), headers]
        return None, None


Adding other ontolo-dbs

I'm interested in potentially using pyobo to convert some other databases into ontologies after coming across https://biopragmatics.github.io/obo-db-ingest/ in my journeys around the ontolo-sphere. Are there any particular criteria that you had for picking the databases that you did (presumably just databases that you needed), and were there any dbs that you rejected? Did you put together any documentation about the project, particularly on decisions made when translating db entities into ontology terms?
I'm interested in "ontologising" MetaCyc and possibly others (in addition to some that you have already done - EC, KEGG, Reactome) so staying as consistent with the OBOification that has already been done would be best.

Most of what's in here is based on need/interest. I'm happy to accept PRs for new sources, you can check inside https://github.com/biopragmatics/pyobo/tree/main/src/pyobo/sources for examples on how this is done for other resources. At the moment, there isn't a very good contribution guide, but if you're keen on getting started, I can prepare some material for you.
WRT how to actually go about choosing an appropriate ontologization, this is a very difficult kind of domain knowledge to communicate. I'll have to think about how I would go about documenting this, again I refer you to read up on what exists already and feel free to open as many issues on this repo with questions as you have!
I'll mostly reject anything where conversion can't be 100% automated. Here are a few examples of larger chunks of code I spun out of PyOBO to automate getting more tricky resources: https://github.com/cthoyt/drugbank-downloader, https://github.com/cthoyt/umls_downloader, and https://github.com/cthoyt/chembl-downloader.
If you have a wish-list, please open up a different issue on this repo for each where we can have threaded discussions about them.

Thanks for the quick response and all the information. I used to work on GO so I'm familiar with ontologies, and I will pick through the sources you mentioned to see what would be appropriate for the data I'm interested in.
Are you on the obo-community slack, and if so, is there an appropriate channel there for discussing these topics? It's a bit easier than communicating via GitHub.

sure, I'm there! we have a #databases-as-ontologies channel
but keep in mind that it's a free slack and all discussions disappear after 90 days, and it's better for the sake of an open source project to use the issue tracker for discussion and planning

Regarding appropriate ontologization, there is my slide deck, and I also filed an issue in the obo-db-ingest repo: https://github.com/biopragmatics/obo-db-ingest/issues/11

Closing this issue as my workmate @jplfaria has added the first of the DBs that we want to add to pyobo.

woohoo! thanks @ialarmedalien and @jplfaria. looking forward to the next one :)


Use constant to define restart policy

... instead hard-coding the string in our own logic.

/test ironic-operator-build-deploy

I think this needs to be rebased against current master.

I think this needs to be rebased against current master.

done

/lgtm


Re add zip file size to download links

We removed the file size before G8 launch because we only got the supplier pack at the last minute and didn't know the file size.
This re-adds the correct file size, so people can tell if they want to click the links or not.

👍


added footer UI

Description

Added footer section
added some hover effects in the links. and the logo redirects to the main page

Fixes #211
Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Screenshots

Before
there wan no footer
After
added footer

Hello @Iamdivyak!
Thank you for submitting this pull request Your pull request will be reviewed by maintainers shortly. Meanwhile make sure you have referenced the respected issue in this pr Your pr will not be merged if it does not refer respected pr and please read our Contributing Guidelines https://github.com/UBA-GCOEN/StichHub/blob/main/CONTRIBUTING.md And Code of Conduct https://github.com/UBA-GCOEN/StichHub/blob/main/CODE_OF_CONDUCT.md

Hey @Iamdivyak ,
I went through your changes, and you have made a pretty good footer, but there are some changes to it

You have directly made your changes in client/StichHub/src/components/MainLandingPage/Footer.jsx ,
Firstly, retrieve all the code of Footer.jsx in that file, as it was before
Make a new file named FooterHomePage.jsx and add you new code there.

Add some dark background color to your footer.

Your footer is not responsive, make it responsive.

Add link in login and register, use react-router-dom <Link to="/auth"> in both, as of now

Fix Contact Us spelling.

Kindly make these changes and then pin me

hey, @Siddhant-Patil0203 sorry for the delay.
I've made the changes that you asked for.
Could you review it again?
I'm new in git, so I'm sure I've done everything correctly.🥲
please guide me if I've done something wrong because the checks didn't pass.

Thank you @Iamdivyak
for your contribution...


update pom to deploy to maven central

There is no reason to deploy maven central, so I close this PR


Run a command elevated (sudo) ?

Is it possible to invoke a script with sudo ?
I have a script that restarts a service. The script is added in sudoers:
myusername ALL=(ALL) NOPASSWD: /home/myusername/script.sh
and I'm able to invoke it with sudo without requiring password. But if I added to the listener like so:
# Screenlock
listener {
    # HYPRLOCK TIMEOUT
    timeout = 600
    # HYPRLOCK ONTIMEOUT
    on-timeout = hyprlock
    on-resume = sudo -u myusername /home/myusername/script.sh ;
}

I get a prompt to provide sudo password.

echo [PASSWORD] | sudo -S <cmd>?

aaah ... that might work, but I think I prefer typing the password each time than hardcoding it to a script :)

pkexec <cmd>

Add the script or service to /etc/sudoers using ``visudo`. Or add a config file to /etc/sudoers.d
Format like this:
``
`yourusername ALL=(ALL) NOPASSWD: /home/yourusername/script.sh

Thnx simonm but if you look at my original post I've already added the script to sudoers:

I have a script that restarts a service. The script is added in sudoers:
myusername ALL=(ALL) NOPASSWD: /home/myusername/script.sh

Yes. My bad. Sorry about that
On Sat, Jun 8, 2024, 22:09 Dimitris Fasoulas @.***>
wrote:

Thnx simonm but if you look at my original post I've already added the
script to sudoers:
I have a script that restarts a service. The script is added in sudoers:
myusername ALL=(ALL) NOPASSWD: /home/myusername/script.sh
—
Reply to this email directly, view it on GitHub
https://github.com/hyprwm/hypridle/issues/42#issuecomment-2156167547,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAARUZPUDN2A7H66B6C3EDZGNQIRAVCNFSM6AAAAABFXBWWUWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNJWGE3DONJUG4
.
You are receiving this because you commented.Message ID:
@.***>


Fix missing struct field and leftover TODO

I overlooked two struct fields and a TODO marker when I submitted #104; this PR fills in the missing information.

@Techwolfy : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Update azure.yaml template metadata

cc: @pamelafox

I also made this change (and another one) in https://github.com/Azure-Samples/fastapi-on-azure-functions/pull/16/files
I don't have merge access here, however. @shreyabatra4 Could you review and merge this?

Oh great! I'll close this PR then in favour of yours! Thanks!


Fixes # 660 Add pre-commit hooks

Codecov Report

Merging #662 (d76d34b) into main (aa4f959) will increase coverage by 2.13%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #662      +/-   ##
==========================================
+ Coverage   23.77%   25.90%   +2.13%
==========================================
  Files         117      128      +11
  Lines       28966    31195    +2229
  Branches     4711     4973     +262
==========================================
+ Hits         6886     8081    +1195
- Misses      21157    22059     +902
- Partials      923     1055     +132

Flag
Coverage Δ

unittests
25.90% <ø> (+2.13%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/posix/threading.c
93.33% <0.00%> (-1.01%)
:arrow_down:

src/router_core/address_watch.c
73.56% <0.00%> (-0.31%)
:arrow_down:

src/vanflow.c
32.43% <0.00%> (-0.28%)
:arrow_down:

src/alloc_pool.c
81.41% <0.00%> (-0.07%)
:arrow_down:

tests/clogger.c
0.00% <0.00%> (ø)

src/entity_cache.c
100.00% <0.00%> (ø)

tests/test-sender.c
0.00% <0.00%> (ø)

tests/test-receiver.c
0.00% <0.00%> (ø)

tests/threaded_timer_test.c
0.00% <0.00%> (ø)

src/adaptors/http1/http1_server.c
0.00% <0.00%> (ø)

... and 30 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


ros2-eloquent-thud didn't build for me

Here are the steps I took:
$  git clone -b build-draft --single-branch https://github.com/ros/meta-ros.git build
$ mkdir conf
$ ln -snf ../conf build/.
$ cp build/files/ros2-eloquent-thud.mcf conf/
$ build/scripts/mcf -f conf/ros2-eloquent-thud.mcf
$ unset BDIR BITBAKEDIR BUILDDIR OECORELAYERCONF OECORELOCALCONF OECORENOTESCONF OEROOT TEMPLATECONF
$ source openembedded-core/oe-init-build-env
$ mkdir -p /home/wpd/ros2-separate-directory

Edited local.conf as per the instructions, and setting
MACHINE ?= "qemux86"
ROS_COMMON_ARTIFACTS = "/home/wpd/ros2-separate-directory"

then
$ bitbake ros-image-core

which ultimately failed with:
| ERROR: oe_runmake failed
| WARNING: /home/wpd/ros2-separate-directory/BUILD-ros2-eloquent-thud/work/x86_64-linux/asio-native/1.12.1-r0/temp/run.do_compile.29742:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_compile (log file is located at /home/wpd/ros2-separate-directory/BUILD-ros2-eloquent-thud/work/x86_64-linux/asio-native/1.12.1-r0/temp/log.do_compile.29742)
ERROR: Task (virtual:native:/home/wpd/ros2sundial/test/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 5523 tasks of which 5522 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  virtual:native:/home/wpd/ros2sundial/test/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb:do_compile
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

I'm going to go repeat this experiment, but I thought I would ask about it in parallel.  It seems very odd to me that a meta-openembedded recipe should have failed in this manner.

Please share /home/wpd/ros2-separate-directory/BUILD-ros2-eloquent-thud/work/x86_64-linux/asio-native/1.12.1-r0/temp/log.do_compile.29742 without seeing the error it's hard to guess what might went wrong for you.

Sure.  Here they are.
Knowing that this works for you, I'll continue to poke around and see what's up on my build syste,.
Thanks for the help.
--wpd
run.do_compile.29742.gz
log.do_compile.29742.gz

What host OS are you using?
It's failing with
undefined reference to `boost::chrono::steady_clock::now()'
sender.cpp:(.text._ZNK4asio6detail11timer_queueINS0_18chrono_time_traitsIN5boost6chrono12steady_clockENS_11wait_traitsIS5_EEEEE18wait_duration_usecElcollect2: error: ld returned 1 exit status
blocking_token_tcp_client.cpp:(.text.startup+0x41c):collect2: error: ld returned 1 exit status

Are you using any other layers which might remove chrono from BOOST_LIBS?
You can also try to disable boost support in native asio
PACKAGECONFIG_remove_pn-asio-native = "boost"

in your conf/local.conf

I'm building on a Ubuntu 16.04 LTS host.
I'll add the line you suggest and try that.
Thank you.
--wpd

Hi shr-project.  I tried adding the PACKAGCONFIG line you suggested to local.conf and it still didn't build.
I am not using adding or removing any layers other than those added by the mcf tool with the ros2-eloquent-thud.mcf file.
I will work on debugging this myself, but it would be helpful to confirm that this particular configuration is known to build successfully on a Ubuntu 16.04 LTS system.
Thanks for your help.
--wpd

We use only 18.04 ubuntu (and for some builds 20.04).
Can you check with 18.04 e.g. in docker?

Ok.  That's good to know.
I know that Eloquent and Dashing required 18.04, but I figured that since Yocto thud only lists 16.04 as its supported release, this would build on 16.04.
I'll spin up an 18.04 container and try again.
Thanks.
--wpd

It looks like it built asio fine in my 18.04 lxd container.
Sadly, I didn't allocate enough disk space for the container months ago when I created it.
Time to go download some more disk space :-)
Aside, (trying to use my "I want to be helpful" voice and hoping that this doesn't come out in my "I sound snarky" voice), it would be nice if the build instructions wiki stated that the instructions were known to work on Ubuntu 18.04 (and whatever other releases on which you test them).  You could also add a sentence that they have been seen NOT work on Ubuntu 16.04.  If I had read the first sentence, then I would have immediately spun up an 18.04 container when my build failed.  If I had seen the second sentence, I wouldn't have even bothered trying to build on my 16.04 host.
But again, thanks for the help.
--wpd

I'm still surprised that it didn't build on 16.04, but digging a bit deeper boost::chrono::steady_clock::now() is guarded by BOOST_CHRONO_HAS_CLOCK_STEADY and boost's config.hpp sets it like this:
# if defined( BOOST_CHRONO_POSIX_API )
#   define BOOST_CHRONO_HAS_PROCESS_CLOCKS
#   include <time.h>  //to check for CLOCK_REALTIME and CLOCK_MONOTONIC and _POSIX_THREAD_CPUTIME
#   if defined(CLOCK_MONOTONIC)
#      define BOOST_CHRONO_HAS_CLOCK_STEADY
#   endif
...

So this is where boost-native from 16.04 and 18.04 gets different because OE uses glibc from host. But quick check for CLOCK_MONOTONIC show that it should be enabled in both 16.04 and 18.04. Maybe there is another difference which I don't see just by looking at config.hpp.
But in the end it looks like asio issue, it should check
BOOST_CHRONO_HAS_CLOCK_STEADY before trying to use it (as documented in https://theboostcpplibraries.com/boost.chrono)
But considering that Yocto 2.6 Thud is already out of support and asio-native isn't used widely, it's probably not worth fixing it there.
Ubuntu 18.04 is mentioned as prerequisite for meta-ros builds, see:
https://github.com/ros/meta-ros/wiki/OpenEmbedded-Build-Instructions
it should in theory work on other distributions, but we don't have resources to test on many of them, that's why bug reports like this are useful :).

Apparently, the wiki does mention bionic (18.04).  I just missed that.  Sorry for all the SPAM.
Now I just need to figure out why I get the following error when I attempt to build in my 18.04 lxd container (ros-image-core:do_image is failing):
| Copying files into the device: __populate_fs: Could not allocate block in ext2 filesystem while writing file "math2html.cpython-37.pyc"
| mkfs.ext4: Could not allocate block in ext2 filesystem while populating file system

It probably indicates that I'm out of disk space in my container...We'll see.

Adding 100GB of disk space to my container didn't help.
In order to produce an image, I had to add:
IMAGE_ROOTFS_SIZE="262144"

to my local.conf file.  I sure wish I knew why I needed to add this when you don't.
Oh well.  I now have a buildable system.
Here is what I've found, the root of the issue is this:
https://github.com/chriskohlhoff/asio/blob/asio-1-12-1/asio/include/asio/detail/config.hpp#L480
In 16.04 GXX_EXPERIMENTAL_CXX0X isn't enabled by default in g++ 5.4.0 and default __cplusplus 199711L, because of that ASIO_HAS_STD_CHRONO doesn't get defined and even when ASIO_HAS_BOOST_CHRONO is defined later, it doesn't add boost_chrono library when linking the icmp and timeouts examples, which results in that linking failure you were seeing. Fixing the examples/Makefile.am seems to work OK.
g++ 7.5.0 in 18.04 defines GXX_EXPERIMENTAL_CXX0X  and __cplusplus is 201402L (used in newer asio with https://github.com/chriskohlhoff/asio/commit/8bedc5aa3be1c47a6ab55d95f5ec8a5dce84f79c).
The PACKAGECONFIG option I've suggested earlier didn't work for you, because the boost PACKAGECONFIG isn't in thud's version of asio (sorry I was looking at newer meta-oe), it was added in Yocto 2.7 warrior with:
https://github.com/openembedded/meta-openembedded/commit/923d7082df3c70a597b05b5543e06cd8c00e3e7e
https://github.com/chriskohlhoff/asio/commit/8bedc5aa3be1c47a6ab55d95f5ec8a5dce84f79c
backporting PACKAGECONFIG works as well in 16.04

I've just rebuilt eloquent for qemux86 (with newer thud-draft with milestone 12 changes - but probably not affecting the image size much).
And yes, the image is bigger than the default IMAGE_ROOTFS_SIZE, but nothing was complaining here:
# $IMAGE_ROOTFS_SIZE [3 operations]
#   set /jenkins/mjansa/build/ros/ros2-eloquent-thud/openembedded-core/meta/conf/documentation.conf:220
#     [doc] "Defines the size in Kbytes for the generated image."
#   set /jenkins/mjansa/build/ros/ros2-eloquent-thud/openembedded-core/meta/conf/bitbake.conf:782
#     [_defaultval] "65536"
#   set? /jenkins/mjansa/build/ros/ros2-eloquent-thud/openembedded-core/meta/recipes-core/images/core-image-minimal.bb:11
#     "8192"
# pre-expansion value:
#   "8192"
IMAGE_ROOTFS_SIZE="8192"

# $IMAGE_FSTYPES [3 operations]
#   append /jenkins/mjansa/build/ros/ros2-eloquent-thud/openembedded-core/meta/conf/machine/include/qemu.inc:16
#     "tar.bz2 ext4"
#   set /jenkins/mjansa/build/ros/ros2-eloquent-thud/openembedded-core/meta/conf/documentation.conf:209
#     [doc] "Formats of root filesystem images that you want to have created."
#   set? /jenkins/mjansa/build/ros/ros2-eloquent-thud/openembedded-core/meta/conf/bitbake.conf:767
#     "tar.gz"
# pre-expansion value:
#   " tar.bz2 ext4"
IMAGE_FSTYPES=" tar.bz2 ext4"
#

grep IMAGESIZE buildhistory/images/qemux86/glibc/ros-image-core-eloquent/image-info.txt
IMAGESIZE = 240732

-rw-r--r-- 1 mjansa mjansa 310M May 20 16:42 tmp-glibc/deploy/images/qemux86/ros-image-core-eloquent-qemux86-20200520230606.rootfs.ext4

Please share
tmp-glibc/work/qemux86-oe-linux/ros-image-core/1.0-r0/temp/log.do_image_ext4
mine looks OK:
DEBUG: Executing python function set_image_size
DEBUG:<PHONE_NUMBER>00 = 240732 * 1.300000
DEBUG:<PHONE_NUMBER>00 = max(312951.600000, 8192)[312951.600000] + 1
DEBUG:<PHONE_NUMBER>00 = int(317047.600000)
DEBUG: 317048 = aligned(317048)
DEBUG: returning 317048
DEBUG: Python function set_image_size finished
DEBUG: Executing python function extend_recipe_sysroot
NOTE: Direct dependencies ...
NOTE: Installed into sysroot: []
NOTE: Skipping as already exists....
DEBUG: Python function extend_recipe_sysroot finished
DEBUG: Executing shell function do_image_ext4
DEBUG: Executing dd if=/dev/zero of=/jenkins/mjansa/build/ros/ros2-eloquent-thud/tmp-glibc/work/qemux86-oe-linux/ros-image-core/1.0-r0/deploy-ros-image-core-image-complete/ros-image-core-eloquent-qemux86-20200520230606.rootfs.ext4 seek=317048 count=0 bs=1024
0+0 records in
0+0 records out
0 bytes copied, 0.000224589 s, 0.0 kB/s
DEBUG: Actual Rootfs size:  240732      /jenkins/mjansa/build/ros/ros2-eloquent-thud/tmp-glibc/work/qemux86-oe-linux/ros-image-core/1.0-r0/rootfs
DEBUG: Actual Partion size: 324657152
DEBUG: Executing mkfs.ext4 -F -i 4096 /jenkins/mjansa/build/ros/ros2-eloquent-thud/tmp-glibc/work/qemux86-oe-linux/ros-image-core/1.0-r0/deploy-ros-image-core-image-complete/ros-image-core-eloquent-qemux86-20200520230606.rootfs.ext4 -d /jenkins/mjansa/build/ros/ros2-eloquent-thud/tmp-glibc/work/qemux86-oe-linux/ros-image-core/1.0-r0/rootfs
mke2fs 1.44.3 (10-July-2018)
64-bit filesystem support is not enabled.  The larger fields afforded by this feature enable full-strength checksumming.  Pass -O 64bit to rectify.
Discarding device blocks:   1024/317048^H^H^H^H^H^H^H^H^H^H^H^H^H             ^H^H^H^H^H^H^H^H^H^H^H^H^Hdone
Creating filesystem with 317048 1k blocks and 79560 inodes
Filesystem UUID: b043df19-0476-4970-b62e-f7b65b6343b9
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185

Allocating group tables:  0/39^H^H^H^H^H     ^H^H^H^H^Hdone
Writing inode tables:  0/39^H^H^H^H^H     ^H^H^H^H^Hdone
Creating journal (8192 blocks): done
Copying files into the device: done
Writing superblocks and filesystem accounting information:  0/39^H^H^H^H^H     ^H^H^H^H^Hdone

       12161 inodes used (15.29%, out of 79560)
          18 non-contiguous files (0.1%)
          44 non-contiguous directories (0.4%)
             # of inodes with ind/dind/tind blocks: 0/0/0
             Extent depth histogram: 11586/22
      235176 blocks used (74.18%, out of 317048)
           0 bad blocks
           0 large files

       10349 regular files
        1131 directories
           0 character device files
           0 block device files
           0 fifos
           6 links
         672 symbolic links (545 fast symbolic links)
           0 sockets
------------
       12158 files
DEBUG: Shell function do_image_ext4 finished

Here you go.
log.do_image.26934.gz

Oops.  Let's try that again.
log.do_image_ext4.gz

Strange, your image should be half size compared to mine, but still the partition should be big enough (153676k partition 121860k rootfs)
DEBUG: Actual Rootfs size:  121860      /home/ubuntu/separate-directory/BUILD-ros2-eloquent-thud/work/qemux86-oe-linux/ros-image-core/1.0-r0/rootfs
DEBUG: Actual Partion size: 157364224

Maybe it's because your image is so much smaller there isn't enough overhead, I'll rebuild with old thud-draft branch, to see what's missing in the image (but it built for me before as well, so it might be something missing only in our image).
biggest 20 packages in mine:
head -n 20 buildhistory/images/qemux86/glibc/ros-image-core-eloquent/installed-package-sizes.txt
24991   KiB     cpp
17239   KiB     python3-numpy
8539    KiB     python3-core
7103    KiB     systemd
6795    KiB     python3-pip
6131    KiB     udev-hwdb
5231    KiB     python3-misc
5143    KiB     libfastrtps1
4681    KiB     python3-lxml
3965    KiB     bluez5
3922    KiB     libc6
3814    KiB     python3-distutils
3608    KiB     libglib-2.0-0
3262    KiB     libpython3.7m1.0
3048    KiB     python3-docutils
2789    KiB     libmpfr6
2741    KiB     libcrypto1.1
2643    KiB     python3-setuptools
2524    KiB     shared-mime-info
2198    KiB     python3-pydoc

I thought I would test your change... especially since it would mean that I could go back to building on my development host instead of in a container (which makes things like grabbing log files from builds somewhat...interesting).
But, I see that your commit is on the thud-draft-ms12 branch of shr-project/meta-ros whereas the ros2-eloquent-thud.mcf file clones the thud-draft branch of ros/meta-ros.
I can go in and pull down and switch my meta-ros to your branch, but I wonder how many cans of how many worms I'd be pulling down with that.
I think I'll wait until the movie comes out. :-)
It seems to me that "ms12" must have something to do with "milestone 12".  When might we expect to see ms12 available?  Is there a timeline published somewhere?
In the mean time, as I now have a set of procedure for building this, I'm happy to close out this issue, unless you would like to keep it open for some reason.
Thanks again for your help.
--wpd

You can cherry-pick just that one commit, it doesn't depend on anything else from Milestone 12.
The milestones are defined in the wiki:
https://github.com/ros/meta-ros/wiki/Superflore-OE-Recipe-Generation-Scheme#milestone-12-implement-layer-version-3-phase-2
and you can see the changes also here in pull requests, I hope the changes for MS12 will be merged soon, but it doesn't depend on me.

That's a good idea.  I'll do that.
Do you want me to close this issue now?  Or leave it open for you to close sometime in the future?
--wpd

I did 2 more builds with current thud-draft in 18.04 and 16.04 and both are in 200+MB range
16.04: 222428  tmp-glibc/work/qemux86-oe-linux/ros-image-core/1.0-r0/rootfs/
If you're happy with your small image, then we can close this :).


get_obs_surface Returning Empty Data Due to Unused Variables with NaN Values

What is your issue?
The function get_obs_surface is returning data with no values in it. This issue is caused by the presence of variables filled with NaN values, which are not used in the process.
For example, in the case where there is a variable sttb full of NaNs, all the values are dropped because of that.
A quick fix is to set keep_missing=True, to skip the step that drops the NaNs. What is the best long term solution though?

Here's a suggestion for dealing with this within inversions:

Add capability to use things other than mf_repeatability in the model-data mismatch uncertainty calculation (see Issue #1120 )
Drop any variables that aren't being used prior to dropping the nans (within inversion code)

The function get_obs_surface is returning data with no values in it.

From this it also sounds like there's a second issue as well around get_obs_surface returning empty data which may not be helpful. As an alternative, this something that could be checked for and an error raised rather than returning the data? Would that be preferable?

check_nan_subset = ["mf", "mf_repeatability", "mf_variability", ...]
...
        ds_resampled = ds_resampled.dropna(dim="time", subset=check_nan_subset )

And we could make it so that subset could be specified by the user with some useful default as shown above.
The question would be: what defaults would be sensible for this and cover enough cases?

This sounds like a good plan to me. The default should definitely include mf - maybe that is the only one that is absolutely essential?

Did anyone have a quick example of the data that caused this problem by the way?

Would it be possible to get an example of this data? Would be useful to allow checks to be added for these issues.

I currently only have access to the object store. @joe-pitt, think this might be something you could help with?

An example would be the files in: /group/chem/acrg/obs_raw/EYE-AVE-PAR/EYE-AVE-PAR_2.2. Many of these have nans for things like LTR, STTB and Unc_n2o. At the moment the icos standardise function only loads unc_n2o (at one point I experimented with adding the others, hence sttb is mentioned in original post). See also this issue: https://github.com/openghg/openghg_inversions/issues/212


Syntax errors in props.conf regarding the dvc and name fields

The default/props.conf contains two syntax  errors regarding the dvc and name fields.
The line EVAL-dvc = interface as dvc should either be written as EVAL-dvc = interface or as FIELDALIAS-dvc = interface AS dvc
And likewise for EVAL-name = interface as name,it should either be written as EVAL-name = interface or as FIELDALIAS-name = interface AS name

I released v1.1.0 : https://splunkbase.splunk.com/app/5375


Adjust exit fee in GPO service

Add subgraph for indexing events
Modify exit fee based on the cost per message and price ratio

[x] Add tests

@Boyuan-Chen why is this work needed? can you spend more time in filling in the requirements for this PR?

Why is this needed?
How is this fixed here?
What is needed to deploy this and what are the effects to others/and other services?
And please put these into a GH PR template so that we always fill them out! Thanks

(and if your other PRs don't include the information above, fix them too please)


Could Px.Utils  and PxWebApi use the same Testing framework?

Hi @jsaarimaa and @likp
It seems Utils uses xUnit and Api uses MsTest. Could they agree on one ?  😊

Yes, they could :-)


Add support for '3bdf18008131fe580031b964050e010073b401d300000022' token

Reader name: Gemalto USB Smart Card Reader 0
ATR: 3BDF18008131FE580031B964050E010073B401D300000022
{
   "cards": [{
   	"atr": "3BDF18008131FE580031B964050E010073B401D300000022",
   	"name": "Slovak eID",
        "readOnly": true,
   	"driver": "39798896FC5DD6E2A96989718F694334275E0EAC"
   }],
   "drivers": [{
   	"id": "39798896FC5DD6E2A96989718F694334275E0EAC",
   	"name": "Slovak eID",
   	"file": {
   		"windows": {
                      "x86": "%PROGRAMFILES(X86)/eID klient/pkcs11_x64.dll",
                      "x64": "%PROGRAMFILES(X86)/eID klient/pkcs11_x86.dll"
                },
                "linux": {
                      "x86": "/usr/lib/eidklient/libpkcs11_sig_x64.so",
                      "x64": "/usr/lib/eidklient/libpkcs11_sig_x86.so"
                },
   		"osx": "/Applications/eIDklient.app/Contents/Pkcs11/libPkcs11.dylib"
   	}
   }]
}

Smart card ATR parsing 3BDF18008131FE580031B964050E010073B401D300000022

Adding log file from Fortify app.
fortify.log

@peponeska was kind enough to test this configuration and it seems it works.

ATR: 3BDF18008131FE580031B964050E010073B401D300000022 was added to card v1.0.14


Warps permission not overriding lower false permissions

When a user is in two groups with conflicting Nucleus warp permissions (ie: One group called default has the warp set to false, and one group called Staff has the warp set to true) the returned permission is always false. Regardless of weighting of the groups. Even in my admin role with the wildcard 'nucleus.warps' cant access the warp
Reproduction steps:
Give group 'default' weight 1 and set 'nucleus.warps.test' to false
Give group 'notdefault' weight 100 and set 'nucleus.warps.test' to true
Give user both groups parents, have user run '/warp test' note that they are being set to false despite the higher weighted group having the permission true

Does the user only inherit from those parents, or are there other groups that might interfere.
Setting this option to true might resolve the issue.
https://github.com/lucko/LuckPerms/blob/5577e3f59068a10d80201a6e07e60f620e5c654f/bukkit/src/main/resources/config.yml#L370-L381

I do not see this specific configuration in my config. Is it different per version? Apologizes for not specifying my version I'm on Spongeforge 1.12.2
I do see this:
inheritance-traversal-algorithm = "depth-first-pre-order"
Whats odd to me is that we have numerous perms that work and are set up in a similar fashion. The 'default' parent has it as false, and a higher weighted permission has it as true. It only seems to be nucleus warps this happens for.
To answer the question i can reproduce the issue with a user who ONLY inherits from those two parents.
To complicated the answer, my own permissions suffer from this as well, and my highest weighted
'admin' parent has the wild card 'nucleus.warps' which is suppose to allow me access to all warps, but i also get 'false' returned for any warps set to false in default.
Let me know if i can provide any further information! Thanks in advance for your time :)

LP does not add new nodes to existing configs. Just add the node from /resources/config. to your config


Pix preprocessing

If you haven't already, please read through our contributing guidelines before opening your PR
What is the purpose of this PR?
Adds in functionality to normalize each channel of image data data separately prior to pixel clustering. This helps to make sure that markers which have different intensity values are treated equally right from the beginning of the clustering process.
In addition, it changes from removing pixels that have 0 total counts to removing pixels in the bottom 5% of total counts from the image. This better matches the format of the data following rosetta, where there are very few true zeros.
Remaining issues
The testing I put together is very basic. @alex-l-kong, if you could go in and double check that everything is working as intended, and if needed adding more testing, that would be great. Also feel free to change the organization/saving structure if you think it would be better some other way. I didn't add any new tests for create_pixel_matrix, that will likely need to be checked as well.

@ngreenwald ok I'll take a look at this.

@ngreenwald just tested it on Candace's dataset on my end, had to make one change to account for all-zero channels in calculate_channel_percentiles but other than that it runs without error.

Okay cool, let me know once it's ready to look at

@ngreenwald just one clarification question, otherwise should be good to go.

@ngreenwald OK the above comment about testing pixel filtering with pixel_norm_val should be addressed now.

gonna test this out myself a bit more before merging it in to make sure nothing got missed

Looks good, once @cliu72 approves I'll merge it in


frontendModule.displayFrontendDefaults is not a function

How did you install the Amplify CLI?
npm install -g @aws-amplify/cli
If applicable, what version of Node.js are you using?
v19.7.0
Amplify CLI Version
11.0.3
What operating system are you using?
MacOS
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
None.  Amplify has been working fine for years, though I've not initiated a new project in a while
Describe the bug
amplify init fails
`% amplify init
Note: It is recommended to run this command from the root of your app directory
? Enter a name for the project chat
The following configuration will be applied:
Project information
| Name: test
| Environment: dev
| Default editor: Visual Studio Code
🛑 frontendModule.displayFrontendDefaults is not a function`
Expected behavior
amplify init successfully initializes new project
Reproduction steps
amplify init
Project Identifier
`amplify diagnose --send-report
Learn more at https://docs.amplify.aws/cli/reference/diagnose/
⠋ Creating Zip
No Amplify backend project files detected within this folder.
✖ Creating Zip`
Log output

# Put your logs below this line

Additional information
no files are created
Before submitting, please confirm:

[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

Hey @pawelzebrowski :wave: thanks for raising this! Unfortunately I am not able to reproduce this issue using the provided steps and Amplify CLI v11.0.3. Can you confirm the version you are using with amplify version? Do you experience this regardless of your working directory?

Closing due to inactivity. @pawelzebrowski if you are still experiencing this please reply back to this thread and we can re-open to investigate further


Add setVitalsUpdateFrequency to the doc

Add setVitalsUpdateFrequency function to the advanced configuration doc.
What does this PR do?
Adds setVitalsUpdateFrequency function and description to the advanced configuration doc.
Motivation
Parity with iOS doc.
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report

Merging #1015 (6625e4c) into master (8a558ac) will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1015      +/-   ##
==========================================
- Coverage   83.10%   83.06%   -0.04%
==========================================
  Files         267      267
  Lines        9079     9079
  Branches     1461     1461
==========================================
- Hits         7545     7541       -4
- Misses       1135     1138       +3
- Partials      399      400       +1

Impacted Files
Coverage Δ

...android/log/internal/logger/TelemetryLogHandler.kt
75.00% <0.00%> (-25.00%)
:arrow_down:

...ndroid/core/internal/persistence/file/EventMeta.kt
70.00% <0.00%> (-10.00%)
:arrow_down:

...id/webview/internal/rum/WebViewRumEventConsumer.kt
76.74% <0.00%> (-9.30%)
:arrow_down:

...rc/main/java/com/datadog/opentracing/DDTracer.java
56.07% <0.00%> (+0.42%)
:arrow_up:

...al/persistence/file/batch/BatchFileOrchestrator.kt
94.95% <0.00%> (+2.02%)
:arrow_up:


Tests failing, Travis doesn't handle HHVM

Just a reminder to myself that the tests are failing for no good reason -- Travis appears to no longer handle HHVM so we need to remove this from the Travis config file.  Hopefully I will get to this next week if nobody beats me to it.

Hi, alternatively you could add:
dist: trusty

To the config to continue HHVM support if that's what you want.
src: https://github.com/travis-ci/travis-ci/issues/7712

REmoved

Muchas gracias, @barryvdh


Prepare for v0.3.0 release

Release draft saved here

apollo-integration is not happy about the upgrade though. What do you guys usually do in this case? merge with the red status and fix after the snapshot is uploaded?

Hmm, seems like this is because apollo-integration (which test apollo-runtime) uses a project dependency instead of relying on the published artifact. But it does not do the same with the gradle plugin.
I think ideally, we would have apollo-integration also depend on a "project version" of the gradle plugin, but not super familiar with gradle plugins, and how to set that up.
in the meantime, seems like mergeing and fixing later is fine. The base branch commit passed all checks.

Can this be closed?  Should Readme be updated?

@felipecsl iirc, the way we do version bumps without having modules complain is bump VERSION_NAME and update the .travis file with
-x apollo-integration -x apollo-gradle-plugin:test
Then after the merge, re-enable tests in a new commit.


Command Line Interface

I've been working on a continuous integration pipeline that needs to perform very basic operations on an applications current version. The application's pipeline is currently a series of Shell commands strung together and while it would be possible to rework much of the pipeline as a Python script that uses python-semver as-is, extending python-semver with a command line interface ended up being a much lower level of effort.
While the interface I wrote is far from comprehensive, I was wondering if a CLI was something you'd be interested in having as part of the python-semver core package.
Here is a Gist of what I'd written for my immediate needs: https://gist.github.com/mattrohland/43b47bd079bd3d47adf674cbdbd970c3

@mattrohland yes, I'd definitely be interested in something like this and would be happy to get a PR!
One thing I should mention – I didn't quite follow Python's state-of-the-art on providing executables with packages, and not sure how to do it best to not irritate our users, not force them running the command in "sudo" etc. In Haskell packages, you can provide an executable description, and upon install it gets installed into the ~/.local/bin, then a user is free to add that to their PATH. I like the approach.
Anyways, if there's a similar popular way to handle things in Python and community is generally happy with it, I'd be glad to receive a PR adding the command-line functionality. Thanks!

Hello,
I also could do with CLI for semver and although the npm semver is there, I'd much more appreciate a Python script to avoid dependency on Javascript in my CI.
I'm happy to give a hand if need be?

@weakcamel if @mattrohland doesn't give his progress update in a day – feel free to take over the work, I'm sure it's not that big task to implement

Oops. I missed the previous update and then went AWOL myself - sorry about that.
Either is good really, as long as the requirements are defined in setup.py
Plain argparse sounds good as it would keep this module dependency-free, but in my personal opinion: if only dependencies are available on PyPI then whatever works.

Speaking of, I recalled a draft https://github.com/weakcamel/python-semver/blob/59_cli/semver-cli
feel free to repurpose it or completely disregard it :)

I personally like "click" http://click.pocoo.org/5/why/
Having tests for CLI http://click.pocoo.org/5/setuptools/#testing-the-script is something which should also be considered

upon install it gets installed into the ~/.local/bin, then a user is free to add that to their PATH. I like the approach

It's pretty easy with setuptools and the entry_points option to create console scripts automatically:

http://setuptools.readthedocs.io/en/latest/setuptools.html#automatic-script-creation

When installing, use pip install --user ... and the script goes in the user space rather than the system space, so no sudo required.
Just need a python script that wraps the main library functions and exposes arguments using something like argparse or click. I've used both, but have mostly gone back to argparse since it's in the standard library, and now that py2.6 is mostly out the door.

Okey-dokey. So, is anyone else taking a stab at this or is it free for taking?
+1 to the setuptools entry point in any case.

@weakcamel , contributions are highly appreciated!

Here is a possible CLI implementation with argparse
"""python-semver CLI
Semantic Versioning Command Line Interface"""

import argparse
import semver

def compare(a, b):
    return semver.compare(a, b)

def bump_major(a):
    return semver.bump_major(a)

def bump_minor(a):
    return semver.bump_minor(a)

def bump_patch(a):
    return semver.bump_patch(a)

def _get_version():
    return semver.__version__

def create_parser():
    parser = argparse.ArgumentParser(description='Semantic Versioning CLI.')
    parser.add_argument('--compare', nargs=2, metavar=('a', 'b'),
                        help='Compare version `a` with version `b`')
    parser.add_argument('--bump_major', nargs=1, metavar='a',
                        help='Bump major version `a`')
    parser.add_argument('--bump_minor', nargs=1, metavar='a',
                        help='Bump minor version `a`')
    parser.add_argument('--bump_patch', nargs=1, metavar='a',
                        help='Bump patch version `a`')
    parser.add_argument('-v', '--version', action='store_true',
                        help='Print python-semver version')
    return parser

def parse_args(args):
    if args.compare is not None:
        s = compare(*args.compare)
    elif args.bump_major is not None:
        s = bump_major(*args.bump_major)
    elif args.bump_minor is not None:
        s = bump_minor(*args.bump_minor)
    elif args.bump_patch is not None:
        s = bump_patch(*args.bump_patch)
    elif args.version is not None:
        s = _get_version()
    else:
        return
    return s

def main():
    parser = create_parser()
    args = parser.parse_args()
    s = parse_args(args)
    if s is None:
        parser.print_help()
    else:
        print(s)

if __name__ == '__main__':
    main()

and tests
def test_semver_cli():
    parser = create_parser()

    args = parser.parse_args(['-v'])
    v = parse_args(args)
    assert v == __version__

    args = parser.parse_args(['--compare', '1.0.0', '2.0.0'])
    v = parse_args(args)
    assert v == -1

    args = parser.parse_args(['--bump_major', '3.4.5'])
    v = parse_args(args)
    assert v == '4.0.0'

    args = parser.parse_args(['--bump_minor', '3.4.5'])
    v = parse_args(args)
    assert v == '3.5.0'

    args = parser.parse_args(['--bump_patch', '3.4.5'])
    v = parse_args(args)
    assert v == '3.4.6'

@scls19fr a few questions (I'll try to keep them to a few) as this would be my first contribution here:

is it ok if I run tests (with tox) on my machine only with py27 / py35 - or should I try and work out my environment to handle all of them (any tips here appreciated, my experience with tox is very limited)
should I keep all of the code in this 1 code + 1 test layout?

You can test locally on every environnement using simply
python setup.py test

or simply run manually tests and PEP8 checks using
py.test
flake8

Anyway CI will catch problem for you for others Python versions.
Not sure I understand correctly your last question.
You need to put cli in a separate file and tests in an other file test_semver.py.

Anyway CI will catch problem for you for others Python versions.

Great, thanks!

Not sure I understand correctly your last question.
You need to put cli in a separate file and tests in an other file test_semver.py.

Sorry for an unclear question yet your answer was spot on anyway :-)
To clarify, I've been wondering whether I should put the main inside semver.py (it surely would work too) or keep the CLI code separate. That answered it, thanks!

the reason why I prefer a separate file for CLI is that we have now doctests in semver.py

I would prefer to use the argparse module instead of the others. Reasons:

semver should NOT depend on external libraries. It should be a "standalone" library. We all know the issues when we depend on external libraries, don't we?
argparse is already included in the standard library; although it might be not perfect, it's there.
the CLI interface to create with argparse is not that difficult to use. Just a simple interface doesn't qualify it to depend on external libraries just for the sake of "being simpler" (but that's just my opinion, others my disagree).

You brought up different solutions where to put the CLI interface:

into the semver.py file
into another, separate file

However, we didn't discuss a third solution:

turn semver from a package into a module (meaning replace semver.py into a semver/ directory with __init__.py and other files).

With the third solution, you could add a cli.py file, adapt the setup.py to create a semver.py automatically through entry points and you're done. Would be probably a bit too much, wouldn't it? :wink:
Nevertheless, I would propose this CLI API (assuming we have a CLI script semver in the path):
$ semver bump major "1.2.3"
2.0.0
$ semver bump minor "1.2.3"
1.3.0
$ semver bump patch "1.2.3"
1.2.4
$ semver bump patch "x"
ERROR: x is not valid SemVer string
# => return value would be != 0
$ semver compare "1.3.0" "1.1.0"
1

It would be easy to extend, for example, adding a "match" subcommand or doing other fancy stuff.
My implementation is inspired by @scls19fr and would use the above lines:
"""
Semantic Versioning Command Line Interface
"""

import argparse
import sys

from semver import compare, parse_version_info

def parsecli(cliargs=None):
    """Parse CLI with :class:`argparse.ArgumentParser` and return parsed result

    :param list cliargs: Arguments to parse or None (=use sys.argv)
    :return: parsed CLI result and parser instance
    :rtype: tuple(:class:`argparse.Namespace`, :class:`argparse.ArgumentParser`)
    """
    parser = argparse.ArgumentParser(prog=__package__,
                                     description=__doc__)
    s = parser.add_subparsers(help="commands")

    # create compare subcommand
    parser_compare = s.add_parser("compare",
                                  help="Compares two versions"
                                  )
    parser_compare.set_defaults(which="compare")
    parser_compare.add_argument("version1",
                                help="First version"
                                )
    parser_compare.add_argument("version2",
                                help="First version"
                                )

    # create bump subcommand
    parser_bump = s.add_parser("bump",
                               help="Compares two versions"
                               )
    parser_bump.set_defaults(which="bump")
    sb = parser_bump.add_subparsers(title="Compare commands",
                                    dest="bump") #

    # Create subparsers for the bump subparser:
    for p in (sb.add_parser("major"),
              sb.add_parser("minor"),
              sb.add_parser("patch"),
              sb.add_parser("prerelease"),
              sb.add_parser("build")):
        p.add_argument("version",
                       help="Version to raise"
                       )

    args = parser.parse_args(args=cliargs)
    return args, parser

def process(args, parser):
    """Process the input from the CLI

    :param args: The parsed arguments
    :type args: :class:`argparse.Namespace`
    :param parser: the instantiated parser
    :type parser: :class:`argparse.ArgumentParser`
    """
    print("args:", args)
    if args.which == "bump":
        maptable = {'major': 'bump_major',
                    'minor': 'bump_minor',
                    'patch': 'bump_patch',
                    'prerelease': 'bump_prerelease',
                    'build': 'bump_build',
                    }
        ver = parse_version_info(args.version)
        # get the respective method and call it
        func = getattr(ver, maptable[args.bump])
        print(func())

    elif args.which == "compare":
        res = compare(args.version1, args.version2)
        print(res)

    return 0

def main(cliargs=None):
    """Entry point for the application script

    :param list cliargs: Arguments to parse or None (=use :class:`sys.argv`)
    :return: error code
    :rtype: int
    """
    try:
        args, parser = parsecli(cliargs)
        return process(args, parser)

    except ValueError as err:
        print("ERROR", err, file=sys.stderr)
        return 2

@scls19fr, @k-bx, @mattrohland
I've played with the argparse module a bit and implemented a "proof-of-concept". It's an idea.
Feel free to discuss it. :wink:
(For some reasons, there seems to be a conflict in the file docs/conf.py but I don't know why.)

Ok, I forgot to pull from the original, upstream repo, my fault. The conflict is fixed now.


Trying to follow the new doc to add css normalization

@mrchief
It seems CRA now has out of the box option for css normalization:
CRA Doc: Adding a CSS Reset
PR: Adds PostCSS Normalize #5810:
Maybe I missed something, but is adding this line all I need?

@import-normalize; /* bring in normalize.css styles */

Do I need some other configuration?
my App.css

@import-normalize; /* bring in normalize.css styles */
h2 {
  color: green;
}

my App.js

import React from 'react';
import './App.css';

function App() {
  return (
    <>

hello world

hello again

hello

hello

hello

      <button>button</button>
    </>
  );
}

export default App;

Is this a bug report?
Not sure.
Steps to Reproduce

add @import-normalize; in App.css

Expected Behavior

App has css normalization
Actual Behavior

Doesn't seem to have normalization
Environment
System:
OS: Windows 10
CPU: (8) x64 Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
Binaries:
Node: 10.15.3 - C:\Program Files\nodejs\node.EXE
Yarn: 1.10.1 - ~\AppData\Roaming\npm\yarn.CMD
npm: 6.4.1 - C:\Program Files\nodejs\npm.CMD
Browsers:
Edge: 42.17134.1.0
Internet Explorer: 11.0.17134.1
npmPackages:
react: ^16.8.6 => 16.8.6
react-dom: ^16.8.6 => 16.8.6
react-scripts: 3.0.0 => 3.0.0
npmGlobalPackages:
create-react-app: Not Found

Maybe I missed something, but is adding this line all I need?

Yes, that is all that you should be needing. You can optionally, add a browserslist section in your package.json for customizing the default behavior.
I'm not sure why it's not working for you. Let me try creating a new CRA and get back to you.

Here's my browserlist, it should be the default, I didn't modify it:
"browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },

I started with a brand new app and here's what I did:
npx create-react-app my-app
cd my-app
npm run build

serve -s build

Here's what I found:

The same results with just npm start as well

Finally, I tried with eject and got the same results.
As long as you're using v3 of react-scripts, it should work. Mine says v3.0.1 and I'm not sure if that makes a difference. I'd also suggest nuking your node_modules and doing a fresh install, maybe you're seeing old versions of react-scripts somehow.
If nothing helps, please upload a reproducible repo and I can take a look.

Hi @mrchief thanks, it does work. Sorry I wasn't familiar with postcss normalize and I thought it was a reset, because the doc says "reset", which I thought would remove all stylings. In the screenshot in my original post, the h1 is still big, and the ul still has bullets, so I thought it was not working

"Reset" is a very overloaded term in the industry. It brings back the memories of using reset.css which does what you described - removes all styles. It is one of the ways of resetting styles.
"normalize.css" is a gentler way of adding a reset css - it doesn't remove every single style - since most styles do work consistently across browsers. Rather, normalize, as its name suggests, only attempts to fix the "inconsistencies".
Each browser version has a different set of inconsistencies and that's where "browserlist" comes into the picture. By specifying the list of target browsers, you're essentially bringing only those resets that affect the target list and not everything in the universe.
This puts you in total control of what gets reset. Doing so leads to fewer surprises and reduces the need to apply default styles back.
If you follow the link to CSS Reset in the docs, which leads you to https://cssreset.com/ site, you can read up on more on this subject.

@mrchief Thanks so much, I'll close this one.


Extending the VM initialization

Please describe what you would like to see
It would be great to have a complete set of functions to set all options in the VM initialization struct. Currently, only the custom-script and hostname are supported (and NicConfigurations will be partially added in #249).
A complete list of fields can be found in the documentation for oVirts REST API in the Initialization struct section.
Checklist for parameters

[ ] active_directory_ou
[ ] authorized_ssh_keys
[ ] cloud_init
[ ] cloud_init_network_protocol
[ ] configuration
[ ] dns_search
[ ] dns_servers
[ ] domain
[ ] input_locale
[ ] org_name
[ ] regenerate_ids
[ ] regenerate_ssh_keys
[ ] root_password
[ ] system_locale
[ ] timezone
[ ] ui_language
[ ] user_locale
[ ] user_name
[ ] windows_license_key

Please describe the solution you'd like
All additional parameters should optional and only be configurable via builder:
initialization := NewInitialization("custom-script", "hostname").WithSomeParam("some-param");

Hi
@engelmi , I added boolean and string fields in vm.Initialization structure https://github.com/oVirt/go-ovirt-client/pull/253
I am thinking about cloud_init and cloud_init_network_protocol.
According https://www.ovirt.org/documentation/doc-REST_API_Guide/#types-initialization - this fields deprecated and maybe we should not implement this.
Implementation for vm.initialization.configuration.data field is complex for me. I try to make test for it and send some xml to ovirt (like in https://www.ovirt.org/documentation/doc-REST_API_Guide/#types-configuration example), but always i have (409) bad request. So i have no idea how to check this field.