Do not start services on AEMaaCS instances if they are not working there

In the documentation a number of features are listed already as "do not use them when you are deploying on AEM as a CloudService".
Right now this is not technically enforced, but with the RequireAem feature (see https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/b391b2455bb1aac018183ae4b76794379ebb8a59/bundle/src/main/java/com/adobe/acs/commons/util/RequireAem.java) it can be enforced quite easily.
Right now these features are tagged as "do not run within AEMaaCS":
bulk-workflow-manager
ensure-oak-index
healthchecks/smtp
healthchecks/status-emailer
healthchecks
json-event-logger
versioned-clientlibs
workflow-processes/assets-rendition-matter
workflow-processes/assets-watermark-process
workflow-processes/brand-portal
file-fetcher
mcp-tools/asset-ingestion/asset-ingestor
mcp-tools/asset-ingestion
mcp-tools/asset-ingestion/s3-asset-ingestor
mcp-tools/asset-ingestion/url-asset-ingestor
mcp-tools/refresh-folder-thumbnails
redirect-map-manager
remote-assets

(I have extracted this list from the official documentation)

see #2285

#2285 has been merged, closing this one.


Updating dags

How are you handling the updating of dags without restarting the other containers?  Distributing the dags to all the different containers (dashboard, workers, schedulers).

I solved it via ConfigMaps https://kubernetes.io/docs/user-guide/configmap/

@james-woods Can you elaborate a bit more on how you solved it via ConfigMaps? Do you build and version Docker containers that have the dags baked into them or do you use volumes or similar to get the code later?

@james-woods one problem I noticed is configmaps, when mounted as volumes, creates a folder called ..data and other folders with random names. The original file is just a symlink to those internal folders. Since airflow recursively scans the dags folder, you have the risk of getting the wrong path for each dag. This makes each pod have an unique path to the dag files. How did you manage to exclude the kube generated folders from the scan?

Hi sorry that I was not responding earlier,
I solved it via configmaps and I didnt care about the hidden files as Airflow is ignoring them anyway.
It's not the cleanest solution, but it works. I am not using relative path calls in my airflow code, so it's not a dealbreaker for me.
@martonpe the configmaps hold all my DAG related data, I only bake the container when upgrading airflow and if I work on the DAGs I use configmaps or secrets, if I have secret files or API keys.
There is also the possibility to link single files and preserving the original content of a directory described here, but I haven't tried that yet.

The hidden files I mentioned were created by Kubernete's atomic writer https://github.com/kubernetes/kubernetes/blob/master/pkg/volume/util/atomic_writer.go#L406. This is used by configmaps to write the data into volumes
Airflow recursively scans the dags folder so those duplicates are always included. The code uses os.walk to look for all .py files. I got it to work by adding an .airflowignore file with regex to ignore any path containing a directory starting with ...
The problem with those duplicates is the random names the parent directory can have. The scheduler will trigger a job which the workers can't see because their local paths are different. Since you are not facing this problem then maybe you are running airflow or kubernetes in a different version than mine. Or your workers are running in the same container than the scheduler.

@jrglee can you share your .airflowignore?

Hey @james-woods, here is my config
$ cat .airflowignore
.*/\.\..+/.+\.py

Hope it can be helpful.

What if I include a package along?
package includes init file?
error: "custom_operators/__init__.py" is not a valid key name for a ConfigMap: a valid config key must consist of alphanumeric characters, '-', '_' or '.' (e.g. 'key.name',  or 'KEY_NAME',  or 'key-name', regex used for validation is '[-._a-zA-Z0-9]+')

I think I will switch to baking the DAG's into the container soon, as having them as ConfigMaps sounds like an anti-pattern to me now. Airflow is following the principle of defining everything in the code  - so changing a DAG is a software change which should trigger a rebuild of the container in the Kubernetes paradigm. Also DAGs can have dependencies on other Python lib's - thus these need to be baked into the image anyway.

@james-woods Coming from app development this is what I ended up doing as well. The problem with this approach is that you need to kill and recreate the worker pods every time you roll out and there is no easy way to shut them down gracefully. Which is not a problem if you only have short running tasks and not a lot of them, but if you do...

ConfigMaps is not the ideal solution to convey DAGs. The best one is to have them directly within the container, but I agree this may not be ideal, since it requires a release management to automatically build new docker image on push and so on.
The issue is with python dependencies, they need to be installed, and in container, you don't have pip, only the python executable. I'll open a new issue about that

@call, any code/tutorials you could share about setting up the git-sync?


Make open_nudge_to_fine A-grid wind compatible

This PR ensures that open_nudge_to_fine is compatible with cases where we nudge to A-grid winds.  The bulk of the code changes in this PR pertain to refactoring the tests to support both the A-grid and D-grid cases.

[x] Tests added

Resolves # [JIRA-TAG]
Coverage reports (updated automatically):

test_unit: 61%

Thanks!


You are out of Sync with https://packaging.python.org/tutorials/packaging-projects/#configuring-your-project

Describe the issue briefly here.
You are out of Sync with https://packaging.python.org/tutorials/packaging-projects/#configuring-your-project:
Sorry but I am a newbie, and your pypi.org instructions are lacking.
Environment Versions

ubuntu 18.04
Python version: 3.6.5
pip version:  18.0
pip-tools version: 2.0.2

Steps to replicate

https://packaging.python.org/tutorials/packaging-projects/#configuring-your-project
Creating setup.py
copy boiler plate locally and edit

plus install_requires= not in link
Expected result
pip-compile
Actual result
/usr/lib/python3.6/distutils/dist.py:261: UserWarning: Unknown distribution option: 'long_description_content_type'
  warnings.warn(msg)

Please: update your documents to work with current Python Packaging User Guide
Many Thanks

Hello @kevindawson,
I gave a try with the example setup.py, plus an install_requires. I do get the same warning, but the pip-compile still seems to work. can you check if the requirements.txt was properly generated?

@vphilippon is this of any use to you
kevin@dual:~/git/pylsusb$ pip-compile
Traceback (most recent call last):
  File "/usr/local/bin/pip-compile", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/piptools/scripts/compile.py", line 166, in cli
    dist = run_setup(src_file)
  File "/usr/lib/python3.6/distutils/core.py", line 227, in run_setup
    script_name)
RuntimeError: 'distutils.core.setup()' was never called -- perhaps 'setup.py' is not a Distutils setup script?

$ pip list |grep click
$ pip3 list |grep click
click                  6.7

$ pip list |grep first
$ pip3 list |grep first
first                  2.0.1

$ pip list |grep six
six                    1.11.0
$ pip3 list |grep six
six                    1.11.0

$ pip list |grep pip-tools
$ pip3 list |grep pip-tools
pip-tools              2.0.2

I normal only use python3.6, but python2.7 install as part of distro ubuntu 18.04
many thanks

@vphilippon
why do I have to fill out a install_requires section
should your app not be doing that for me
if I put my package name in
    install_requires=[
        'my_project',
    ],

all I get:
Could not find a version that matches my_project
No versions found
Was https://pypi.python.org/simple reachable?

@kevindawson

why do I have to fill out a install_requires section
should your app not be doing that for me

pip-tools will not change or update your install_requires section, that is not its purpose.
The goal of pip-tools is to take a set of requirements (defined in a requirements.in file or in your setup.py file in the install_requires), perform a deep dependency resolution, then output a requirements.txt (the "standard" pip requirements file) which will contain a set of fully pinned requirements and versions that match those requirements. That file can then be used for reproducible installation of the python environment (typically, in a virtualenv).
I suggest that you read the following doc/articles:

https://packaging.python.org/discussions/install-requires-vs-requirements/
https://caremad.io/posts/2013/07/setup-vs-requirement/
https://nvie.com/posts/better-package-management/

As for the specific error you're getting now, my_projects was declared as a dependency of you current package, pip-tools is looking for is on pypi, and cannot find it. install_requires should contain the abstract dependencies of your project (i.e. what libs your project needs to work).

@vphilippon
Thanks for the reading list, until I have RTFM :))
later

I'm glad if that helped you out, have a nice day!


Implement Security for Backend Endpoints

Good example on how this is done on RetroQuest

Should this be done after ADFS?


Custom Products do not allow tracing

Created a custom Product that requires subscription and applied an API to it.  When I test the API using both the "Ocp-Apim-Trace" and "Ocp-Apim-Subscription-Key" values populated, I am not able to view the Trace information.  Instead I see the message, "Trace is not available because response does not contain Ocp-Apim-Trace-Location header."  If I remove the custom Product from the API and select either the Starter or Unlimited products, then tracing shows as expected.  If the custom Product and Unlimited/Starter products are both selected on the API, tracing does not work as expected (resulting in the same message mentioned above).

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0a3dd020-373d-9807-fcfd-30fedf005040
Version Independent ID: 34fe30d0-f225-ff8d-1f6b-2494f7aad42d
Content: Debug your APIs using request tracing in Azure API Management
Content Source: articles/api-management/api-management-howto-api-inspector.md
Service: api-management
GitHub Login: @vladvino
Microsoft Alias: apimpm

Hi @thedevolution Thank you for your feedback! We will review and update as appropriate.

I noticed the same about a week ago.  It was working for me before.

@thedevolution I tried this but I am not able to reproduce the issue. It is working for with custom products as well. Can you please try creating a new a new product and check if it is working.

Interesting.  I just tried this on a brand new APIM instance that I created today and it works as expected.  I tried on an APIM instance that I had created last week (or maybe the week before) and it still has issues.  Weird?!?!

@thedevolution Can you try deleting that product and create a new product with the same name and same  settings and check if it working like that

Still seems to be having issues on the older APIM instance.  I'll try some more scenarios tomorrow morning to see if I can hone in on what's going on.  Thx!

@thedevolution After deleting the earlier created product and recreating the new product giving you the same error ?
If yes, I would suggest you to file a support request to troubleshoot that issue as it is an environment specific.
Let me know If you have any other questions with this or should I go ahead and close this issue?

Deleting the product, the subscribers will loose their keys, right?  Is there a way to back and restore them If I delete and then create a new product?

The best solution if you face this problem is to use the Backup/Restore API Management Service (https://docs.microsoft.com/en-us/rest/api/apimanagement/apimanagementservice/restore).  I ran a backup of my older APIM instance that was having trace issues, deleted it and ran a restore on it.  Restoring keeps all the subscriber keys intact.  After doing the restore (which required me to create a new/empty APIM instance) I was able to trace all calls on all products.

Hi @7100SW Please explore using the restore feature as suggested by @thedevolution. If you continue to encounter issues with this, we recommend opening a support ticket at https://aka.ms/azsupt as a next step so that support engineers who have deeper insights to your environment can help unblock you.
In case your subscription doesn't carry a support plan, we are able to provide you with one-time free support ticket -- and If this, indeed, is the case, please send us an email with your subscription ID as well as the URL of this issue at AzCommunity at microsoft dotcom
We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.

Thank you for that answer.  I accept backup and restore as a solution.


use hnsw from submodule

Problem
Summary of changes
Checklist before requesting a review

[x] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.
[ ] Do we need to implement analytics? if so did you add the relevant metrics to the dashboard?
[ ] If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section.

Checklist before merging

[ ] Do not forget to reformat commit message to not include the above checklist

This PR is causing some problems when I switch between this branch and other branches:
error: The following untracked working tree files would be overwritten by checkout:
        pgxn/hnsw/Makefile
        pgxn/hnsw/README.md
        pgxn/hnsw/hnswalg.cpp
        pgxn/hnsw/hnswalg.h
        pgxn/hnsw/test/expected/knn.out
        pgxn/hnsw/test/sql/knn.sql
Please move or remove them before you switch branches.

Probably we should give a new name to the hnsw directory so that it won't cause trouble when checkout if this PR gets merged.

I'd say that we should deprecate and remove hnsw from the repo and threat it as any other extension (we build pg_embedding for compute-node image already).
What do you think @vadim2404?

I agree here. I'm not sure that we need to add one more submodule

Yeah I just realized that it's already in the compute node image so I opened https://github.com/neondatabase/neon/pull/4677 to directly remove it. I'm not sure if there will be any potential conflicts or incompatibility with that PR.


rake tasks fail with zero exit status

If there is an error in sphinx, the rake script still exits with zero. Makes it hard to use with anything that provides automation (capistrano, etc) because there is an assumption that failure will exit with non-zero, especially in a scenario where output is suppressed and you can't see the ERROR output.   Is this intentional behavior  or difficult in any way ? thanks :)

I have just pushed some changes that should take care of this for the most part. You can give it a spin using the develop branch:
gem 'thinking-sphinx', '~> 3.2.0',
  :git    => 'git://github.com/pat/thinking-sphinx.git',
  :branch => 'develop',
  :ref    => '21897c7259'

A few things to note: ts:start and ts:stop are now verbose by default. You can control the verbosity by using Rake's --quiet flag (for no Sphinx output, only TS info messages) or --silent (for no output at all beyond exceptions).
Also: sometimes Sphinx command-line tools return a status of zero even though there is a fatal error. There's nothing that changes this behaviour in TS (it will pass through whatever Sphinx's status code is, even if it is arguably misleading). Changing TS to be a little 'smarter' about this is probably infeasible because system calls (which are used in the verbose approaches) don't return their CLI output - thus, there's no easy way to scan for 'FATAL' being printed to the terminal (which would otherwise be my go-to string to match on).
Still, I figure this is all better than nothing! Do let me know if you notice any issues :)

Also, a touch further detail: I've noticed the zeros status codes when Sphinx fails to start due to already being running as determined by either the pid file being present, or the port being used. I guess it could be argued that they're not fatal errors due to the daemon actually being present.
Trying to run ts:index when there are no indices defined, or any task where the configuration file is somehow invalid, though, will fail with a status code of 1.


Monit support & cpu/memory process monitoring flags for export

This pull request includes two things:

monit templates (running off start-stop-daemon)
additional CLI options for "export"

      [--alert-on-mem="alpha=150 MB,bar=250 MB" or "200 MB"]
      [--restart-on-mem="alpha=200 MB,bar=300 MB" or "300 MB"]
      [--alert-on-cpu="alpha=20%,bar=28%" or "22%"]
      [--restart-on-cpu="alpha=25%,bar=30%" or "25%"]

These only do something for monit. I don't know what the equivalent changes are required for bluepill, etc.

cc @drnic @mhorbul @ddollar
This issue has been closed for a while, and it seems that the reason was that it was not accepted was that it getting cumbersome to send additional options through the CLI (via ENV or other "options" params).
Would anybody be against seeing this issue revisited with the assumption that such additional options or additions to the exported monit config be dealt with by simply using the --template parameter?
I think that approach may better follow the established export convention, and would certainly fit my use case.


U of T DSI SQL Assignment

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
making a schema/ERD for a small bookstore from scratch
What did you learn from the changes you have made?
how to make ERDs on Lucidchart, assess relationships between different tables, think about what data is necessary and judge when a table is too big and the data needs to be split into two tables
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
none
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
trying to think about what data is needed for a bookstore to keep records of, and how much info is too much info
How were these changes tested?
by drawing out the tables and showing the relationships
A reference to a related issue in your repository (if applicable)
n/a
Checklist

[x] I can confirm that my changes are working as intended

Assignment marked.


ValueError: batch_size should be a positive integer value, but got batch_size=0

I´m using API mode, "app.py" script.
The error comes from the "default_batch_size()" function, because torch.cuda.is_available()=True but GPU VRAM is too small and batch_size is set to zero.
def default_batch_size():
    if torch.cuda.is_available():
        batch_size = int(
            torch.cuda.get_device_properties(0).total_memory / 1024 / 1024 / 1000 * 0.3
        )
        if batch_size == 0:
            logging.warning("GPU VRAM is too small. Computing on CPU.")
    elif torch.backends.mps.is_available():
        # I don't know if there's an equivalent API so heuristically choosing bs=4
        batch_size = 4
    else:
        # don't know what a good value is here. Would not recommend to run on CPU
        batch_size = 1
        logging.warning("No GPU found. Conversion on CPU is very slow.")
    return batch_size

should be fixed now, thanks
(feel free to reopen if not)


Coronal vs sagittal view

This tool is very interesting but I'm wondering if the image stacks are assumed to be coronal sections? Our data is sagittal sections of a mouse brain. Thanks!

Never mind, that was a Neuroglancer display issue.


Fix nx lint web-ui

https://nx.app/runs/7V2HCfoYsoI

The error message mentions a missing npm library for eslint. The issue disappeared after sourcing dev-env.sh and running challenge-registry-prepare. I was sure this had already been done a long time ago. The issue is now gone.


Cursor mode is not fully implemented :/

Summary of feature
Cursor mode enum is there but it is not used yet nor is it changeable.
Comments
Basically I forgot to add this functionality in my previous PR.  :( This has still to be implemented. Shouldn't be much of work hopefully.

This will need an extra PR, so if you find time for one that'll be awesome! :)

Yeah I can do it. But most likely not in the next few days. I'll start the PR later if nobody had already done so.

The working group is all tied up in other projects atm, so you should be all clear to make a PR.


Fix primitiveArrayBecomeOneWayNoCopyHash

Complements VMMaker-dtl.415/Collections-eem.885. Since the latter change, Object >> #becomeForward: in Squeak 6.0Alpha has been broken in SqueakJS. As a consequence, also other important functionality such as ByteString >> #at:put: have not been working correctly.
With this change, primitive 248 (primitiveArrayBecomeOneWayNoCopyHash) is fixed again. The relevant logic was already there, just primitive 248 was still coupled to the old primitiveInvokeObjectAsMethod which is no longer up to date.

Before (Squeak Trunk #20134):

After:

Remaining questions:

[ ] I could not find any pointer on when old primitiveInvokeObjectAsMethod has been used in production for the last time (has it ever been used?). At least, TestObjectAsMethodsFunction works fine in Squeak 3.8, but I really did not find any user of the old primitive in the history of Squeak. Is it sure to replace this behavior for all images that use the V3 bytecode set (see the this.oldPrims check)?

Thanks a lot to @fniephaus for the very exc{ellent,lusive,iting} introduction to the SqueakJS development! :-)

I do not think this is correct. Primitive 248 was introduced specifically to not copy the hash.
Our primitiveArrayBecome defaults to copyHash = true unless that is supplied on the stack.
I would suggest to extend primitiveArrayBecome with another arg for the copyHash default. Then we call that as appropriate, e.g.
            case 72: return this.primitiveArrayBecome(argCount, false, true); // one way, copy hash
            case 128: return this.primitiveArrayBecome(argCount, true, true); // both ways, copy hash
            case 248: if (); else
                      return this.primitiveArrayBecome(argCount, true, false); // both ways, no copy hash
            case 249: return this.primitiveArrayBecome(argCount, false, true); // one way, opt. copy hash

My guess is that the tests succeed because SqueakJS does not support immutability yet. Or the test is wrong?

I do not think this is correct. Primitive 248 was introduced specifically to not copy the hash.
Our primitiveArrayBecome defaults to copyHash = true unless that is supplied on the stack.
I would suggest to extend primitiveArrayBecome with another arg for the copyHash default. Then we call that as appropriate, e.g.
            case 72: return this.primitiveArrayBecome(argCount, false, true); // one way, copy hash
            case 128: return this.primitiveArrayBecome(argCount, true, true); // both ways, copy hash
            case 248: if (); else
                      return this.primitiveArrayBecome(argCount, true, false); // both ways, no copy hash
            case 249: return this.primitiveArrayBecome(argCount, false, true); // one way, opt. copy hash

My guess is that the tests succeed because SqueakJS does not support immutability yet. Or the test is wrong?

Good catch, thank you!
I would like to fix the tests first to have a better definition of done for this PR :-) Because #testBecomeForwardIdentityHash also fails in my latest OSVM build, I assume that the behavior was changed in Collections-eem.885 (which already states: "Switch elementsForwardIdentityTo: to not copy the hash") but the tests have not yet been updated. I have just uploaded Tests-ct.447 to the inbox and will apply your proposed changes to this PR very soon!

Good catch, thank you!
I would like to fix the tests first to have a better definition of done for this PR :-) Because #testBecomeForwardIdentityHash also fails in my latest OSVM build, I assume that the behavior was changed in Collections-eem.885 (which already states: "Switch elementsForwardIdentityTo: to not copy the hash") but the tests have not yet been updated. I have just uploaded Tests-ct.447 to the inbox and will apply your proposed changes to this PR very soon!

1c7a7e3 + Tests-ct.447

1c7a7e3 + Tests-ct.447

Maybe worth moving the stack access out of primitiveArrayBecome?

Looks as if the most primitive implementations are responsible themselves for accessing the stack, so I was not sure whether this change would be consistent ... 🤔

Maybe worth moving the stack access out of primitiveArrayBecome?

Looks as if the most primitive implementations are responsible themselves for accessing the stack, so I was not sure whether this change would be consistent ... 🤔

@fniephaus: The argCount check guarding the stack access is infinitesimally cheaper than the actual become operation. Also,
IIRC primitive 249 can be called with 1 or 2 args. I would leave it as is.
@LinqLover: Good job overall!
However, I would prefer if you changed
copyHash &&= argCount > 1 ? this.stackBoolean(argCount-2) : true;

to
if (argCount > 1) copyHash = this.stackBoolean(argCount-2);

which is a lot simpler to read.
Secondly, it would be nice to adjust the comments to explain the difference between primitives:
case 72: return this.primitiveArrayBecome(argCount, false, true); // one way, do copy hash
case 128: return this.primitiveArrayBecome(argCount, true, true); // both ways, do copy hash
case 248: if (); else
          return this.primitiveArrayBecome(argCount, false, false); // one way, do not copy hash
case 249: return this.primitiveArrayBecome(argCount, false, true); // one way, opt. copy hash

@fniephaus: The argCount check guarding the stack access is infinitesimally cheaper than the actual become operation. Also,
IIRC primitive 249 can be called with 1 or 2 args. I would leave it as is.
@LinqLover: Good job overall!
However, I would prefer if you changed
copyHash &&= argCount > 1 ? this.stackBoolean(argCount-2) : true;

to
if (argCount > 1) copyHash = this.stackBoolean(argCount-2);

which is a lot simpler to read.
Secondly, it would be nice to adjust the comments to explain the difference between primitives:
case 72: return this.primitiveArrayBecome(argCount, false, true); // one way, do copy hash
case 128: return this.primitiveArrayBecome(argCount, true, true); // both ways, do copy hash
case 248: if (); else
          return this.primitiveArrayBecome(argCount, false, false); // one way, do not copy hash
case 249: return this.primitiveArrayBecome(argCount, false, true); // one way, opt. copy hash

@codefrau Thanks for the feedback! :-)

However, I would prefer if you changed
copyHash &&= argCount > 1 ? this.stackBoolean(argCount-2) : true;

to
if (argCount > 1) copyHash = this.stackBoolean(argCount-2);

which is a lot simpler to read.

Are you sure you don't mean this instead?
if (copyHash && argCount > 1) copyHash = this.stackBoolean(argCount-2);

Otherwise, we would not need the additional copyHash parameter at all ...

@codefrau Thanks for the feedback! :-)

However, I would prefer if you changed
copyHash &&= argCount > 1 ? this.stackBoolean(argCount-2) : true;

to
if (argCount > 1) copyHash = this.stackBoolean(argCount-2);

which is a lot simpler to read.

Are you sure you don't mean this instead?
if (copyHash && argCount > 1) copyHash = this.stackBoolean(argCount-2);

Otherwise, we would not need the additional copyHash parameter at all ...

Are you sure you don't mean this instead?
if (copyHash && argCount > 1) copyHash = this.stackBoolean(argCount-2);

Otherwise, we would not need the additional copyHash parameter at all ...

The optional argument (at argCount-2) overrides the default for copyHash, and the default comes from the primitive number.
Why wouldn't this work? It does not change the meaning of the older primitives, and the newer primitive is only ever called with one arg (but now would still work fine if called with two args).

Are you sure you don't mean this instead?
if (copyHash && argCount > 1) copyHash = this.stackBoolean(argCount-2);

Otherwise, we would not need the additional copyHash parameter at all ...

The optional argument (at argCount-2) overrides the default for copyHash, and the default comes from the primitive number.
Why wouldn't this work? It does not change the meaning of the older primitives, and the newer primitive is only ever called with one arg (but now would still work fine if called with two args).

Are you sure you don't mean this instead?
if (copyHash && argCount > 1) copyHash = this.stackBoolean(argCount-2);

Otherwise, we would not need the additional copyHash parameter at all ...

The optional argument (at argCount-2) overrides the default for copyHash, and the default comes from the primitive number.
Why wouldn't this work? It does not change the meaning of the older primitives, and the newer primitive is only ever called with one arg (but now would still work fine if called with two args).

Sure, if you don't mind that primitives 72, 248, and 249 will work identically when called with two arguments the refactoring is fine. :-)

Are you sure you don't mean this instead?
if (copyHash && argCount > 1) copyHash = this.stackBoolean(argCount-2);

Otherwise, we would not need the additional copyHash parameter at all ...

The optional argument (at argCount-2) overrides the default for copyHash, and the default comes from the primitive number.
Why wouldn't this work? It does not change the meaning of the older primitives, and the newer primitive is only ever called with one arg (but now would still work fine if called with two args).

Sure, if you don't mind that primitives 72, 248, and 249 will work identically when called with two arguments the refactoring is fine. :-)


chore: bdd-nh-import-1585106564 to 0.0.1

chore: Promote bdd-nh-import-1585106564 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Add a Gitter chat badge to README.md

mikebridge/Liquid.NET now has a Chat Room on Gitter
@mikebridge has just created a chat room. You can visit it here: https://gitter.im/mikebridge/Liquid.NET.
This pull-request adds this badge to your README.md:

If my aim is a little off, please let me know.
Happy chatting.
PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

Already done.


Fix intl compilation for php7.4.x in macOS

We should use withPkgConfigPath for icu4c in php7.4.x or compilation will failed.

Thanks, @markwu!


Initial support for protobufs

I thought that was the only way to do exceptions, not a Java dev 😅
I'll fix it


Roll Flutter Engine from 3fc40ca5beb9 to d9089879869f (1 revision)

https://github.com/flutter/engine/compare/3fc40ca5beb9...d9089879869f
2023-02-16<EMAIL_ADDRESS>Roll Skia from bb3d8185f067 to f24059cf165a (4 revisions) (flutter/engine#39670)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jacksongardner@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Add files via upload

Website https://zsbrybnik.pl/

@JustFoxx First stage of verification passed, official domain is zsbrybnik.pl as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.


add link_checker

Description
Added workflow to test urls in the docs
Referred this
Testing
Tested this workflow locally using nektos/act

Fixes #719
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.

[x] New feature (non-breaking change which adds functionality)
[x] Optimization (back-end change that speeds up the code)
[x] Bug fix (non-breaking change which fixes an issue)

Key checklist:

[x] No style issues: $ flake8
[ ] All tests pass: $ python run-tests.py --unit
[ ] The documentation builds: $ cd docs and then $ make clean; make html

You can run all three at once, using $ python run-tests.py --quick.
Further checks:

[x] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

I tried to test this workflow locally by using nketos/act and found that when I try to pass more than one extension in file-extension, in our case it's .rst and .md, it stops checking links and instead passes them as all correct.

I tried to test this workflow locally by using nketos/act and found that when I try to pass more than one extension in file-extension, in our case it's .rst and .md, it stops checking links and instead passes them as all correct.

I tried using https://github.com/urlstechie/urlchecker-action and found it better, it works with different file formats like .py, .rst, .md and it differentiates valid and invalid links using green and red.

I tried using https://github.com/urlstechie/urlchecker-action and found it better, it works with different file formats like .py, .rst, .md and it differentiates valid and invalid links using green and red.

Ok great. Would be good to also test the notebooks (.ipynb)

Ok great. Would be good to also test the notebooks (.ipynb)

Thanks @priyanshuone6 , I tried that workflow on my fork and I noticed the output from url_checker doesn't display colors, see https://github.com/tlestang/PyBaMM/runs/1782502527?check_suite_focus=true
This makes it impossible to separate valid links from broken links.
Another thing is that urls embedded links in SVG inside notebooks are picked up, but with a trailing backslash.
Example
/github/workspace/examples/notebooks/solution-data-and-processed-variables.ipynb
 --------------------------------------------------------------------------------
https://matplotlib.org/
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\
http://www.w3.org/1999/xlink\
http://www.w3.org/1999/02/22-rdf-syntax-ns#\

Could you maybe specify the exclude_patterns option to exclude such links for the search?

Thanks @priyanshuone6 , I tried that workflow on my fork and I noticed the output from url_checker doesn't display colors, see https://github.com/tlestang/PyBaMM/runs/1782502527?check_suite_focus=true
This makes it impossible to separate valid links from broken links.
Another thing is that urls embedded links in SVG inside notebooks are picked up, but with a trailing backslash.
Example
/github/workspace/examples/notebooks/solution-data-and-processed-variables.ipynb
 --------------------------------------------------------------------------------
https://matplotlib.org/
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\
http://www.w3.org/1999/xlink\
http://www.w3.org/1999/02/22-rdf-syntax-ns#\

Could you maybe specify the exclude_patterns option to exclude such links for the search?

@tlestang I searched about it and found that github actions do not currently support colors, but in the end, we do get all the invalid links together, look at line 1126
I will look into the embedded links in SVG and try to fix them using exclude pattern.

@tlestang I searched about it and found that github actions do not currently support colors, but in the end, we do get all the invalid links together, look at line 1126
I will look into the embedded links in SVG and try to fix them using exclude pattern.

This seems to be working now with a manageable number of broken links reported. Weirdly, some of the broken links seem to work fine, so I don't know why URL-checker is reporting they are broken. Let me know if you need help finding working links to replace the broken ones with

This seems to be working now with a manageable number of broken links reported. Weirdly, some of the broken links seem to work fine, so I don't know why URL-checker is reporting they are broken. Let me know if you need help finding working links to replace the broken ones with

You can ignore the failing benchmarks test. @tlestang can we exclude that test when it comes from a fork?

You can ignore the failing benchmarks test. @tlestang can we exclude that test when it comes from a fork?

Some urls starting with https://github.com/pybamm-team/PyBaMM/pull/ in CHANGELOG.md are being marked as invalid, I tested with different timeout settings to mark as many links valid as it can, and found 10 seconds to be perfect in terms of time and number of links.
Should I include https://github.com/pybamm-team/PyBaMM/pull/ in exclude_patterns or maybe exclude the whole CHANGELOG.md?
Also, should I remove the option to run this workflow in pull requests because every time someone will make a PR, and if it fails due to these unavoidable reasons, a red cross will appear in the PR due to that and it may confuse others?

Some urls starting with https://github.com/pybamm-team/PyBaMM/pull/ in CHANGELOG.md are being marked as invalid, I tested with different timeout settings to mark as many links valid as it can, and found 10 seconds to be perfect in terms of time and number of links.
Should I include https://github.com/pybamm-team/PyBaMM/pull/ in exclude_patterns or maybe exclude the whole CHANGELOG.md?
Also, should I remove the option to run this workflow in pull requests because every time someone will make a PR, and if it fails due to these unavoidable reasons, a red cross will appear in the PR due to that and it may confuse others?

Yes, perhaps the way to go is to only run the url check on the cron job. The odds of someone adding a broken link are very low, what usually happens is a link changes and we don't update it because (until now) there was no automatic way of checking all the links. That way, you can also increase the timeout and it doesn't matter if the cron job takes a while. I wouldn't be totally against excluding CHANGELOG.md either since it is usually pretty easy to see if those links are broken.
However, there are some links here that are actually broken and need to be fixed before this branch can be merged. Most of them are from changes to pybamm branch names or file structure and it should be fairly easy to find where the file is now (e.g. control+p in VSCode)

Yes, perhaps the way to go is to only run the url check on the cron job. The odds of someone adding a broken link are very low, what usually happens is a link changes and we don't update it because (until now) there was no automatic way of checking all the links. That way, you can also increase the timeout and it doesn't matter if the cron job takes a while. I wouldn't be totally against excluding CHANGELOG.md either since it is usually pretty easy to see if those links are broken.
However, there are some links here that are actually broken and need to be fixed before this branch can be merged. Most of them are from changes to pybamm branch names or file structure and it should be fairly easy to find where the file is now (e.g. control+p in VSCode)

@tinosulzer Could you please help me with these broken links
https://pybamm.readthedocs.io/en/latest/source/models/lead_acid/composite.html
https://github.com/pybamm-team/PyBaMM/blob/master/examples/notebooks/add-model.ipynb

@tinosulzer Could you please help me with these broken links
https://pybamm.readthedocs.io/en/latest/source/models/lead_acid/composite.html
https://github.com/pybamm-team/PyBaMM/blob/master/examples/notebooks/add-model.ipynb

First one should point here: https://pybamm.readthedocs.io/en/latest/source/models/lead_acid/higher_order.html
Second one should point here: https://github.com/pybamm-team/PyBaMM/tree/develop/examples/notebooks/Creating Models

First one should point here: https://pybamm.readthedocs.io/en/latest/source/models/lead_acid/higher_order.html
Second one should point here: https://github.com/pybamm-team/PyBaMM/tree/develop/examples/notebooks/Creating Models

I have changed the timeout back to 10 seconds, I observed that making it 20 seconds adds more valid links in the "not pass" category.
Please check this for the output

I have changed the timeout back to 10 seconds, I observed that making it 20 seconds adds more valid links in the "not pass" category.
Please check this for the output

@all-contributors add @priyanshuone6  for tests


updated drone trigger configs

@dustinmiller1337 drone is triggered only by master currently, which makes it hard to test branches. I updated it. Feel free to add to it. I try to eliminate unnecessary runs by being as specific as possible.

Looks good to me


Refactor /endpoint/{id} for API 1.0 stability

*Note: This PR is a diff to #3431. Please don't merge.
See #3280 for background
Summary of changes:

Refactor the endpoint data we present in the API. This reflects the Spec/Status scheme, groups subfields, and renames some fields and types.
The CEP controller is more resilient to invalid objects (which happen when we change the schema).

How to test (optional):
all tests should pass.

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please


Sector sleep scrap @timer trigger

This bug is very a pain on the shard and is causing MANY trouble... I was able to reproduce it on Vanilla setup (Last core + nolok script pack)
Here the method
1- Set sectorsleep to 1 on the ini
2- ADD this item on script and equip it
[ITEMDEF i_anneau_mage]
ID=0108a
TYPE=t_jewelry
name=Anneau de Wizardry

ON=@EQUIP
timer=5
return 1

on=@timer
serv.log 5 sec
timer=5
return 1

3- Equip the item and see the message "5 sec" on the console
4- Log out
5- Continu see the message each 5 sec in the console until sector sleep sleep the item
6- After 1 minute, no more message and I think it,s normal
7- Log in to account and check the timer of your ring  .xshow timer  (it's 0)
8- Set the timer to 5 manualy  .xtimer 5
9- When the 0 occur, the timer stay at 0 trigger never happen. (try step 8 100X it,s always the same)
I think it's not normal.......
Iknow If i unequip and equip the ring it work...  But when you have a memory with timer, you CAN'T unequip/equip

Second question, at the step 5, it's normal the timer continue if I am loged out?

It was the same bug with Worldgem before the last commit.

Second question, at the step 5, it's normal the timer continue if I am loged out?

of.course.
linger time.
the pg is still in world.

Good report, the code and the steps make much easier to track the bug and work locally

IMPECCABLE!!  Thx


Overwatch console now displays marine pronouns

About the PR

The overwatch console now shows the pronouns of each marine under their name.
(The name becoming left-aligned when the marine has no helmet was already a thing, I opted not to change that since its easier to read anyway.)
Why / Balance

There is no way to examine a marine from their helmet cameras (unless your character is close enough to do so normally) and so you can't find their pronouns during overwatch. Staff officers would either have to always use they/them or make an assumption based on the marine's hair style or color pattern which is not ideal.
With this change it's now much harder to accidentally misgender someone on the ground from lower orbit.
Technical details

Added a single locale file that OverwatchConsoleBui.cs now uses.
Media

Requirements

[x] I have read and am following the Pull Request and Changelog Guidelines.
[x] I have added media to this PR or it does not require an ingame showcase.

Breaking changes

Changelog

:cl: snebl

add: The overwatch console now displays the pronouns of each marine.

Do not merge yet, just realized there is a bug where the name column does not line up with the other columns now.

branch is COOKED sorry i will make a new PR


 Please upgrade your Python as Python 3.4 won't be maintained after March 2019 (cf PEP 429).
Collecting Flask==0.10.1
Downloading https://files.pythonhosted.org/packages/db/9c/149ba60c47d107f85fe52564133348458f093dd5e6b57a5b60ab9ac517bb/Flask-0.10.1.tar.gz (544kB)
Collecting uWSGI==2.0.8
Downloading https://files.pythonhosted.org/packages/4c/3f/7276c97817bd710aada1e3e69f45d6eed11fc625474a34f57799f762d77f/uwsgi-2.0.8.tar.gz (775kB)
Collecting requests==2.5.1
Downloading https://files.pythonhosted.org/packages/54/9a/ee6051b19c62728d5467dead279c532798c287e39c3bc8becb1cfa9f525a/requests-2.5.1-py2.py3-none-any.whl (464kB)
Collecting redis==2.10.3
Downloading https://files.pythonhosted.org/packages/37/a8/42e2f2785339cd0a4b4f42316b767ccbf68acf05eb1ba20d737599cccecd/redis-2.10.3.tar.gz (86kB)
Collecting Werkzeug>=0.7 (from Flask==0.10.1)
Downloading https://files.pythonhosted.org/packages/ce/42/3aeda98f96e85fd26180534d36570e4d18108d62ae36f87694b476b83d6f/Werkzeug-0.16.0-py2.py3-none-any.whl (327kB)
Collecting Jinja2>=2.4 (from Flask==0.10.1)
Downloading https://files.pythonhosted.org/packages/65/e0/eb35e762802015cab1ccee04e8a277b03f1d8e53da3ec3106882ec42558b/Jinja2-2.10.3-py2.py3-none-any.whl (125kB)
Collecting itsdangerous>=0.21 (from Flask==0.10.1)
Downloading https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->Flask==0.10.1)
Downloading https://files.pythonhosted.org/packages/99/c9/5d5dcf2aa90f1d4500e92467a04f63b3708ee6e5764b40b2445e767ab8dc/MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl
Building wheels for collected packages: Flask, uWSGI, redis
Building wheel for Flask (setup.py): started
Building wheel for Flask (setup.py): finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/e1/f2/be/1c4f307a41aad7e632f79c0242a2714ecde24b663da3519665
Building wheel for uWSGI (setup.py): started
Building wheel for uWSGI (setup.py): finished with status 'error'
Complete output from command /usr/local/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-ixl4b_f5/uWSGI/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/pip-wheel-awz3mxw_ --python-tag cp34:
running bdist_wheel
running build
running build_py
creating build
creating build/lib
copying uwsgidecorators.py -> build/lib
installing to build/bdist.linux-x86_64/wheel
running install
using profile: buildconf/default.ini
detected include path: ['/usr/lib/gcc/x86_64-linux-gnu/6/include', '/usr/local/include', '/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed', '/usr/include/x86_64-linux-gnu', '/usr/include']
Patching "bin_name" to properly install_scripts dir
detected CPU cores: 4
configured CFLAGS: -O2 -I. -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-format -Wno-format-security -DUWSGI_HAS_IFADDRS -DUWSGI_ZLIB -DUWSGI_LOCK_USE_MUTEX -DUWSGI_EVENT_USE_EPOLL -DUWSGI_EVENT_TIMER_USE_TIMERFD -DUWSGI_EVENT_FILEMONITOR_USE_INOTIFY  -DUWSGI_PCRE -DUWSGI_ROUTING -DUWSGI_VERSION=""2.0.8"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="0" -DUWSGI_VERSION_MINOR="8" -DUWSGI_VERSION_REVISION="0" -DUWSGI_VERSION_CUSTOM="""" -DUWSGI_YAML -DUWSGI_SSL -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=""."" -DUWSGI_DECLARE_EMBEDDED_PLUGINS="UDEP(python);UDEP(gevent);UDEP(ping);UDEP(cache);UDEP(nagios);UDEP(rrdtool);UDEP(carbon);UDEP(rpc);UDEP(corerouter);UDEP(fastrouter);UDEP(http);UDEP(ugreen);UDEP(signal);UDEP(syslog);UDEP(rsyslog);UDEP(logsocket);UDEP(router_uwsgi);UDEP(router_redirect);UDEP(router_basicauth);UDEP(zergpool);UDEP(redislog);UDEP(mongodblog);UDEP(router_rewrite);UDEP(router_http);UDEP(logfile);UDEP(router_cache);UDEP(rawrouter);UDEP(router_static);UDEP(sslrouter);UDEP(spooler);UDEP(cheaper_busyness);UDEP(symcall);UDEP(transformation_tofile);UDEP(transformation_gzip);UDEP(transformation_chunked);UDEP(transformation_offload);UDEP(router_memcached);UDEP(router_redis);UDEP(router_hash);UDEP(router_expires);UDEP(router_metrics);UDEP(transformation_template);UDEP(stats_pusher_socket);" -DUWSGI_LOAD_EMBEDDED_PLUGINS="ULEP(python);ULEP(gevent);ULEP(ping);ULEP(cache);ULEP(nagios);ULEP(rrdtool);ULEP(carbon);ULEP(rpc);ULEP(corerouter);ULEP(fastrouter);ULEP(http);ULEP(ugreen);ULEP(signal);ULEP(syslog);ULEP(rsyslog);ULEP(logsocket);ULEP(router_uwsgi);ULEP(router_redirect);ULEP(router_basicauth);ULEP(zergpool);ULEP(redislog);ULEP(mongodblog);ULEP(router_rewrite);ULEP(router_http);ULEP(logfile);ULEP(router_cache);ULEP(rawrouter);ULEP(router_static);ULEP(sslrouter);ULEP(spooler);ULEP(cheaper_busyness);ULEP(symcall);ULEP(transformation_tofile);ULEP(transformation_gzip);ULEP(transformation_chunked);ULEP(transformation_offload);ULEP(router_memcached);ULEP(router_redis);ULEP(router_hash);ULEP(router_expires);ULEP(router_metrics);ULEP(transformation_template);ULEP(stats_pusher_socket);"
*** uWSGI compiling server core ***
[thread 1][gcc -pthread] core/utils.o
[thread 3][gcc -pthread] core/protocol.o
[thread 2][gcc -pthread] core/socket.o
[thread 0][gcc -pthread] core/logging.o
[thread 3][gcc -pthread] core/master.o
[thread 0][gcc -pthread] core/master_utils.o
[thread 2][gcc -pthread] core/emperor.o
[thread 3][gcc -pthread] core/notify.o
[thread 3][gcc -pthread] core/mule.o
[thread 0][gcc -pthread] core/subscription.o
[thread 1][gcc -pthread] core/stats.o
[thread 3][gcc -pthread] core/sendfile.o
[thread 2][gcc -pthread] core/async.o
[thread 3][gcc -pthread] core/master_checks.o
[thread 1][gcc -pthread] core/fifo.o
[thread 0][gcc -pthread] core/offload.o
[thread 2][gcc -pthread] core/io.o
[thread 1][gcc -pthread] core/static.o
[thread 3][gcc -pthread] core/websockets.o
[thread 0][gcc -pthread] core/spooler.o
[thread 3][gcc -pthread] core/snmp.o
[thread 1][gcc -pthread] core/exceptions.o
[thread 2][gcc -pthread] core/config.o
[thread 0][gcc -pthread] core/setup_utils.o
[thread 3][gcc -pthread] core/clock.o
[thread 1][gcc -pthread] core/init.o
[thread 0][gcc -pthread] core/buffer.o
[thread 3][gcc -pthread] core/reader.o
[thread 2][gcc -pthread] core/writer.o
[thread 1][gcc -pthread] core/alarm.o
[thread 0][gcc -pthread] core/cron.o
[thread 3][gcc -pthread] core/hooks.o
[thread 2][gcc -pthread] core/plugins.o
[thread 1][gcc -pthread] core/lock.o
[thread 0][gcc -pthread] core/cache.o
[thread 3][gcc -pthread] core/daemons.o
[thread 2][gcc -pthread] core/errors.o
[thread 1][gcc -pthread] core/hash.o
[thread 2][gcc -pthread] core/master_events.o
[thread 1][gcc -pthread] core/chunked.o
[thread 3][gcc -pthread] core/queue.o
[thread 2][gcc -pthread] core/event.o
[thread 1][gcc -pthread] core/signal.o
[thread 3][gcc -pthread] core/strings.o
[thread 0][gcc -pthread] core/progress.o
[thread 2][gcc -pthread] core/timebomb.o
[thread 0][gcc -pthread] core/ini.o
[thread 1][gcc -pthread] core/fsmon.o
[thread 3][gcc -pthread] core/mount.o
[thread 2][gcc -pthread] core/metrics.o
[thread 0][gcc -pthread] core/plugins_builder.o
[thread 1][gcc -pthread] core/sharedarea.o
[thread 3][gcc -pthread] core/rpc.o
[thread 0][gcc -pthread] core/gateway.o
[thread 3][gcc -pthread] core/loop.o
[thread 1][gcc -pthread] core/cookie.o
[thread 0][gcc -pthread] core/querystring.o
[thread 2][gcc -pthread] core/rb_timers.o
[thread 3][gcc -pthread] core/transformations.o
[thread 1][gcc -pthread] core/uwsgi.o
[thread 0][gcc -pthread] proto/base.o
[thread 3][gcc -pthread] proto/uwsgi.o
[thread 2][gcc -pthread] proto/http.o
[thread 0][gcc -pthread] proto/fastcgi.o
[thread 3][gcc -pthread] proto/scgi.o
[thread 2][gcc -pthread] proto/puwsgi.o
[thread 3][gcc -pthread] lib/linux_ns.o
[thread 0][gcc -pthread] core/zlib.o
[thread 2][gcc -pthread] core/regexp.o
[thread 0][gcc -pthread] core/routing.o
[thread 3][gcc -pthread] core/yaml.o
[thread 2][gcc -pthread] core/ssl.o
[thread 3][gcc -pthread] core/legion.o
[thread 2][gcc -pthread] core/xmlconf.o
[thread 1][gcc -pthread] core/dot_h.o
[thread 1][gcc -pthread] core/config_py.o
*** uWSGI compiling embedded plugins ***
[thread 1][gcc -pthread] plugins/python/python_plugin.o
[thread 2][gcc -pthread] plugins/python/pyutils.o
[thread 0][gcc -pthread] plugins/python/pyloader.o
[thread 3][gcc -pthread] plugins/python/wsgi_handlers.o
[thread 2][gcc -pthread] plugins/python/wsgi_headers.o
[thread 3][gcc -pthread] plugins/python/wsgi_subhandler.o
[thread 0][gcc -pthread] plugins/python/web3_subhandler.o
[thread 2][gcc -pthread] plugins/python/pump_subhandler.o
[thread 1][gcc -pthread] plugins/python/gil.o
[thread 3][gcc -pthread] plugins/python/uwsgi_pymodule.o
[thread 0][gcc -pthread] plugins/python/profiler.o
[thread 1][gcc -pthread] plugins/python/symimporter.o
[thread 2][gcc -pthread] plugins/python/tracebacker.o
[thread 0][gcc -pthread] plugins/python/raw.o
[thread 0][gcc -pthread] plugins/gevent/gevent.o
[thread 2][gcc -pthread] plugins/gevent/hooks.o
[thread 1][gcc -pthread] plugins/ping/ping_plugin.o
[thread 1][gcc -pthread] plugins/cache/cache.o
[thread 2][gcc -pthread] plugins/nagios/nagios.o
[thread 0][gcc -pthread] plugins/rrdtool/rrdtool.o
[thread 1][gcc -pthread] plugins/carbon/carbon.o
[thread 2][gcc -pthread] plugins/rpc/rpc_plugin.o
[thread 0][gcc -pthread] plugins/corerouter/cr_common.o
[thread 3][gcc -pthread] plugins/corerouter/cr_map.o
[thread 1][gcc -pthread] plugins/corerouter/corerouter.o
[thread 0][gcc -pthread] plugins/fastrouter/fastrouter.o
plugins/corerouter/cr_map.c: In function ‘uwsgi_cr_map_use_static_nodes’:
plugins/corerouter/cr_map.c:154:5: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation]
if (!next_node)
^~
plugins/corerouter/cr_map.c:157:6: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
while (tmp_node != next_node) {
^~~~~
[thread 2][gcc -pthread] plugins/http/http.o
cc1: all warnings being treated as errors

Running setup.py clean for uWSGI
Failed building wheel for uWSGI
Building wheel for redis (setup.py): started
Building wheel for redis (setup.py): finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/d4/92/f1/9c5f585c790d318516a619bbb893e02c16c75107b130cf8f03
Successfully built Flask redis
Failed to build uWSGI
Installing collected packages: Werkzeug, MarkupSafe, Jinja2, itsdangerous, Flask, uWSGI, requests, redis
Running setup.py install for uWSGI: started
Running setup.py install for uWSGI: finished with status 'error'
Complete output from command /usr/local/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-ixl4b_f5/uWSGI/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-record-kig9edot/install-record.txt --single-version-externally-managed --compile:
running install
using profile: buildconf/default.ini
detected include path: ['/usr/lib/gcc/x86_64-linux-gnu/6/include', '/usr/local/include', '/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed', '/usr/include/x86_64-linux-gnu', '/usr/include']
Patching "bin_name" to properly install_scripts dir
detected CPU cores: 4
configured CFLAGS: -O2 -I. -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-format -Wno-format-security -DUWSGI_HAS_IFADDRS -DUWSGI_ZLIB -DUWSGI_LOCK_USE_MUTEX -DUWSGI_EVENT_USE_EPOLL -DUWSGI_EVENT_TIMER_USE_TIMERFD -DUWSGI_EVENT_FILEMONITOR_USE_INOTIFY  -DUWSGI_PCRE -DUWSGI_ROUTING -DUWSGI_VERSION=""2.0.8"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="0" -DUWSGI_VERSION_MINOR="8" -DUWSGI_VERSION_REVISION="0" -DUWSGI_VERSION_CUSTOM="""" -DUWSGI_YAML -DUWSGI_SSL -I/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR=""."" -DUWSGI_DECLARE_EMBEDDED_PLUGINS="UDEP(python);UDEP(gevent);UDEP(ping);UDEP(cache);UDEP(nagios);UDEP(rrdtool);UDEP(carbon);UDEP(rpc);UDEP(corerouter);UDEP(fastrouter);UDEP(http);UDEP(ugreen);UDEP(signal);UDEP(syslog);UDEP(rsyslog);UDEP(logsocket);UDEP(router_uwsgi);UDEP(router_redirect);UDEP(router_basicauth);UDEP(zergpool);UDEP(redislog);UDEP(mongodblog);UDEP(router_rewrite);UDEP(router_http);UDEP(logfile);UDEP(router_cache);UDEP(rawrouter);UDEP(router_static);UDEP(sslrouter);UDEP(spooler);UDEP(cheaper_busyness);UDEP(symcall);UDEP(transformation_tofile);UDEP(transformation_gzip);UDEP(transformation_chunked);UDEP(transformation_offload);UDEP(router_memcached);UDEP(router_redis);UDEP(router_hash);UDEP(router_expires);UDEP(router_metrics);UDEP(transformation_template);UDEP(stats_pusher_socket);" -DUWSGI_LOAD_EMBEDDED_PLUGINS="ULEP(python);ULEP(gevent);ULEP(ping);ULEP(cache);ULEP(nagios);ULEP(rrdtool);ULEP(carbon);ULEP(rpc);ULEP(corerouter);ULEP(fastrouter);ULEP(http);ULEP(ugreen);ULEP(signal);ULEP(syslog);ULEP(rsyslog);ULEP(logsocket);ULEP(router_uwsgi);ULEP(router_redirect);ULEP(router_basicauth);ULEP(zergpool);ULEP(redislog);ULEP(mongodblog);ULEP(router_rewrite);ULEP(router_http);ULEP(logfile);ULEP(router_cache);ULEP(rawrouter);ULEP(router_static);ULEP(sslrouter);ULEP(spooler);ULEP(cheaper_busyness);ULEP(symcall);ULEP(transformation_tofile);ULEP(transformation_gzip);ULEP(transformation_chunked);ULEP(transformation_offload);ULEP(router_memcached);ULEP(router_redis);ULEP(router_hash);ULEP(router_expires);ULEP(router_metrics);ULEP(transformation_template);ULEP(stats_pusher_socket);"
*** uWSGI compiling server core ***
core/utils.o is up to date
core/protocol.o is up to date
core/socket.o is up to date
core/logging.o is up to date
core/master.o is up to date
core/master_utils.o is up to date
core/emperor.o is up to date
core/notify.o is up to date
core/mule.o is up to date
core/subscription.o is up to date
core/stats.o is up to date
core/sendfile.o is up to date
core/async.o is up to date
core/master_checks.o is up to date
core/fifo.o is up to date
core/offload.o is up to date
core/io.o is up to date
core/static.o is up to date
core/websockets.o is up to date
core/spooler.o is up to date
core/snmp.o is up to date
core/exceptions.o is up to date
core/config.o is up to date
core/setup_utils.o is up to date
core/clock.o is up to date
core/init.o is up to date
core/buffer.o is up to date
core/reader.o is up to date
core/writer.o is up to date
core/alarm.o is up to date
core/cron.o is up to date
core/hooks.o is up to date
core/plugins.o is up to date
core/lock.o is up to date
core/cache.o is up to date
core/daemons.o is up to date
core/errors.o is up to date
core/hash.o is up to date
core/master_events.o is up to date
core/chunked.o is up to date
core/queue.o is up to date
core/event.o is up to date
core/signal.o is up to date
core/strings.o is up to date
core/progress.o is up to date
core/timebomb.o is up to date
core/ini.o is up to date
core/fsmon.o is up to date
core/mount.o is up to date
core/metrics.o is up to date
core/plugins_builder.o is up to date
core/sharedarea.o is up to date
core/rpc.o is up to date
core/gateway.o is up to date
core/loop.o is up to date
core/cookie.o is up to date
core/querystring.o is up to date
core/rb_timers.o is up to date
core/transformations.o is up to date
core/uwsgi.o is up to date
proto/base.o is up to date
proto/uwsgi.o is up to date
proto/http.o is up to date
proto/fastcgi.o is up to date
proto/scgi.o is up to date
proto/puwsgi.o is up to date
lib/linux_ns.o is up to date
core/zlib.o is up to date
core/regexp.o is up to date
core/routing.o is up to date
core/yaml.o is up to date
core/ssl.o is up to date
core/legion.o is up to date
core/xmlconf.o is up to date
[thread 2][gcc -pthread] core/dot_h.o
[thread 1][gcc -pthread] core/config_py.o
*** uWSGI compiling embedded plugins ***
plugins/python/python_plugin.o is up to date
plugins/python/pyutils.o is up to date
plugins/python/pyloader.o is up to date
plugins/python/wsgi_handlers.o is up to date
plugins/python/wsgi_headers.o is up to date
plugins/python/wsgi_subhandler.o is up to date
plugins/python/web3_subhandler.o is up to date
plugins/python/pump_subhandler.o is up to date
plugins/python/gil.o is up to date
plugins/python/uwsgi_pymodule.o is up to date
plugins/python/profiler.o is up to date
plugins/python/symimporter.o is up to date
plugins/python/tracebacker.o is up to date
plugins/python/raw.o is up to date
plugins/gevent/gevent.o is up to date
plugins/gevent/hooks.o is up to date
plugins/ping/ping_plugin.o is up to date
plugins/cache/cache.o is up to date
plugins/nagios/nagios.o is up to date
plugins/rrdtool/rrdtool.o is up to date
plugins/carbon/carbon.o is up to date
plugins/rpc/rpc_plugin.o is up to date
plugins/corerouter/cr_common.o is up to date
[thread 0][gcc -pthread] plugins/corerouter/cr_map.o
plugins/corerouter/corerouter.o is up to date
plugins/fastrouter/fastrouter.o is up to date
plugins/http/http.o is up to date
[thread 3][gcc -pthread] plugins/http/keepalive.o
[thread 2][gcc -pthread] plugins/http/https.o
[thread 1][gcc -pthread] plugins/http/spdy3.o
plugins/corerouter/cr_map.c: In function ‘uwsgi_cr_map_use_static_nodes’:
plugins/corerouter/cr_map.c:154:5: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation]
if (!next_node)
^~
plugins/corerouter/cr_map.c:157:6: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
while (tmp_node != next_node) {
^~~~~
cc1: all warnings being treated as errors
----------------------------------------

Command "/usr/local/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-ixl4b_f5/uWSGI/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-record-kig9edot/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-ixl4b_f5/uWSGI/
You are using pip version 19.0.3, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
ERROR: Service 'identidock' failed to build: The command '/bin/sh -c pip install Flask==0.10.1 uWSGI==2.0.8 requests==2.5.1 redis==2.10.3' returned a non-zero code: 1

The same thing

Try changing the uWSGI=2.0.8 in the Dockerfile to uWSGI=2.0.19. So:
RUN pip install Flask==0.10.1 uWSGI==2.0.8 requests==2.5.1 redis==2.10.3
Becomes:
RUN pip install Flask==0.10.1 uWSGI==2.0.19 requests==2.5.1 redis==2.10.3
This got me past the build as I'm guessing some of these versions of the components are out of date.


Include X-Shopify-Webhook-Id to webhook handlers

Overview/summary
As per Shopify's best practices for handling Webhooks, we should be checking the webhook id for duplicates when processing. For example, we could use it to ensure only a single background job is enqueued for a specific webhook id at any one time.
Unfortunately the ShopifyAPI does not include the X-Shopify-Webhook-Id to our webhook handlers, and so we have no way of following these best practices when using the gem.
https://github.com/Shopify/shopify-api-ruby/blob/459b04e4cc58942866c0b53a5ece0bac73d90167/lib/shopify_api/webhooks/request.rb#L1-L56
Would a PR be accepted for this?

You'd think they would LOVE PR's that fix/improved this gem. That is the entire point of this exercise! Duped Webhooks! A thing since inception. We love having to manually detect dupes with code. It is our raison d'etre.

Yaaay, thank you @lizkenyon 🙌

@forsbergplustwo Sorry for the slow reply on this.
This should go out in the next release. Please let us know if you run into any issues with it! 😄

I for one would love it if only Shopify would scrap this entire webhook architecture that makes us install 1, 4, 14 webhooks per store, when it would be so much nicer if we just register our 1, 4 or 14 webhooks with Shopify, and it then uses those per store we install our Apps too. If I have 2000 stores with my App and 14 webhooks registered for each one, and I change my webhook endpoint, I now have the lovely options of:

aliasing OLD to NEW in my App ===> Crunky
deleting all OLD and replacing with new (2000 stores times 14 webhooks)  ===> Crunky
informing the registery of NEW endpoints for 14 webhooks once   ====> Hot to Trot

Ya... I know. Off topic. Crazy... but honestly, after 1 dozen plus years with this established old routine, that only now is getting even minor attention... can we not just blow it up and replace it something slick rick and groovy?

@resistorsoftware - Please don’t hijack this thread for your off-topic rants.

I for one would love it if only Shopify would scrap this entire webhook architecture that makes us install 1, 4, 14 webhooks per store, when it would be so much nicer if we just register our 1, 4 or 14 webhooks with Shopify, and it then uses those per store we install our Apps too. If I have 2000 stores with my App and 14 webhooks registered for each one, and I change my webhook endpoint, I now have the lovely options of:

aliasing OLD to NEW in my App ===> Crunky
deleting all OLD and replacing with new (2000 stores times 14 webhooks)  ===> Crunky
informing the registery of NEW endpoints for 14 webhooks once   ====> Hot to Trot

Ya... I know. Off topic. Crazy... but honestly, after 1 dozen plus years with this established old routine, that only now is getting even minor attention... can we not just blow it up and replace it something slick rick and groovy?

Hi @resistorsoftware
We think you have brought up some good points here. The webhooks team is currently working on improvements in this space. These things take time, but please keep an eye of for improvements and releases in this areas!


Elytrian Armor Bug

While not wearing any armor, I can equip armor with a protection level equal to or lesser than chainmail. That's intended. But when while wearing light armor, I can switch to heavier armor from the inventory, which doesn't seem right to me.

Hey! How exactly are you switching the armor? I couldn't reproduce this bug in my setup, so it might be a compatibility issue with another mod (maybe some mod which modifies the inventory in some way?). It'd be great if you could post a list of your other mods!


Allow player to cut the death animation and levelscreen short by pressing space

Upon dying in Mari0, you must wait about 6 seconds for the death animation and the levelscreen to end. If death isn't common, then it's not a big issue, but in harder mappacks where the player is dying a lot, this can be very annoying. Allowing the player to press space to skip over the death animation, and press space to cut the levelscreen short, would be quite convenient.
Optional: Allow the levelscreen to stay until the player presses space(possibly via per-mappack setting?)

This is already in the game


Nushell prompt renders on wrong line

I finally have a repro for a glitch that I've been experiencing in Nushell for a long time. When the cursor is nearly at the bottom of the terminal, after running a command the new prompt renders on the wrong line. I think this is a Reedline issue but apologies if I've filed this in the wrong repo.
Steps to reproduce

Open Nushell in a very short terminal window, clear the screen, and press enter until the cursor is just 1 row from the bottom:

Type the command to cd to a new directory (without pressing enter)

Press enter and observe that the new prompt was rendered on the wrong line (1 line too high)

Version info
Terminal: Windows Terminal Preview v1.16.3464.0
OS: Linux (in WSL2)
Nushell:

key
value

version
0.73.1

branch
main

commit_hash
a9bdc655c1fdbad43e811db059bb502c86e16230

build_os
linux-x86_64

build_target
x86_64-unknown-linux-gnu

rust_version
rustc 1.65.0 (897e37553 2022-11-02)

rust_channel
1.65.0-x86_64-unknown-linux-gnu

cargo_version
cargo 1.65.0 (4bc8f24d3 2022-10-20)

pkg_version
0.73.1

build_time
2023-01-08 18:09:35 -08:00

build_rust_channel
debug

features
database, default, trash, which, zip

installed_plugins

I'm so pumped that you found a reliable repro for this!


[PUI 2.0] Re-imagine Loaders

💰 Refactor
Benefits of refactor
Estimates

closing. not moving forward at this time.


Using a GMM (LDA+MLLT) model, worker terminates with "dimension mismatch" error

Using a GMM model with LDA+MLLT features (the model called "exp/tri2b" that is built using the "voxforge" example scripts), I get the following errors when I try to run a sample decode:

DEBUG 2017-05-05 02:52:26,526 Starting up worker
2017-05-05 02:52:26 -    INFO:    decoder: Creating decoder using conf: {'post-processor': "perl -npe 'BEGIN {use IO::Handle; STDOUT->autoflush(1);} s/(.*)/\1./;'", 'logging': {'version': 1, 'root': {'level': 'DEBUG', 'handlers': ['console']}, 'formatters': {'simpleFormater': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s - %(levelname)7s: %(name)10s: %(message)s'}}, 'disable_existing_loggers': False, 'handlers': {'console': {'formatter': 'simpleFormater', 'class': 'logging.StreamHandler', 'level': 'DEBUG'}}}, 'use-nnet2': False, 'full-post-processor': './sample_full_post_processor.py', 'decoder': {'word-syms': 'exp/tri2b/graph/words.txt', 'model': 'exp/tri2b/final.mdl', 'max-active': 10000, 'fst': 'exp/tri2b/graph/HCLG.fst', 'beam': 10.0}, 'silence-timeout': 10, 'out-dir': 'tmp', 'use-vad': False}
/bin/sh: ./sample_full_post_processor.py: No such file or directory
2017-05-05 02:52:26 -    INFO:    decoder: Setting decoder property: word-syms = exp/tri2b/graph/words.txt
2017-05-05 02:52:26 -    INFO:    decoder: Setting decoder property: model = exp/tri2b/final.mdl
2017-05-05 02:52:26 -    INFO:    decoder: Setting decoder property: max-active = 10000
2017-05-05 02:52:26 -    INFO:    decoder: Setting decoder property: fst = exp/tri2b/graph/HCLG.fst
2017-05-05 02:52:26 -    INFO:    decoder: Setting decoder property: beam = 10.0
2017-05-05 02:52:26 -    INFO:    decoder: Created GStreamer elements
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstAppSrc object at 0x7f2d795ed280 (GstAppSrc at 0x2ea51b0)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstDecodeBin object at 0x7f2d795ed230 (GstDecodeBin at 0x2eaa090)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstAudioConvert object at 0x7f2d795ed460 (GstAudioConvert at 0x2ebb140)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstAudioResample object at 0x7f2d795ed370 (GstAudioResample at 0x2d61a30)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstTee object at 0x7f2d795ed320 (GstTee at 0x2ecb000)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstQueue object at 0x7f2d795ed410 (GstQueue at 0x2ed0210)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstFileSink object at 0x7f2d795ed2d0 (GstFileSink at 0x2ed4000)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstQueue object at 0x7f2d795ed3c0 (GstQueue at 0x2ed0500)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstCutter object at 0x7f2d795ed4b0 (GstCutter at 0x2eda010)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstOnlineGmmDecodeFaster object at 0x7f2d795ed500 (GstOnlineGmmDecodeFaster at 0x2ef1000)> to the pipeline
2017-05-05 02:52:26 -   DEBUG:    decoder: Adding <main.GstFakeSink object at 0x7f2d795ed550 (GstFakeSink at 0x2dc7c40)> to the pipeline
2017-05-05 02:52:26 -    INFO:    decoder: Linking GStreamer elements
2017-05-05 02:52:26 -    INFO:    decoder: Setting pipeline to READY
2017-05-05 02:52:40 -    INFO:    decoder: Set pipeline to READY
2017-05-05 02:52:40 -    INFO:   main: Opening websocket connection to master server
2017-05-05 02:52:40 -    INFO:   main: Opened websocket connection to server
2017-05-05 02:53:11 -   DEBUG:   main: : Got message from server of type <class 'ws4py.messaging.TextMessage'>
2017-05-05 02:53:11 -    INFO:    decoder: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Pipeline initialized
2017-05-05 02:53:11 -    INFO:   main: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Started timeout guard
2017-05-05 02:53:11 -   DEBUG:   main: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Checking that decoder hasn't been silent for more than 10 seconds
2017-05-05 02:53:11 -    INFO:   main: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Initialized request
2017-05-05 02:53:11 -   DEBUG:   main: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Got message from server of type <class 'ws4py.messaging.BinaryMessage'>
2017-05-05 02:53:11 -   DEBUG:    decoder: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Pushing buffer of size 8000 to pipeline
2017-05-05 02:53:12 -    INFO:    decoder: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Connecting audio decoder
2017-05-05 02:53:12 -    INFO:    decoder: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Connected audio decoder
2017-05-05 02:53:12 -   DEBUG:   main: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Got message from server of type <class 'ws4py.messaging.BinaryMessage'>
2017-05-05 02:53:12 -   DEBUG:    decoder: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Pushing buffer of size 8000 to pipeline
2017-05-05 02:53:12 -   DEBUG:   main: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Got message from server of type <class 'ws4py.messaging.BinaryMessage'>
2017-05-05 02:53:12 -   DEBUG:    decoder: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Pushing buffer of size 8000 to pipeline
2017-05-05 02:53:12 -   DEBUG:   main: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Got message from server of type <class 'ws4py.messaging.BinaryMessage'>
2017-05-05 02:53:12 -   DEBUG:    decoder: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Pushing buffer of size 8000 to pipeline
2017-05-05 02:53:12 -   DEBUG:   main: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Checking that decoder hasn't been silent for more than 10 seconds
2017-05-05 02:53:12 -   DEBUG:   main: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Got message from server of type <class 'ws4py.messaging.BinaryMessage'>
2017-05-05 02:53:12 -   DEBUG:    decoder: 73b78b7d-c605-4b97-a8f7-b9c196bfcfe8: Pushing buffer of size 8000 to pipeline
ERROR ([5.0.27~1-b9c1e]:LogLikelihoods():diag-gmm.cc:533) DiagGmm::ComponentLogLikelihood, dimension mismatch 39 vs. 40
[ Stack-Trace: ]
kaldi::MessageLogger::HandleMessage(kaldi::LogMessageEnvelope const&, char const*)
kaldi::MessageLogger::~MessageLogger()
kaldi::DiagGmm::LogLikelihoods(kaldi::VectorBase const&, kaldi::Vector) const
kaldi::DiagGmm::LogLikelihood(kaldi::VectorBase const&) const
kaldi::OnlineDecodableDiagGmmScaled::LogLikelihood(int, int)
kaldi::FasterDecoder::ProcessEmitting(kaldi::DecodableInterface)
kaldi::OnlineFasterDecoder::Decode(kaldi::DecodableInterface*)
clone
terminate called after throwing an instance of 'std::runtime_error'
what():

This thread in the old Kaldi lists on sourceforge suggests that the cause may be an out-of-date decoder version; is that a possibility here? Or is there some other cause?

@jh3141 I'm having the same issue, did you manage to solve it?

@jh3141 I'm having the same issue, did you manage to solve it?

Did you find the solution?

Did you find the solution?

I remember I made the thing I was doing work... but can't recall If I solved this particular issue or implemented it in some other way...
Will try to dig into it later and see what I end up doing

Did you find the solution?

I remember I made the thing I was doing work... but can't recall If I solved this particular issue or implemented it in some other way...
Will try to dig into it later and see what I end up doing

Oh, nevermind. I solved it, by modifying mfcc.conf
--num-ceps=40 did the job.


Adding tests and refactoring CopyPermissionsJob

Added tests to cover embargo and lease copy
Co-authored-by: Adam Wead<EMAIL_ADDRESS>Co-authored-by: Derek Morr<EMAIL_ADDRESS>

Coverage decreased (-1.02%) to 90.868% when pulling 91d98f47130ebedff453eb29e3b6c25c4caa2746 on test2 into dffa6cf2de92e5cdfe8407db9630ae8fa5dbada6 on develop.


jest-resolve fail to resolve json files

Do you want to request a feature or report a bug? bug
What is the current behavior?
Currently when there are any dependencies which require .json files, and not explicitly specifying the type .json (not sure if it matters), jest-resolve is throwing an error as following:
 FAIL  src\lint\lint-sass\lint-sass.spec.ts
  ● Test suite failed to run

    Cannot find module './data/all' from 'index.js'

      at Resolver.resolveModule (node_modules\jest-resolve\build\index.js:169:17)
      at Object.<anonymous> (node_modules\known-css-properties\index.js:1:111)

This is the library which throws the error
https://github.com/betit/known-css-properties/blob/master/index.js#L1 (and the import is from a json file), also was getting the same issue from normalize-package-data
I'm currently switching a library from using jasmine (also as a runner) to jest. This has happened in 2 libraries (dependency of a dependency)
What is the expected behavior?
I believe that such an import should work correctly since it works in node and also in jasmine runner.
personally i wouldn't use json files in the first place but that's another story :)
Please provide your exact Jest configuration and mention your Jest, node, yarn/npm version and operating system.

Jest: 19.0.2
Node: 7.8.0
NPM: 4.4.4
Windows 7

Does this help? https://github.com/facebook/jest/issues/3044

@thymikee precisely, that fixed it!
I had searched quite a bit and didn't find that :(
Not sure if it's documented anywhere but it took me quite some time to figure what was going wrong in the first place.
@thymikee many thanks, especially for the super fast reply :+1:

Glad it helped! 🙂


Chainlit does not start when requested (No errors is showed)

Describe the bug
I am using chainlit connect to ollama and running the llama2, during the last days everything was doing well until today when I tried to run my code using "python -m chainlit run main.py" as usual, then nothing happened when I performed this command, no erros, no outputs, nothing.
Expected behavior
Run the chainlit local server

me too,no output.


It does not reutilize data appropriately

The results of exporting a csv, such as locations, and reimporting, is impossible to manage.
Maxmind original MMDBs are more optimized to reutilize already present data, further reducing the size. What would be a good approach to improve this?

Thank you for your question! I'd appreciate a bit more context to better understand your issue.

It does not reutilize data appropriately

From what I know, the data in MMDBs is compressed and compiled into a structure optimized for reducing file size. Could you clarify what specific issue you're encountering that makes it seem otherwise?

MaxMind original MMDBs are more optimized to reutilize already present data

Could you elaborate on why you believe that’s the case? Since mmdbctl is a deterministic system, the process for creating MMDB files should reliably optimize and reuse data where possible. If you're noticing a discrepancy, it might be helpful to dig into how the data is being prepared or structured before using mmdbctl.
Thanks.
Best Regards,
Abdullah (DevRel @ IPinfo.io)

The maxmind geoip db uses a particualr structure, it links the ip to a location object, that contains the rest of the info, to be able to re utilize.
I did not find any way in mmdbctl to perform a similar approach

Thanks. Paging @max-ipinfo who might have some clue around this issue.

@MarianoFacundoArch could you provide a simple example?
We would need

an input CSV
the mmdbctl you ran
what you'd expect as a result, versus what you are getting

Thanks!

Maxmind exports their info CSV from ip to location with this csv structure:
network,geoname_id,registered_country_geoname_id,represented_country_geoname_id,is_anonymous_proxy,is_satellite_provider,postal_code,latitude,longitude,accuracy_radius,is_anycast
So, basically, they link a geoname_id.
Then, they have another csv that converts the geoname_id to the data structure:
geoname_id,locale_code,continent_code,continent_name,country_iso_code,country_name,subdivision_1_iso_code,subdivision_1_name,subdivision_2_iso_code,subdivision_2_name,city_name,metro_code,time_zone,is_in_european_union
Their mmdbs highly reuse the data instead of re inserting everything for each ip block if the structure is similar to the other one.
Am I being clear enough?

Their mmdbs highly reuse the data instead of re inserting everything for each ip block if the structure is similar to the other one. Am I being clear enough?

@MarianoFacundoArch sorry, I am still struggling to understand how that has to do with mmdbctl.
What exact mmdbctl command do you run? On what files? What is the output you are getting versus what you are expecting?

Hi Max,
My question is whether mmdbctl supports actually importing two csvs, where one contains data by referencing through an ID, and then that data is taken from a separate CSV, allowing for reutilizing entire blocks of data that might be repeated in several ip blocks.
This would greatly reduce the mmdb size

My question is whether mmdbctl supports actually importing two csvs, where one contains data by referencing through an ID, and then that data is taken from a separate CSV, allowing for reutilizing entire blocks of data that might be repeated in several ip blocks.

Thank you for explaining further; that's much clearer now!
Unfortunately, we have no immediate plans for mmdbctl to support automatically denormalizing data like that. You should be able do this with Maxmind's library (https://github.com/maxmind/mmdbwriter) by manually building your MMDB.


Support using build config (username, password, ssh key, kernel, kickstart).

Is your enhancement related to a problem? Please describe
We have build config on the bootc-image-builder: https://github.com/osbuild/bootc-image-builder?tab=readme-ov-file#-build-config but not in GUI.
Describe the solution you'd like

Short term solution: Be able to pass in a filepath to the config.toml
Long term solution: Make it a form so that we can enter our own user / password / ssh key / kickstart / etc that will auto create the config.toml / pass it in.

No response
Additional context
No response

FYI marking this as critical @nichjones1 @slemeur as we've been getting this request a few times now in the bootc  channels, let me know if that's okay.

Switched back to enhancement as there are no children and we don't target epics to sprint.


build: update sdk to 13.3.1

It's working, but I can't see my latest AE transaction in Tx list and Latest Tx widget.

Looks the same as on dev branch, except ae balance view.


feat: add Cairo VM Architecture chapter

Write the Cairo VM sub-book chapter on the Architecture of the Cairo VM.
Include a section on AIR (as it is the root of Cairo)

Hi, please can I help with this? @zmalatrax


[5.6] Fix "addSelect" to add any columns to a BelongsToMany relationship

This is a bug that caught me in production code, so I replicated it with a (fairly contrived) unit test.
Naturally the "correct" solution for this unit test is to not have a separate table for post approvals, but it demonstrates the failing that is applicable elsewhere.
The problem, it seems, is that the get() method on BelongsToMany will not select anything if there are existing columns on the builder. But this seems to contrast with the expected behaviour of addSelect(). I expect addSelect() to add a column to the current selection, not completely replace it.
I'm willing to contribute code to fix this if it is accepted as a bug.

The HasManyThrough relationship has the same problem.

I think it's necessary because if you call select() instead of addSelect() you do want that overwriting (which is accomplished in the same manner).
I think the best solution here is that BelongsToMany (or HasManyThrough) sets up a default select of related.* when it's instantiated, and then addSelect will properly merge that in.

You're not selecting the columns needed to complete the relationship.

I agree though it could probably be fixed if you want to submit a patch.


Publish code written during the course.

Length explanation.

This looks good to me, but please add your name to copyright statement


Use a shared repository client for all integration tests

@sxu1998 probably not needed since the tests pass regularly so doesn't need to logout of the session. And like you said, if we added logout, we would just remove it when v2 is out

@sxu1998 probably not needed since the tests pass regularly so doesn't need to logout of the session. And like you said, if we added logout, we would just remove it when v2 is out

ok got it, thanks!


Add search icon to combo box

Description
Add a search icon prop to the combo box

Issues Resolved
#130
Check List

[x] New functionality includes testing.
[ ] New functionality has been documented.
[x] All tests pass

[x] yarn lint
[x] yarn test-unit

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

I've called this out in the parent issue too, but i think we should not limit this to just the search icon, but rather any Oui Icon. even custom ones.

@ashwin-pc can you provide a "why" on not limiting the icon? For an icon in the let placement in a search bar, I would find it confusing to be any other icon. I am providing this guardrail to prevent a whacky user experience from being implemented. Would like to hear your perspective though!

Its just my opinion, but i want the design system to offer me as much flexibility as possible while letting me do the right thing easily. By changing the property to simply icon, It lets me do both. When I want to indicate search, I can use icon="search", but is i want a combobox that indicates a list of tags that I am selecting, id prefer the icon="tag" option since thats more appropriate there. This lets me add the search icon when needed without making the flag seem like an afterthought having no other purpose than to just add a single icon to the input.
If this change was perhaps tied to a search feature in the combobox, i'd be more okay with the limitation since adding a prop like search=true indicates that this combobox will now act as a multi select search input and not just show an icon.

@ashwin-pc - These are some good points about implementation, while I disagree about your tag use case, I do see a case where no tags pre-exist and therefore search is invalid, and add / plus is more appropriate. I know this is getting into splitting some hairs. After some re-thinking and discussion, here are my updated thoughts to the approach of having the icon prop. I want engineering maintainers within the project to set the path for implementation and developer experience - so these are for consideration given the feedback in the comments.
Approach 1:

Add the icon prop type as configurable but to search by default
Allow icon display to true/false
This approach gives UX the opportunity to set a "common sense default" without having to be heavy handed in implementation approach. It does add some friction but preserves the freedom of choice, whether I agree with it or not ;)

Approach 2:

Keep as-is and mark the changes with EXPERIMENTAL in order to measure impact on developer experience and UX. There is no reason that OUI cannot have the same approach to component changes as the OpenSearch application has. EUI even had a "beta" for their component changes as well, signaling that some prop definitions were not yet set in stone.

I like both approaches but i'd lean towards option 1.1 where we add an icon prop. But I dont think adding search by default is a good idea. It would mean that to disable an icon in a combobox, we would have to explicitly pass icon={false} to not show one. Not very fond of this as a pattern.
One other option would be to use the prop to define the purpose of the UI element. e.g. <OuiComboBox as="search" /> This styles the component as a search only component that cannot add new values dynamically. With this prop on, a search icon being always present makes sense. And if we want to add additional flexibility, we can add an icon prop too that lets the user override this icon or disable it all together.

For clarity & my education (thanks for taking me on the journey) - we wouldn’t want two separate props 1) icon type and 2) show/hide icon
Vs  icon = false?
@bsfishy any approach ideas here as well?

I would be supportive of:

Keeping the default API the same
Adding an icon property
For ease of use, icon, icon=true and icon="search" should be equivalent <- (I think this is what @KrooshalUX meant when she said "search" as default -- not search icon on by default on the component, but rather, when the icon prop is used, we should show the search icon if no other information is passed)
icon="false", or not even passing the icon prop should result in the component not rendering it.

@kgcreative I can get behind that. Still not 100% onboard with the need to have icon=true default to search, but it does not take away from whats expected of the icon property.

I think one conversation to have is which icon makes the most sense to be "default" icon. When I look at the list of glyphs, the ones that come to mind are tag, dot, email apps home and search, and looking at the usage of combobox in the application, search seems to be the most common case. I would rather icon=true not return an error, so more than anything this is graceful degradation

@kgcreative can you provide cases for setting those other options as default - my main justification for setting the default to search it is the primary interaction within the input box - search to find a tag (object,data source,index, etc) or to search & receive no result in the case where custom tag is added. To match the current default of the input box and to not force a braking visual change the icon would not be visible by default. This allows us to determine the “correct” approach across various projects.

I am having trouble imagining a form that has 5 combo-boxes, all with a search icon to their left.
I wouldn't mind if the icon appeared only when active but doesn't an icon inside the field denote that that field is to search for something? Am i too old?

I am having trouble imagining a form that has 5 combo-boxes, all with a search icon to their left.
I wouldn't mind if the icon appeared only when active but doesn't an icon inside the field denote that that field is to search for something? Am i too old?

The intent is that a combo box with an icon be more an exception that the rule, but when adding an icon, often time the search icon is the most appropriate (for example for searching/ multi selecting an index, a field, or a tag)

@kgcreative @KrooshalUX The primary concern i have with this is the API. having a boolean prop that simply shows a search icon is indicative of code smell. If as @AMoo-Miki  said, the icon showed up during user input or when it active automatically, thats fine. Or if the prop allowed for arbitrary icons too, it seems like a good use of a prop, but simply using it to show or hide a single icon "search" seems wasteful and indicative that we havent abstracted the problem well.
If we are doing this to not introduce a breaking change, thats something we should avoid since technically we can always find a solution does not break semver if we bend over backwards enough. But we should weigh that with the consequence of doing so. In this case its an API that serves a very specific usecase that imo can be solved without it.
API changes are hard to walk back on so we should be careful when introducing them.

@ashwin-pc  I believe we have identified a path forward that satisfies your concerns. @BSFishy  can you please follow up with the approach you are going to move forward with? Do we need to close this PR?

No, I'll update this one. I think the way forward is making an icon prop (instead of searchIcon), allowing it to be an icon string, boolean (true for search icon, false for no icon), or undefined (indicating no icon). Is this an agreeable solution @KrooshalUX @ashwin-pc ?

yep that works for me :)


Documentation formatting is incorrect.

Formatting of documentation is not generating PDF correctly.
This seems to be a problem with the action as they work correctly in Github in /docs/info.md
5e4f05e

Testing

How it works
The serial protocol implemented in this design consists of a simple single byte packet which instructs the CPLD which column of the keypad to multiplex into MISO, which screen should be displaying data, and what number should be displayed on the screen. The screen select signal also doubles up as instructing which row of the keypad to be scanned.
Data is sent Most Significant Bit (MSB) first.

![SPI Protocol bit definitions](./images/<IP_ADDRESS> _bit_definitions.png)

The high impedance programming state is not implemented in this ASIC. It is represented as a bit out instead.
Keep in mind: This system is clocked by the SPI clock, and therefore requires constant clocking to function.
How to test
Build the supporting hardware as described in the schematic found in "Exteral hardware". Create a system which transmits SPI bytes, according to specifications in "How it works". The system will display your desired digits on the selected screens.
You may also use the MISO to implement a 4x4 keypad, which is interpreted by the system creating the SPI bytes. This will not be detailed as to how to implement.
External hardware
Main external system schematic:

Simple keypad:

Error is fixed as of 8029a33