[Docs]: Bad Ceph advice

Is there an existing issue already for your request/idea?

[X] I have searched for an existing issue, and could not find anything. I believe this is a new documentation enhancement to be evaluated.

What problem in the existing documentation this issue aims to solve?
The manual states the following:

In these cases it makes sense to define the storage class used by the Postgres clusters to be defined as 1 replica. By having additional replicas defined in the storage solution like Longhorn and Ceph you might incur in the issue known as write amplification, unnecessarily increasing disk I/O and space used.

For Ceph, this is incredibly bad advice.

1 Replica, means that if 1 of any disks or nodes fails, the storage can be broken.
1 Replica also does not assure said replica's are on seperate disks or even nodes.

So simply put:
This advice might take down the complete postgresql cluster once a single(!) disk goes down on ceph
Describe what additions need to be done to the documentation
On ceph a minimum adviced setup would be 2 replicas, preferably spread over different nodes.
Describe what pages need to change in the documentation, if any
https://cloudnative-pg.io/documentation/1.20/storage/
Describe what pages need to be removed from the documentation, if any
No response
Additional context
No response
Backport?
Yes
Code of Conduct

[X] I agree to follow this project's Code of Conduct

This is the whole purpose of a shared nothing architecture.

This is the whole purpose of a shared nothing architecture. See https://www.cncf.io/blog/2023/09/29/recommended-architectures-for-postgresql-in-kubernetes/ for details.

Whats your point really?
Let me clearify: I KNOW that local-storage is adviced. Thats also what I would advice anyone using CNPG.
The problem is your advice when using CEPH specifically, goes against ANY guidelines for CEPH in existence anywhere.
Well, it might work okey-ish for single-pod CNPG setups, but it absolutely should not be used on multi-pod setups in any way.
And with "work okey-ish" that means: Is potentially death in the water with a single disk-failure.
Simply put:
The advice is so inherently bad, that it's obviously writhen by someone with absolutely zero experience with CEPH.

@Ornias1993 I think their point is that you would spread the cnpg workload around in a shared-nothing way even if you use block storage like longhorn or ceph. You would spread your block storage around fault domains and you would spread your database replicas around fault domains. If a disk fails in fault domain 1, this should not affect database replica 2 which is in fault domain 2. Sure replica 1 will fail, but that replica will come back when you fix the storage issue affecting fault domain 1. You could spread the volumes for replica 1 around fault domain 1 and 2, and then replica 1 could remain online while fault domain 1 has a storage issue. However this is no longer a shared nothing architecture and as mentioned in the docs incurs a in this case unnecessary penalty. Instead you should simply rely on your replicas to be available in the other fault domains.

@rouke-broersma
I get their point, it's just wrong. Because they don't understand ceph.
2+ CNPG replica's on a CEPH pool with replica 1 set:
Does NOT guarantee both replicas are on seperate disks within the CEPH pool

@Ornias1993

No it won't "come back", replica 1 in ceph: if the disk with these placement groups is done-for/replaced, the data is gone.

The data is in replica 2, which is the point. Simply rebuild the replica from the cluster.
Look I'm gonna be honest I have not yet used Ceph in production, however I know Kubernetes PV is topology aware and I know CSI is topology aware.
I did a quick search, and found that Rook Ceph (Kubernetes CSI for Ceph) is also optionally topology aware. So it seems to me like this is simply a supported scenario in Rook Ceph.
See: https://rook.io/docs/rook/latest-release/CRDs/Cluster/external-cluster/topology-for-external-mode/?h=topology
So tbh yes it seems like this exact scenario is available in Ceph.

@rouke-broersma

Look I'm gonna be honest I have not yet used Ceph in production

I'm going to be harsh here: This for sure is not your area of experise, which is fine.
But then leave it to people that have some more expertise than you do.

however I know Kubernetes PV is topology aware and I know CSI is topology aware.

This has nothing to do with PV, PVC or CSI.
This has to do with the basic fundementals of CEPH.

I did a quick search

These are EVERY high level, advanced tricks.
That's precisely what I meant with "So the advice would only apply to a VERY specific niche setup design of CEPH."
Setup is basically the "niche-of-niches" of CEPH deployments, not normally done, not normally even adviced unless you've a dedicated storage team on-site with significant expertise in both CEPH and Kubernetes.
It also is limited to "external ceph cluster", according to those docs.

What you link does not mean "Just use replica 1".
The only thing I'm saying is that you do not "just use replica 1".
Thats simply not the full story and is inherently not data safe.
I never said that Replica 1 doesn't have a place, I never said that CEPH cannot work.
I said that the oneliner to "use replica 1" is bad and destructive advice.
That's just CEPH 101, the absolute bare-minimum basics.

Issue is muted for me now, if it's not clear why its bad, the maintainers should just contact a ceph expert to explain it to them (again).

Seeing the responses, i've decided not to put any effort into this.
Closing, a shame really.


Add keywords for package

Hej!
I'm building a package directory for Atom, which uses the package keywords to categorise them.
These keywords will make the package show up correctly in the Haml category (http://atom-packages.directory/category/languages-haml/)

Awesome. Merged.

Awesome!
Once the package is pushed to atom.io and the directory is rebuild, which happens daily atm, the package will appear in the Haml category. :)


fix(loading): added missing entry components

Description
I have added the missing entry components within the CovalentLoadingModule.
What's included?

Fix for #1759

Test Steps

[ ] npm run build:lib
[ ] add a tdLoading directive to a template

General Tests for Every PR

[ ] npm run serve:prod still works.
[ ] npm run tslint passes.
[ ] npm run stylelint passes.
[ ] npm test passes and code coverage is not lower.
[ ] npm run build:lib still works.

I have added other missing entryComponents that I found were missing.

@DSchroer Well with Ivy, Angular should no longer require declaring entry components. Are you using Ivy in your project that is consuming Covalent?

My project is not using Ivy yet. We are still built on top of Angular 8.1 at the moment. Other than the entry component exports the rest of the library works fine with older versions of Angular.

Not needed since we dont support ng8 anymore


[Bug]: dlib doesnt install.  says cmake is required but have installed cmake.

What Operating System(s) are you seeing this problem on?
Linux (x86-64)
dlib version
whatever pip install dlib tries to install
Python version
3.10.12
Compiler
pip install dlib
Expected Behavior
expected it to install
Current Behavior
pip install dlib
Defaulting to user installation because normal site-packages is not writeable
Collecting dlib
Using cached dlib-19.24.4.tar.gz (3.3 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: dlib
Building wheel for dlib (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for dlib (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [10 lines of output]
running bdist_wheel
running build
running build_ext
Traceback (most recent call last):
File "/usr/local/bin/cmake", line 5, in
from cmake import cmake
ModuleNotFoundError: No module named 'cmake'
  ERROR: CMake must be installed to build dlib

  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for dlib
Failed to build dlib
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (dlib)
it says cmake must be installed
but
cmake --version
cmake version 3.30.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
so it is installed
Steps to Reproduce
i type pip install dlib and it doesnt work
i've tried sudo pip install dlib and that doesn't work
Anything else?
No response

How did you install CMake?

I think your linux distro will install the binaries in /usr/bin/ but your current cmake command points to /usr/local/bin/.
Try to cleanly get rid of the one in that /usr/local/bin.

It's failing when building libpng?

Can you try by running:
CFLAGS='' pip install dlib?
I don't know if it will work.
It works when I git clone and run CFLAGS="" python setup.py install

Also, you're using clang, maybe you can try with CC=gcc pip install dlib


Do the .gb files get migrated from pypi?

Alexis suggests this is the case.

@Benedict-Carling I've been trying to upload the current setup.py  to testpypi but I'm having trouble getting the .gb files to install in site packages, similar to the original problem we had as outlined by this issue.
Do you remember what you did? I've tried using both a MANIFEST.in file and the package_data keyword in the setup.py file but still not working 😢

@Benedict-Carling I've been trying to upload the current setup.py  to testpypi but I'm having trouble getting the .gb files to install in site packages, similar to the original problem we had as outlined by this issue.
Do you remember what you did? I've tried using both a MANIFEST.in file and the package_data keyword in the setup.py file but still not working 😢

Hi @hainesm6, i'll have another look at this now 👍

Hi @hainesm6, i'll have another look at this now 👍

Hi @hainesm6 , I had the same issue trying to upload to test pypi.
If I change the line shown in the image below, it allows the package data files to be read 👍

Hi @hainesm6 , I had the same issue trying to upload to test pypi.
If I change the line shown in the image below, it allows the package data files to be read 👍

Hmmm 🤔
Is this the address on testpypi @Benedict-Carling ? I tried installing it as (below) but it still didn't have the .gb files.
$ pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple basicsynbiotesttesttest

Perhaps we can go through it together later on Teams?

Hmmm 🤔
Is this the address on testpypi @Benedict-Carling ? I tried installing it as (below) but it still didn't have the .gb files.
$ pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple basicsynbiotesttesttest

Perhaps we can go through it together later on Teams?

yep! although I think you might need, this version. I have quite a few version that aren't necessarily in order as they try different things, 0.1.7 is the latest one for me which worked.
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple basicsynbiotesttesttest==0.1.7

yep! although I think you might need, this version. I have quite a few version that aren't necessarily in order as they try different things, 0.1.7 is the latest one for me which worked.
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple basicsynbiotesttesttest==0.1.7

I'm just in a meeting at the moment but will call you afterwards.

I'm just in a meeting at the moment but will call you afterwards.

Something to do with how setuptools.find_packages() locates packages using the where argument. Getting rid of this solved the problem.
Worth posting this as an issue in the setuptools repo.

Something to do with how setuptools.find_packages() locates packages using the where argument. Getting rid of this solved the problem.
Worth posting this as an issue in the setuptools repo.

https://github.com/pypa/setuptools/issues/2546

https://github.com/pypa/setuptools/issues/2546


Instant?

Thanks for this amazing script this is what I wanted the behavior to be.
Tried to go through the script and got a few bits but was unable to figure out how to add some custom layouts.
Moreover, my current concern is that when I open a window first it opens to the default sway position and then goes where it should be.
Is there any way that it can be made to spawn at the current location? (e.g after the first window opens the second one opens below with a horizontal split and then takes itself to the vertical split position.)
it is just for a sec though but noticeable.
and how can I make new window spawn at the master window place making the previous master the slave?

Thanks, glad you like it.
The i3/sway API unfortunately doesn't give us any sort of "hooks" that would let us execute code when the WM is about to do something (like open a window) or after it did something. So what swaymonad does is listen for WINDOW_NEW, WINDOW_CLOSE, and WINDOW_MOVE events and then performs actions in response to them. So (for example) sway opens a window (wherever it normally would), then it sends a WINDOW_NEW event, then swaymonad sees the event, then swaymonad moves windows around to match the configured layout. That's why you see the new window in the default position for a fraction of a second before it gets moved. I was able to significantly reduce the amount of time the window is in the wrong position by batching together sway commands when we need to send a bunch consecutively to minimize sway<>swaymonad roundtrips, but sometimes we need to stop and wait for a roundtrip before proceeding, such as when re-reading the container tree after a new window was created because we need the id of the new window.
Ideally we'd be able to register code with sway in some fashion so that it would call our code with information about the new window and we could tell it where to create it, but that isn't currently possible.
You can create a custom layout by implementing a new subclass of layout.Layout and then adding a constructor for it to layout.LAYOUTS from swaymonad.py. See swaymonad.py:81 and layout.py:71. In your custom layout, the only method you really need to override is layout, which needs to, using the i3ipc handle that is passed in, read the tree for the workspace to lay out, determine if the event is "new", "close", or "move", and re-arrange windows appropriately. n_col.py does a full "rebalance", so wherever the new window ends up, it will move windows between columns to get the right number of windows in each column. Nop, on the other hand, does almost nothing.
Spawning new windows to the current location... do you mean this?
AA, BB, CC, and DD are different windows, your focus is on CC, you open a new windows, and DD gets inserted above CC?
AABB     AABB
AABB  -> AADD
AACC     AACC
AACC

If so, that is supposed to happen (n_col.py:159) and usually does. I think I've seen it fail sometimes and open below, but I haven't been able to reliably reproduce it.
If your focus is on the master, the new window is supposed to open in the master pane and the old master gets moved to the next column (also n_col.py:159, sway opens the new window below the current one, we move it up one, then reflow which moves the botton window into the next column) and usually does. As with the other issue, I think I've seen it fail sometimes and open in the next column, but I haven't been able to reliably reproduce it.
The source of those bugs is race conditions between sway doing things and swaymonad reacting to them asynchronously.

Thanks for the explanation mate.
I guess then till sway devs do not give any hooks it will be something like this of a behavior.


Coroutine not patched correctly after using MagicMock as constructor

When mocking a class and using it in place of a constructor, async methods in the resulting mocked object are not coroutines:
>>> import asynctest
>>> class AsyncStub:
...     async def do_async(self):
...         await True
...
>>> type(asynctest.MagicMock(AsyncStub)().do_async)
<class 'asynctest.mock.MagicMock'>
>>> type(asynctest.MagicMock(AsyncStub()).do_async)
<class 'asynctest.mock.CoroutineMock'>

I expected that in the first case, do_async should be a CoroutineMock.

Hi,
This is because asynctest follows the behavior of unittest, which makes no difference between a constructor and a regular function call:
import unittest.mock

class Foo:
    def bar(self):
        pass

isinstance(FooMock(), Foo)  # False, because FooMock() returns a "regular" mock
hasattr(FooMock, 'bar')     # True, because bar is an attribute of class Foo (its spec)
hasattr(FooMock(), 'bar')   # True, because a this mock has no spec attached
hasattr(FooMock, 'baz')     # False, because baz isn't an attribue of class Foo (its spec)
hasattr(FooMock(), 'baz')   # True, because, again, this mock as no spec, even
                            # if it seems to be the result of the constructor

Asynctest is designed to extend the behavior of unittest, but don't change it.
You need to specify the result of the call to the constructor:
AsyncStubMock = asynctest.mock.MagicMock(AsyncStub, side_effect=lambda *a, **kw: asynctest.mock.MagicMock(AsyncStub))

Maybe adding helpers like mock_class() and @patch_class() that do the above would be a good idea.

In fact, I forgot that create_autospec()< solves this exact problem:
AsyncStubMock = create_autospec(AsyncStub)  # will correctly mock the constructor
AsyncStubMock().do_async # is a CoroutineMock

I updated the documentation because it was missing.


add support for selectinload relationship loading technique when orm_mode is enabled

Initial Checks

[X] I have searched Google & GitHub for similar requests and couldn't find anything
[X] I have read and followed the docs and still think this feature is missing

Description
Hi There,
I have faced a performance/deal breaker issue while using FastAPI with Pydantic, Asyncpg, SqlAlchemy.
The case:
You have a relationship between two SqlAlchemy models (Tables) which configured the relationship lazy attribute to lazy.
https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html
class Branch(Base):
    __tablename__ = "branch"

    id = Column(UUID(as_uuid=True), primary_key=True, default=uuid4, index=True)

    title = Column(String(length=100), nullable=False, unique=True)
    description = Column(String(length=400))

    change_requests = relationship(
        "ChangeRequest",
        order_by="ChangeRequest.created_at",
    )

class ChangeRequest(Base):
    __tablename__ = "change_request"

    number = Column(String(length=20), primary_key=True, index=True)

    type = Column(String(length=1), nullable=False)
    description = Column(String(length=75))
    status = Column(String(length=1), nullable=False)

    branch_id = Column(UUID(as_uuid=True), ForeignKey("branch.id"), nullable=False)

You have created recursive Pydantic Model which uses orm_mode.
You have created a FastAPI Endpoint which returns as response the recursive Pydantic model
You get this error:
sqlalchemy.exc.MissingGreenlet: greenlet_spawn has not been called; can't call await_only() here. Was IO attempted in an unexpected place? (Background on this error at: https://sqlalche.me/e/14/xd2s)

The only available solution for this problem is to configure the relationship loading technique to eager select for example selectin
class Branch(Base):
    __tablename__ = "branch"

    id = Column(UUID(as_uuid=True), primary_key=True, default=uuid4, index=True)

    title = Column(String(length=100), nullable=False, unique=True)
    description = Column(String(length=400))

    change_requests = relationship(
        "ChangeRequest",
        lazy="selectin",
        order_by="ChangeRequest.created_at",
    )

this solution affects the whole relationship, while the real solution is simple, just use eager loading for recursive models using the SqlAlchemy selectinload function.
https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html.
Affected Components

[ ] Compatibility between releases
[ ] Data validation/parsing
[X] Data serialization - .dict() and .json()
[ ] JSON Schema
[ ] Dataclasses
[X] Model Config
[ ] Field Types - adding or changing a particular data type
[ ] Function validation decorator
[ ] Generic Models
[X] Other Model behaviour - construct(), pickling, private attributes, ORM mode
[ ] Settings Management
[X] Plugins and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

We don't have any special support for sqlalchemy.
How is pydantic supposed to know it shouldn't loo at that attribute?
This there's a generic way to say "this attitude is lazy, please don't get it" we can ignore it. Otherwise I don't see where to go???

I'm happy to fix it, or review a PR which fixes it, but I hoped you might come with a solution as well as a problem.
Ideally that's how open source works.
Otherwise I'll try to look into it when preparing for V2.

I will try to fix it and maybe create a PR, will notify you next week 😄

Any fix will need to target V2, so might need to made in pydantic-core.
One option would be a black list of attributes to ignore, would that work for you?

Looking at this again, there's a chance it's already fixed in pydantic-core as we only get the attributes required (unless you set extra=allow).
Probably the first step would be to see if it's still a bug with pydantic-core.


Compose 1.15.0 additions

Proposed changes
Document new features in upcoming Compose 1.15.0 release
Unreleased project version (optional)
1.15.0
Related issues (optional)
See RC1 release notes here: https://github.com/docker/compose/releases/tag/1.15.0-rc1

LGTM


z-index it's no working

i'm trying use z-index to create an interface for my app using the last version of plugin,but the map overrides all element on HTML and jquery it's no working.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/12812113-z-index-it-s-no-working?utm_campaign=plugin&utm_content=tracker%2F637500&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F637500&utm_medium=issues&utm_source=github).

This plugin has a very big and good documentation. Please read trough the steps, how this plugin works.


Cant view the plugin after installation

I followed the steps to install the plugin on my localhost test machine but i cant view the plugin in my payment methods, its just empty, what might be the issue?

I won't show if you are using php7+. This works https://github.com/matt-obell/paystack

@ajepe okay I will check it out. Many thanks!

@ajepe I use php7.0+ and it works fine

I'm not sure it has much to do with the version of PHP. For both 5.6 and 7.0 it isn't listed in my case.

@ibrahimlawal Seems to be an issue with magento being confused by sortOrder in system.xml.
https://magento.stackexchange.com/questions/159776/magento-2-1-3-custom-payment-method-not-showing-while-showing-in-magento-2-1-1
https://github.com/magento/magento2/issues/7891

@nonami WOW, so helpful. Thanks. Will push an update. Will do branch based updates from now on so others with non-recent magento versions can still benefit

@ibrahimlawal has this update been pushed? 🙂


[Suggestion] CODEOWNERS

I would like to suggest you to add a CODEOWNERS configuration file for this repository.  The benefits would be that for each PR, you would be requested for review automatically.  This aspect can be also combined with branch protection rules such that an approval of one of the CODEOWNERS is mandatory; as you would be the sole CODEOWNER, your own PRs would not require any approvals but were still allowed to receive some.
To configure it, just create a file named .github/CODEOWNERS with the following line as content:
* @wert007

This will mark every file in the entire repository as your intellectual property.

Would this feature be interesting for you, @wert007?


Conflicting dep between icon pack and svelte version causes issues upgrading

@evidence-dev/core-components requires @steeze-ui/svelte-icon ^1.4.1
@steeze-ui/svelte-icon 1.5.0 requires svelte ^4.0.0
@evidence-dev/component-utilities requires svelte 3.55.0

If you need a temporary workaround when upgrading (eg in Slack)

Do a clean install as a new project: https://docs.evidence.dev/getting-started/install-evidence
Copy across node_modules folder, package.json and package-lock.json from the clean install to your existing project


Autorename not working

Autorename is not working for me.
For example: when I'm inside a <div> tag and type ciwspan<Esc> it just rename the first <div> tag to span, and the other tag remains as </div>.
I've tested it on .tsx and .html files.
Here is my config:
Treesitter
Packer

@MatMatias Any solutions on this? Have the same problem. Best regards

@PaulKushch not yet.

Solved for me to install tsx for treesitter config:)

For me it does work in HTML but not in Svelte.
Treesitter parser for svelte is installed.

@PaulKushch tsx for treesitter is installed here, and yet it does not work. :/


Issue: Box Model Not Respected

the bug
It looks like the box model is not respected when using a border on columns. I have added a border to each of the columns and the padding does not work as expected. Borders should sit between the margin and padding: [margin] [border] [padding] [content]. It looks like mjml does not respect the normal box model order and is as [margin] [padding] [border] [content].
the code
Here is an example code with it not working as expected.
<mjml>
    <mj-body>
        <mj-section background-color="#D5D5D5" background-repeat="no-repeat" text-align="center" vertical-align="top" padding="10px">
            <mj-column padding="10px" border="1px solid #05C3DE">
                <mj-image src="https://puu.sh/z9hcM/b54d0b6d6a.png" padding="0" />
            </mj-column>
            <mj-column padding="10px" border="1px solid #05C3DE">
                <mj-image src="https://puu.sh/z9hcM/b54d0b6d6a.png" padding="0" />
            </mj-column>
            <mj-column padding="10px" border="1px solid #05C3DE">
                <mj-image src="https://puu.sh/z9hcM/b54d0b6d6a.png" padding="0" />
            </mj-column>
        </mj-section>
    </mj-body>
</mjml>

MJML environment

OS: MacOS
MJML Version ^4.12.0
MJML App v3.0.4

Using inner-border on the columns solved this issue. For reason I had to specify a padding value on the column to get the border to show, even if the value was set to 0px. Without that, the border would not show.

Nothing more to do here, most attributes are prefixed with inner-* to target specific element within the generated DOM.
It's hard to find a proper naming here as :

It's a padding
border isn't applied on the same element as the padding attributes
if we decided to go with margin in some other cases it would be the same
padding term is widely use in MJML so it's more coherent
changing the name would require to find a proper name and a major version just for this

Nothing more to do here, most attributes are prefixed with inner-* to target specific element within the generated DOM.
It's hard to find a proper naming here as :

It's a padding
border isn't applied on the same element as the padding attributes
if we decided to go with margin in some other cases it would be the same
padding term is widely use in MJML so it's more coherent
changing the name would require to find a proper name and a major version just for this

I'm just glad there was a solution!
I actually have a really good experience building with MJML so thanks to the team for doing all you do! 🙏🏽🙏🏽🙏🏽🙏🏽🙏🏽
Long live MJML !


Bump nix from 0.26 to 0.28

socket and user now need to be explicitly enabled via features.
Closes https://github.com/twosigma/nsncd/pull/104.

Oh nice, thanks!


better endpoint config example for saml2 backend

This modification compensates a problematic line here (and the other line for the disco endpoint):
https://github.com/IdentityPython/SATOSA/blob/84cf60fd38de06a85d6f9d39ef364a3d12571120/src/satosa/backends/saml2.py#L455
If your base_url is like https://www.example.com then this information will be merely thrown away and satosa works.
If your base_url is like https://www.example.com/satosa then you will end up with an endpoint incorrectly registered as satosa/Saml2/acs/post
Then, the deployment will yield this error:
'Saml2/acs/post' not bound to any function
Which is per se correct as it was registered under another name.
So since the baseurl is thrown away anyway it is better not to have it in the first place.
All Submissions:

[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Have you added an explanation of what problem you are trying to solve with this PR?
[x] Have you added information on what your changes do and why you chose this as your solution?
[ ] Have you written new tests for your changes?
[ ] Does your submission pass tests?
[ ] This project follows PEP8 style guide.

Actually, what I propose here in turn will result in the wrong binding endpoint locations when you generate the metadata. Therefore there is just no way of running on a baseurl other than a hostname (without path). If you have a <base_url>/ in the plugin configuration and the baseurl is not only a hostname, then the plugin will register the wrong endpoint for the ACS, but the metadata will be correct. If you have only // then the endpoint gets registered correctly but it will be wrong in the metadata.
The workaround if you have a base_url with a path element is to have // in the plugin config, generate the metadata and fix it by hand later on.


CosmosDB for PostgresSQL azure_storage extension

I am experimenting with CosmosDB for PostgresSQL azure_storage extension and trying to load a little more than 100K files from Azure Storage (ADLS Gen2) and the total volume of data is around ~100GB. This is open data available from the GDELT project.
A couple of issues.

It appears that the azure_storage.blob_list function only returns first 5000 blobs which I think is consistent with the List Blobs (REST API) . But real-production use cases might require much larger set of files (>5000) and I am not sure how paging is handled in the blob_list function and did not find any relevant information around this.

Likewise, azure_storage.blob_get function doesn't seem to support wildcard/glob and expects the absolute path of the file as shown in the example below and I couldn't find any relevant information if wildcard/globs are supported.

Any additional clarifications on these 2 issues in the official documentation will be very much appreciated.
INSERT INTO
       gdelt_events_backing_store
SELECT
      *
FROM
       azure_storage
	   .blob_get(
		   	'<storage_account_name>',
			'<container_name>',
			'v2/events/20150218230000.export.csv',
			NULL::gdelt_events_backing_store,
			options := azure_storage.options_csv_get(delimiter := E'\t')
	   )

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

ID: 119f1ef5-af59-6cdd-1cee-ead00d4084c7
Version Independent ID: 09faf16a-0b9c-0751-3504-ef41f7a71d15
Content: Data ingestion with Azure Blob Storage - Azure Cosmos DB for PostgreSQL
Content Source: articles/cosmos-db/postgresql/howto-ingest-azure-blob-storage.md
Service: cosmos-db
Sub-service: postgresql
GitHub Login: @mulander
Microsoft Alias: adamwolk

@krishjag We are looking into this and will get back shortly. Thanks

@jonels-msft, can you assist with this question?
#assign:jonels-msft

#assign:seesharprun

Actually, @mulander is a better person to answer this.
#assign:mulander

Hi @krishjag,
Thanks for reporting back to us!

It appears that the azure_storage.blob_list function only returns first 5000 blobs which I think is consistent with the List Blobs (REST API) . But real-production use cases might require much larger set of files (>5000) and I am not sure how paging is handled in the blob_list function and did not find any relevant information around this.

Unfortunately, this is an oversight on our part. As you correctly pointed out, the exposed user defined function is limited to returning 5000 results. We are now aware that this is an annoying limitation and will be looking into addressing it. The only workaround for now is pruning results with prefix, which is limited for real world use cases.

Likewise, azure_storage.blob_get function doesn't seem to support wildcard/glob and expects the absolute path of the file as shown in the example below and I couldn't find any relevant information if wildcard/globs are supported.

Wildcard/glob support is not implemented. What is the desired use case for it? Convenience in not having to provide the absolute path - or am I missing something?
I will be addressing the concerns you learned in our public facing documentation, for now that will be documenting the limitations that you found - thank you again for raising our awareness. I will also ping you in this ticket after we re-organize for handling pagination within the extension.

Hi @mulander,
Thanks for the clarifications.
Typically, we have stored data in azure storage accounts in hierarchical fashion. An example would be something like this, domain/sub-domain/yyyy/mm/dd/etc.
In a system like Apache Spark, globing pattern as shown below allows us to load a set of files matching a specific pattern (see 2016*).
from pyspark.sql.functions import *

path = '/mnt/gdelt/v2/events/2016*'
df = spark.read.csv(path, sep=r'\t', header=False)

Since such pattern was not supported, I used a looping technique to load the specific set of files that I needed for my process. So I see this as a quite common use-case. Hope this clarifies and let me know if you have additional questions.
CREATE PROCEDURE gdelt_full_load_with_partial_commits() LANGUAGE PLPGSQL AS $$
declare
    f record;
begin
    for f in SELECT * FROM public.gdelt_v2_events_file_list
    loop
	raise notice '% filename', f.file_name;
		INSERT INTO
       		gdelt_events_backing_store
		SELECT
			  *
		FROM
			   azure_storage
			   .blob_get(
					'rixdvshareddata',
					'gdlet',
					concat('v2/events/', f.file_name),
					NULL::gdelt_events_backing_store,
					options := azure_storage.options_csv_get(delimiter := E'\t')
			   );
		COMMIT;
    end loop;
end;
$$

CALL gdelt_full_load_with_partial_commits();

Thanks @mulander for offering to update the documentation.
@krishjag, I'm going to go ahead and close this GitHub issue while @mulander works on the documentation. Please feel free to continue your discussion here.
#please-close


Add compile option to treat cpp files as hip files

What is the convention for hip vs cpp? Even the hip examples are cpp files
https://github.com/ROCm-Developer-Tools/HIP-Examples/tree/master/HIP-Examples-Applications/BinomialOption

What is the convention for hip vs cpp? Even the hip examples are cpp files
https://github.com/ROCm-Developer-Tools/HIP-Examples/tree/master/HIP-Examples-Applications/BinomialOption

By default HIP-Clang treats .hip files are HIP programs and they do not need -x hip. By default HIP-Clang treats .cpp files as C++ programs and they need -x hip to be treated as HIP programs.
Unfortunately the HIP examples were developed with HCC, and HCC does not recognize .hip extension, therefore they have .cpp extensions. They should be renamed after HCC is fully deprecated.


Bio: WebLogo virtualization

[ ] fix (hide) slider when window is wider than sequence length
[ ] fix start layout by creating WebLogo viewer from top menu Bio / Composition Analysis
[ ] handle mouse wheel to scroll
[ ] fix slider style to thin like standard one


Fix for the issue #212

this Changes modify the MakeModuleCommand.php to fix the issue #212
also this make posible to use the custom stubs base on the stubs that
have been publish with the command  php artisan vendor:publish --tag=stubs

Thanks for this! I manually merged your work in (https://github.com/caffeinated/modules/commit/41bce63ccb89bd274513706d2d2f9883fabd8143) as I had some other changes in the works.


[GSSOC'23] Changing color of "Os-code" in the footer

As this is not clearly visible in the footer in "chapters" section

Yes sure @purviporwal0 , go ahead

can you please assign it to me


Configure clang-tidy CI check

I think we should have consistent flag naming. We can rename all at once in a separate PR, but I would not like to have some prefixed MGL and some MLN.

This is nice but I would like to see a comment about it in DEVELOPING.md.

Added, please review - not sure what worth adding there.

Suggestion:

Could you name the option MLN_REQUIRE_CLANG_TIDY?
Enable by default

@louwers I can rename MLN_REQUIRE_CLANG_TIDY now(but lets have an agreement with @ntadej first - I don't have strong opinion here, from my perspective both name options are okay).
When it comes to enabling it by default - I am not sure it will be easy, e.g. I guess we would have to disable it for Android/iOS builds, because clang-tidy can be used there. Don't you mind to do that later in separate PR?

When set but clang-tidy is not found exit with FATAL error

It already works like this:
message(FATAL_ERROR "ENABLE_CLANG_TIDY is ON but clang-tidy is not found!")

When not set but clang-tidy is not found, show warning

Not sure I understand what benefits it would bring. Could you elaborate why do you think it would be useful?

We will soon rename everything to MLN_* so you can also change now if you want.
For now I'd keep clang-tidy enabled for Linux. The main issue is it's often much slower than regular build (which is already slow on some platforms). Also core has large overlap between platforms.

For now I'd keep clang-tidy enabled for Linux. The main issue is it's often much slower than regular build (which is already slow on some platforms). Also core has large overlap between platforms.

Do you mean to modify CMakeLists to make MLN_REQUIRE_CLANG_TIDY=ON by default if current system is Linux? Or you mean keep it enabled on Linux's CI?

Sorry for confusion, clang-tidy is slow so it should always be disabled by default. For now only Linux CI (the one where you added it already) should have it enabled.

Okay, let me please know if there is something to do to make it merged then 😀

The pipeline is very slow (reaching 1 hour). Not sure this is feasible...
Will un-approve for now to allow a bit of discussion.

Hm, it was faster before?

The pipeline is very slow (reaching 1 hour). Not sure this is feasible...
Will un-approve for now to allow a bit of discussion.

Hm, it was faster before?

I see it is about 30m for other PRs. What I am thinking about is that may be it is because addition of clang-tidy changed compiler flags being passed and this kind of invalidated existing ccache’’s cache, but it should back to normal with a next build. I will check it later.

I can retry if you want, but as far as I know clang-tidy is not cached (or is it?).

I can retry if you want, but as far as I know clang-tidy is not cached (or is it?).

Yes… ccache does not support clang-tidy https://gitlab.kitware.com/cmake/cmake/-/issues/21092
Well, any thoughts then?
Btw I am not sure that all cores are used here to build(from cmake docs it is not clear what is default value) 🤔 https://github.com/maplibre/maplibre-gl-native/blob/d81257b8ad52dab32ef7dc98455bf4a4aa392ff6/.github/workflows/core-build.yml#L57

Indeed ninja is not used. Can you add -GNinja somewhere at the start of the CMake command line?

Indeed ninja is not used. Can you add -GNinja somewhere at the start of the CMake command line?

Will do, but unfortunately not today - I am already not near my laptop :)
Also it seems separate clang-tidy checks can have performance issues and there is a way to profile it https://discourse.llvm.org/t/clang-tidy-appears-to-be-significantly-slower-from-clang-15-to-clang-16/68717

48 minutes. Not the fastest but acceptable.
We can consider setting up a more powerful runner.
One question: why are there two .clang-tidy files? Can we consolidate them at some point?

As Siarhei said, tests may not need to be as strict (as often one must do "weird" things in tests). Also at the moment tests are not built in the CI so we may expect a slightly longer build once this happens.

Thanks, I missed that.
@SiarheiFedartsou Thanks for your contribution. 🚀 🙂


⚡ Speed up _display_error_loc() by 25% in pydantic/v1/error_wrappers.py

Change Summary
📄 _display_error_loc() in pydantic/v1/error_wrappers.py
📈 Performance improved by 25% (0.25x faster)
⏱ Runtime went down from 81.6 milliseconds to 65.2 milliseconds
Explanation and details
To optimize this code for better performance, we can avoid the generator expression in the join method by using a list comprehension directly. This small change reduces overhead.
string.join can't join generators because it does not know the length upfront, so it converts it to list internally and it ends up being slower than joining list comprehensions directly.
Correctness verification
The new optimized code was tested for correctness. The results are listed below.
🔘 (none found) − ⚙ Existing Unit Tests
✅ 13 Passed − 🌀 Generated Regression Tests

(click to show generated tests)
# imports
import pytest  # used for our unit tests
from pydantic.v1.error_wrappers import _display_error_loc

# unit tests

def test_basic_single_element_location():
    # Single element location
    error = {'loc': ['field1']}
    assert _display_error_loc(error) == 'field1'

def test_basic_multiple_elements_location():
    # Multiple elements location
    error = {'loc': ['field1', 'subfield2']}
    assert _display_error_loc(error) == 'field1 -> subfield2'

    error = {'loc': ['field1', 'subfield2', 'element3']}
    assert _display_error_loc(error) == 'field1 -> subfield2 -> element3'

def test_edge_empty_location_list():
    # Empty location list
    error = {'loc': []}
    assert _display_error_loc(error) == ''

def test_edge_non_string_elements():
    # Non-string elements in location list
    error = {'loc': [1, 2, 3]}
    assert _display_error_loc(error) == '1 -> 2 -> 3'

    error = {'loc': [None, True, 42.0]}
    assert _display_error_loc(error) == 'None -> True -> 42.0'

def test_error_handling_missing_loc_key():
    # Missing 'loc' key
    error = {'not_loc': ['field1']}
    with pytest.raises(KeyError):
        _display_error_loc(error)

def test_error_handling_non_iterable_loc_value():
    # Non-iterable 'loc' value
    error = {'loc': 'field1'}
    with pytest.raises(TypeError):
        _display_error_loc(error)

def test_performance_large_location_list():
    # Large location list
    error = {'loc': ['field' + str(i) for i in range(1000)]}
    expected_output = ' -> '.join('field' + str(i) for i in range(1000))
    assert _display_error_loc(error) == expected_output

def test_mixed_data_types_in_location_list():
    # Mixed data types in location list
    error = {'loc': ['field1', 2, 'subfield3', None]}
    assert _display_error_loc(error) == 'field1 -> 2 -> subfield3 -> None'

def test_special_characters_in_elements():
    # Special characters in elements
    error = {'loc': ['field1, 'sub@field2', '#element3']}
    assert _display_error_loc(error) == 'field1$ -> sub@field2 -> #element3'

def test_nested_structures():
    # Nested lists
    error = {'loc': [['field1', 'subfield2'], 'element3']}
    with pytest.raises(TypeError):
        _display_error_loc(error)

def test_unicode_characters():
    # Unicode characters
    error = {'loc': ['字段1', '子字段2']}
    assert _display_error_loc(error) == '字段1 -> 子字段2'

def test_immutable_types():
    # Immutable types (tuple)
    error = {'loc': ('field1', 'subfield2')}
    assert _display_error_loc(error) == 'field1 -> subfield2'

def test_large_scale_very_large_location_list():
    # Very large location list for performance and scalability
    error = {'loc': ['field' + str(i) for i in range(1000000)]}
    expected_output = ' -> '.join('field' + str(i) for i in range(1000000))
    assert _display_error_loc(error) == expected_output

🔘 (none found) − ⏪ Replay Tests
Checklist

[X] The pull request title is a good summary of the changes - it will be used in the changelog
[X] Unit tests for the changes exist
[X] Tests pass on CI
[X] Documentation reflects the changes where applicable
[X] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

Hi @Olegt0rr , the 25% gain is the speedup for only the _display_error_loc() function. It was measured on the inputs/tests we generated that are attached in the description of the PR. I also manually verified the gains with this quick benchmark I created.

Oops, this should have gone in v1.10.X-fixes.
@misrasaurabh1, let's skip opening any PRs against v1 files - we're not looking to spend time on performance improvements there.

I already released our v1.10.17 patch, so this won't be included. Happy to consider other PRs that focus on V2 stuff though :).


add velodyne msgs

Public-Facing Changes

"None"
Description

add velodyne msgs
https://foxglove.slack.com/archives/C028UEY858S/p1647589185194409

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

cc @jhurliman


fix: import functions from h3 with relative path

🔗 Linked issue

❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme, or JSdoc annotations)
[X] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

When I use nuxt with pnpm without shamefully-host, I noticed that I can't import functions like defineEventHandler from #imports. When I inspected the generated types in the nitro-imports.d.ts I found why this is. The import in this file is not relative into the node modules store. It is a named re-export like export { defineEventHandler, ... } from 'h3'. This re-export will not work because of the not hoisted h3 package. Every other export/import in this file already used a relative import, so i figured this might be a problem.
With this change, the already existing import resolution map is used to resolve the named import to a relative path. If this named import was by design, I'm interested why, but feel free to just close this PR.
📝 Checklist

[ ] I have linked an issue or discussion. (not applicable)
[ ] I have updated the documentation accordingly. (not applicable)

I also provide a patch for applying the same to nitropack with pnpm patch

PNPM patch to test it with nuxt example project
  "pnpm": {
    "patchedDependencies": {
<EMAIL_ADDRESS><EMAIL_ADDRESS>    }
  }

diff --git a/dist/nitro.mjs b/dist/nitro.mjs
index 1dcaaacd17bb17e68d4f740839ce9a2f1221fd73..c2214be1bd73231be52b7ba15cdde4f729a3b0ce 100644
--- a/dist/nitro.mjs
+++ b/dist/nitro.mjs
@@ -2336,9 +2336,6 @@ async function writeTypes(nitro) {
   let autoImportExports;
   if (nitro.unimport) {
     await nitro.unimport.init();
-    autoImportExports = await nitro.unimport.toExports(typesDir).then(
-      (r) => r.replace(/#internal\/nitro/g, relative(typesDir, runtimeDir))
-    );
     const resolvedImportPathMap = /* @__PURE__ */ new Map();
     const imports = await nitro.unimport.getImports().then((r) => r.filter((i) => !i.type));
     for (const i of imports) {
@@ -2368,6 +2365,9 @@ async function writeTypes(nitro) {
       }
       resolvedImportPathMap.set(i.from, path);
     }
+    autoImportExports = await nitro.unimport.toExports(typesDir).then(
+      (r) => r.replace(/'(.*)'/g, (_, i) => `'${resolvedImportPathMap.get(i) ?? i}'`)
+    );
     autoImportedTypes = [
       (await nitro.unimport.generateTypeDeclarations({
         exportHelper: false,

Thanks for the PR. And i'm certain it is valid. But please reopen when you could provide a minimal reproduction.

i believe this reproduces on a new Nuxt install without shamefully hoist.

i believe this reproduces on a new Nuxt install without shamefully hoist.

That's correct, I didn't state that very clear in my initial comment

So it would not be possible to even reproduce it with nitro alone?
I get the issue but having a fix in nitro that can easily cause regression in Nuxt, does seems needs better fix, possibly in unimport.
@danielroe Feel free to open a new hotfix PR if it is a regression of latest Nitro only, i trust you if you believe it needs hotfix in nitro.

We are already doing this (within nitro) for all the other imports. I think consistency means we should hotfix this now, even if we later move elsewhere.
I haven't yet checked the implementation above.

Regardless i very much appreciate a clear tracker issue for this. Even if we are going with a hotfix first. 🙏


[ACM-14444] Infrastructure virtual machine page

@jlpadilla FYI I know we face the scale issue with thousands of VMs. But I have the search result limit set to -1 to return all resources. I am doing this because I need to combine the VM and its instance resource (node & IP address) into a single object.

/lgtm


Add namespace requires to README examples

Previously the examples were misleading, because it appeared every function was in the same namespace.

Thanks!


rule: every mutation on core state is a separate function!!!

otherwise, the code is only becoming a mess

i n progress!

nice, finally done


FR: Image Decals

Excellent library, but it seems like it doesn't support images being used for the particles (with sizing etc), rather than just a solid color.
Would be a great addition in my opinion.

Interesting idea, I'll study it. Thanks @hitchcott !

Turns out it's pretty easy to implement; here's quick workaround I made:
// particles.js : 292
    if(pJS.particles.shape === 'image'){ // replace with a non-hack
      var image = new Image();
      image.src = '/bubble_decal.png';
      pJS.canvas.ctx.drawImage(image, this.x - this.radius, this.y - this.radius, this.radius*2, this.radius*2);
    }else{
    // deal with shapes

Cool, looking forward to an official version though

Images supported since the 2.0.0 version, thanks for the issue ;)
https://github.com/VincentGarreau/particles.js/releases
Next step: Support multiple images (support just one for now)


Create a way to differentiate between Lenovo A100 GPU usage and other A100 usage in OpenStack

Motivation
We need to prive invoice data to Lenovo for only their A100s so that we pay them for the time their GPUs are used. Closely related to this issue.
Completion Criteria
invoicing data has a way to track the difference between Lenovo and non-Lenovo GPUs. Or we generate a separate invoice for Lenovo that only shows their data.
Description

[ ] @jtriley locate information on the back end that will allow us to differentiate between Lenovo and non-Lenovo GPUs
[ ] brainstorm how to use this information and if it will be better to try to include it in some way with the invoice spreadsheet or if it will be better to generate a separate Lenovo invoice.

already leaning toward a separate invoice but am open to other ideas

[ ] Update OpenStack invoice script to include this data gathering

Completion dates
Desired - 2024-02-27
Required - 2024-04-05

Easy to do using hypervisor name.

If the 5 estimate was too much based on the ease of getting the hypervisor name please feel free to shrink the estimate.


V4: Can't set default value

In gem file
gem 'momentjs-rails', '>= 2.9.0'
gem 'bootstrap3-datetimepicker-rails', '~> 4.0.0'

In js
        $('#user_birthday').datetimepicker({
            defaultDate: "11/10/1984",
            viewMode: 'years',
            format: 'DD/MM/YYYY'
        });

Deprecation warning: moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.
Please update documentation for right defaultDate

the docs on date and defaultDate states that the function will take "string, Date, moment, boolean:false". Therefore, the docs are correct. If you don't want the error, construct the date with a moment or js Date object


Mog

https://github.com/trustwallet/assets/issues/19654

We'd be happy to look into this for you
kindly file a support ticket below
https://forms.gle/FhSmn4AznQtZcruX8


Improve point default color

@jbeezley as discussed, I will let you fix the bugs.

I fixed the tests.  Here is some comparisons of stroke widths 1, 1.25, 1.5, and 2 with both renderers.  I think 2 is too wide especially for this size of point.  In the past, I have noticed bad antialiasing for 1 pixel wide circles in svg.  I checked various browsers and the antialiasing doesn't look too bad anymore, but I think 1.25 might look a bit better.
http://output.jsbin.com/tikota/13

thansk @jbeezley. If I zoom way in, then you will see that 1.25 and 1.5 both look good. I think  1.5 looks slightly better though but folks may prefer 1.25.

Okay, lets go with 1.25 then.

Fixed and ready for merge.

:+1:


fix: receive invitations with public DID

A quick fix for a regression I slipped into the mediation changes. Also a unit test to validate the fix and hopefully prevent future regression.

Codecov Report

Merging #897 (602e008) into master (5687d28) will decrease coverage by 0.22%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #897      +/-   ##
==========================================
- Coverage   98.90%   98.68%   -0.23%
==========================================
  Files         298      298
  Lines       16746    16746
==========================================
- Hits        16562    16525      -37
- Misses        184      221      +37

Codecov Report

Merging #897 (602e008) into master (5687d28) will decrease coverage by 0.22%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #897      +/-   ##
==========================================
- Coverage   98.90%   98.68%   -0.23%
==========================================
  Files         298      298
  Lines       16746    16746
==========================================
- Hits        16562    16525      -37
- Misses        184      221      +37


introduce fixtures and helper functions

TODO:

[x] documentation
[ ] is conu.helpers okay?
[ ] how will users import these functions?
[x] python packaging
[x] rpm packaging

Fixes #142

@dhodovsk I agree, that should be done in https://github.com/fedora-modularity/conu/issues/144 once s/_clean/clean/ is done.

Tests are now passing for me locally.

For the remaining two points, from conu.helpers import get_container_output sounds reasonable. Can this be merged?

Can this be merged?

Yup.
We might revise the imports in future.


已经不能在新版本的Steam登录器中使用了，还请大神能够更新，谢谢您。

It's not working with new Steam launch, hope you can updata or fix it, please and thank you

Hi, is this still an issue? How about with the latest version: 3.0.0?


Enabling Direct Communication Between API and Dex Services Inside Kubernetes Clusters

When configuring terrakube, there might be scenarios where you need the API service and the Dex authentication services to establish direct communication. This setup is particularly beneficial when operating in environments protected by IP whitelisting or behind Web Application Firewalls (WAF).
To facilitate this, an additional configuration parameter can be introduced to support internal communication between these services. Should this parameter be absent in the Helm configuration, the system should revert to using the default URI settings for connectivity. This ensures seamless interaction between services without routing traffic outside of the Kubernetes cluster.
example:

security:
  useOpenLDAP: true
  adminGroup: "TERRAKUBE_ADMIN"
  patSecret: "bAUaAojZP3XhkuE2rWBtR3gRAHPzQKkx"
  internalSecret: "AxxPdgpCi72f8WhMXCTGhtfMRp6AuBfj"
  dexClientId: "example-app"
  dexClientScope: "email openid profile offline_access groups"
  dexIssuerUriExternal: "http://terrakube-api.minikube.net/dex"
  dexIssuerUriInternal: "http://terrakube-dex.svc.cluster.local/"
  existingSecret: false
  ldapConfigSecretName: terrakube-openldap-secrets

Hello @Bart-vanDongen
The value that is being used when deploying the helm chart is .dex.config.issuer in the API configuration here and inside the registry configuration here
I could try to use dexIssuerUriInternal: "http://terrakube-dex.svc.cluster.local/" for the API/Registry but I will have to test if that works in this part of the code because the dex token will be issued by http://terrakube-api.minikube.net/dex but internally validate with http://terrakube-dex.svc.cluster.local/
https://github.com/AzBuilder/terrakube/blob/843b3bf7dadb3a7c2c36429dc91b34593220b045/api/src/main/java/org/terrakube/api/plugin/security/authentication/dex/DexAuthenticationManagerResolver.java#L69
I will do some test and update this issue, thank you for the suggestion.

I did some test @Bart-vanDongen
And it looks like the token issuer should match to the parameter that we send to the api/registry configuration, if the values does not match you get the following error:
java.lang.IllegalStateException: The Issuer "https://5556-azbuilder-terrakube-qctju4md51d.ws-us110.gitpod.io/dex" provided in the configuration did not match the requested issuer "http://localhost:5556/dex"
        at org.springframework.util.Assert.state(Assert.java:97) ~[spring-core-5.3.31.jar:5.3.31]
        at org.springframework.security.oauth2.jwt.JwtDecoderProviderConfigurationUtils.validateIssuer(JwtDecoderProviderConfigurationUtils.java:84) ~[spring-security-oauth2-jose-5.7.11.jar:5.7.11]

The reason is this validation in spring security
https://github.com/spring-projects/spring-security/blob/ce54a6db182479d071bf65e151a58edbcb3b2db2/oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/JwtDecoderProviderConfigurationUtils.java#L87

Hello @Bart-vanDongen
I checked the proposed solution using NimbusJwtDecoder.withIssuerLocation but that method was added in spring security 6.1.0 according to this pull request
https://github.com/spring-projects/spring-security/issues/10309
We are using spring-boot-security 2.7.18 which include spring-security 5.7.11
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-security/2.7.18
So we will have to update spring-boot to version 3, I was planning to do that next month so I will leave this issue open until I complete the migration for now

By the way I will move the issue to the main repository


Fix wrong CMAKE_PREFIX_PATH in vcpkg.cmake

The relative path of the installed directory with respect to the vcpkg.cmake is wrong, and this PR fixes it.

Hi @traversaro, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, MSBOT;

Thanks for catching this. I'm surprised we hadn't hit the issue earlier.


the content of answer.txt in ClozeTesting-all and ClozeTesting-maxmin

Hello! I would like to ask, is the content of answer.txt in ClozeTesting-all and ClozeTesting-maxmin no public? Or do I have a misunderstanding?
https://github.com/microsoft/CodeXGLUE/tree/main/Code-Code/ClozeTesting-all
https://github.com/microsoft/CodeXGLUE/tree/main/Code-Code/ClozeTesting-maxmin

Hi,  thanks for your attention.
No, we don't provide the answers to the public for both ClozeTesting-all and ClozeTesting-maxmin.
To submit to Cloze test of CodeXGLUE challenge, you can generate your prediction output and email to<EMAIL_ADDRESS>


PR title includes module names

Since OAP currently contains many modules that work separately, should we create a new rule for PRs and issues?

A PR/issue doesn't need [module] name in the title
A PR/issue for a specific module needs to include the module name in the title, like https://github.com/apache/spark/pulls

Good idea. cc @jerrychenhf

+1

Close this, new PRs and issues are following this rule.


Unable to use @shopify/shopify-api on lambda aws function

Issue summary
Write a short description of the issue here ↓
I tried to use @shopify/shopify-api on lambda aws.
But when my lambda function I have an error with this package and napi-v6-linux-glibc-x64/node_sqlite3.node.
On local in my macOs, with nodev14, the function works. But when it is executed on lambda, it doesn't work.
Expected behavior
@shopify/shopify-api should work and I don't want to have this error.
Actual behavior
I receive this error on lambda :
{
    "errorType": "Runtime.ImportModuleError",
    "errorMessage": "Error: Cannot find module '/var/task/node_modules/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node'\nRequire stack:\n- /var/task/node_modules/sqlite3/lib/sqlite3-binding.js\n- /var/task/node_modules/sqlite3/lib/sqlite3.js\n-<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>/var/task/utils.js\n- /var/task/index.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js",
    "stack": [
        "Runtime.ImportModuleError: Error: Cannot find module '/var/task/node_modules/sqlite3/lib/binding/napi-v6-linux-glibc-x64/node_sqlite3.node'",
        "Require stack:",
        "- /var/task/node_modules/sqlite3/lib/sqlite3-binding.js",
        "- /var/task/node_modules/sqlite3/lib/sqlite3.js",
        "-<EMAIL_ADDRESS>        "-<EMAIL_ADDRESS>        "-<EMAIL_ADDRESS>        "- /var/task/utils.js",
        "- /var/task/index.js",
        "- /var/runtime/UserFunction.js",
        "- /var/runtime/index.js",
        "    at _loadUserApp (/var/runtime/UserFunction.js:202:13)",
        "    at Object.module.exports.load (/var/runtime/UserFunction.js:242:17)",
        "    at Object.<anonymous> (/var/runtime/index.js:43:30)",
        "    at Module._compile (internal/modules/cjs/loader.js:1085:14)",
        "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)",
        "    at Module.load (internal/modules/cjs/loader.js:950:32)",
        "    at Function.Module._load (internal/modules/cjs/loader.js:790:12)",
        "    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)",
        "    at internal/main/run_main_module.js:17:47"
    ]
}

Tip: include an error message (in a <details></details> tag) if your issue is related to an error
Steps to reproduce the problem

Import Shopify api on lambda function js (Node v14)
Use it on lambda function and execute it

Here the beginning of my file :
const Shopify = require('@shopify/shopify-api').default;

…

  const client = new Shopify.Clients.Graphql(
     process.env.SHOP, // shop
    process.env.ACCESS_TOKEN, // access token
  );

Seeing the same error using the latest version of this package (3.1.3), though it worked fine on the older version I had previously (2.1.0).

Seeing the same error using the latest version of this package (3.1.3), though it worked fine on the older version I had previously (2.1.0).

Having a similar issue on aws lambda with shopify and sqllite3
Version: @shopify/shopify-api": "^3.1.3
{     "errorType": "Error",     "errorMessage": "/var/package.jsondoes not exist",     "stack": [         "Error: /var/package.jsondoes not exist",         "    at Object.exports.find (/var/task/index.js:70410:15)",         "    at node_modules/sqlite3/lib/sqlite3-binding.js (/var/task/index.js:70683:31)",         "    at __require (/var/task/index.js:9:50)",         "    at node_modules/sqlite3/lib/sqlite3.js (/var/task/index.js:70733:19)",         "    at __require (/var/task/index.js:9:50)",         "    at<EMAIL_ADDRESS>(/var/task/index.js:71055:45)",         "    at __require (/var/task/index.js:9:50)",         "    at<EMAIL_ADDRESS>(/var/task/index.js:71301:20)",         "    at __require (/var/task/index.js:9:50)",         "    at<EMAIL_ADDRESS>(/var/task/index.js:145371:21)"     ] }

I've found an ugly fix, but it works.

Download the archive napi-v6-linux-glibc-x64/node_sqlite3.node at the address: https://github.com/TryGhost/node-sqlite3/releases
Put the napi-v6-linux-glibc-x64 directory in src directory of your lambda function.
Create a script called scripts/afterInstall.js, with this following code:

var fs = require('fs-extra')

fs.copy('napi-v6-linux-glibc-x64', 'node_modules/sqlite3/lib/binding/napi-v6-linux-glibc-x64', function (err) {
  if (err) throw err
  console.log('Successfully renamed - AKA moved!')
})

On your lambda package.json, add this script:

"scripts": {
    "postinstall": "node scripts/afterInstall.js"
  },

amplify push

And it works 🎉
I hope ;)

Ended up just reverting to hitting REST endpoint directly until this gets resolved.

Same problem here.
Thank you @renanbronchart I hope they will fix the SQLite requirement if is not used.

Found an easy temporary workaround - essentially prevent node from trying to load sqlite3 and choking. Put this before you require @shopify/shopify-api
var Module = require('module'); var originalRequire = Module.prototype.require; Module.prototype.require = function() {   if (arguments[0] === 'sqlite3') {     return {}   } else {     return originalRequire.apply(this, arguments);   } };

Try something like this:
import Module from 'module';
import { createRequire } from 'node:module';

var originalRequire = Module.prototype.require;
Module.prototype.require = function() {
  if (arguments[0] === 'sqlite3') {
    console.log('Returning fake sqlite3!!!!')
    return {}
  } else {
    return originalRequire.apply(this, arguments);
  }
};

const require = createRequire(import.meta.url);
let Shopify = require('@shopify/shopify-api')

Try something like this:
import Module from 'module';
import { createRequire } from 'node:module';

var originalRequire = Module.prototype.require;
Module.prototype.require = function() {
  if (arguments[0] === 'sqlite3') {
    console.log('Returning fake sqlite3!!!!')
    return {}
  } else {
    return originalRequire.apply(this, arguments);
  }
};

const require = createRequire(import.meta.url);
let Shopify = require('@shopify/shopify-api')

Also having this problem, I can see the workarounds but this seems like a pretty significant bug

+1 for this issue - I'm trying to use with webpack (for Lambda deployment) and running into lots of fun and unexpected issues related to this.

what a bad bug...

Hi folks! Sorry for the delay in responding to this issue, but we have been listening to the points raised here and trying to solve this problem.
As mentioned, none of the database dependencies are now coming directly from this package so that apps have more control over the way they store their sessions. Updating to v6+ will completely remove sqlite as a dependency so you should be able to install the library.
We're still supporting the same options as before with the packages in https://github.com/Shopify/shopify-app-js, but you'll have to import them individually (or create your own) and call them when you need to store / load sessions.
Since the original problem doesn't apply any more, I'm closing this issue. Please do open new issues if you have any problems running the new version!


fix: remove claim_public from fee juice

Please read contributing guidelines and remove this line.

Benchmark results
Metrics with a significant change:

avm_simulation_time_ms (FeeJuice:set_portal): 10.7 (-34%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,745
1,564
716
775 (+3%)
773

proof_construction_time_sha256_30_ms
11,464
3,091
1,381
1,424
1,468

proof_construction_time_sha256_100_ms
44,016
11,791
5,455
5,452 (-3%)
5,690 (-2%)

proof_construction_time_poseidon_hash_ms
78.0
34.0
34.0
59.0
87.0

proof_construction_time_poseidon_hash_30_ms
1,531
423
204
228 (+3%)
269 (-4%)

proof_construction_time_poseidon_hash_100_ms
5,642
1,514
677
722 (-4%)
745

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
4,356
7,876
14,884

l1_rollup_calldata_gas
50,208
92,982
178,336

l1_rollup_execution_gas
843,027
1,576,697
3,362,107

l2_block_processing_time_in_ms
253 (-2%)
458 (+3%)
846 (+2%)

l2_block_building_time_in_ms
11,271 (+1%)
22,011
43,923 (+1%)

l2_block_rollup_simulation_time_in_ms
11,271 (+1%)
22,011
43,923 (+1%)

l2_block_public_tx_process_time_in_ms
9,617 (+1%)
20,342
42,194 (+1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
2,997 (-1%)
4,081 (+5%)

node_database_size_in_bytes
12,603,472
16,670,800

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Circuit
simulation_time_in_ms
witness_generation_time_in_ms
input_size_in_bytes
output_size_in_bytes
proving_time_in_ms

private-kernel-init
77.8
396
21,391
44,898
N/A

private-kernel-inner
155
701 (-2%)
72,372
45,020
N/A

private-kernel-reset-tiny
294
717 (+1%)
65,097
44,886
N/A

private-kernel-tail
160 (+1%)
139 (+3%)
50,608
52,921
N/A

base-parity
5.60
N/A
160
96.0
N/A

root-parity
35.3
N/A
73,948
96.0
N/A

base-rollup
2,788 (-10%)
N/A
189,168
664
N/A

block-root-rollup
41.4
N/A
58,205
2,448
N/A

public-kernel-setup
81.4 (-1%)
N/A
105,085
71,222
N/A

public-kernel-app-logic
94.0
N/A
104,897
71,222
N/A

public-kernel-tail
841
N/A
390,582
16,414
N/A

private-kernel-reset-small
295 (+1%)
N/A
66,341
45,629
N/A

private-kernel-tail-to-public
1,348 (-1%)
615
453,751
1,825
N/A

public-kernel-teardown
80.7 (-2%)
N/A
105,349
71,222
N/A

merge-rollup
20.1 (-1%)
N/A
38,174
664
N/A

undefined
N/A
N/A
N/A
N/A
79,146

Stats on running time collected for app circuits

Function
input_size_in_bytes
output_size_in_bytes
witness_generation_time_in_ms

ContractClassRegisterer:register
1,344
11,731
341

ContractInstanceDeployer:deploy
1,408
11,731
18.3

MultiCallEntrypoint:entrypoint
1,920
11,731
403

FeeJuice:deploy
1,376
11,731
386

SchnorrAccount:constructor
1,312
11,731
72.9

SchnorrAccount:entrypoint
2,336
11,731
384

FeeJuice:claim
1,344
11,731
36.5 (-2%)

Token:privately_mint_private_note
1,280
11,731
106 (+2%)

FPC:fee_entrypoint_public
1,344
11,731
28.1 (-1%)

Token:transfer
1,312
11,731
224 (+1%)

Benchmarking:create_note
1,344
11,731
85.7

SchnorrAccount:verify_private_authwit
1,280
11,731
26.5 (-1%)

Token:unshield
1,376
11,731
521 (-2%)

FPC:fee_entrypoint_private
1,376
11,731
718 (+1%)

AVM Simulation
Time to simulate various public functions in the AVM.

Function
time_ms
bytecode_size_in_bytes

FeeJuice:_increase_public_balance
45.1 (-3%)
2,431

FeeJuice:set_portal
:warning: 10.7 (-34%)
2,930

Token:constructor
81.2 (+6%)
15,813

FPC:constructor
50.1 (-1%)
9,720

FeeJuice:check_balance
37.0 (-1%)
2,357

Token:mint_public
49.4 (-2%)
5,011

Token:assert_minter_and_mint
480 (+1%)
3,155

AuthRegistry:set_authorized
37.0 (-21%)
924

FPC:prepare_fee
198 (-6%)
4,245

Token:transfer_public
21.8 (-22%)
21,586

FPC:pay_refund
45.8 (-1%)
5,303

Benchmarking:increment_balance
1,200
3,496

Token:_increase_public_balance
38.2 (-6%)
2,408

FPC:pay_refund_with_shielded_rebate
54.4 (-14%)
5,303

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.146 (-4%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
2.20
3.91 (-1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.115 (-1%)
0.110 (-1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
11.2 (-2%)
18.0 (+1%)
30.8 (-3%)
61.0 (+4%)
115 (+1%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.108 (-2%)
0.104 (+1%)
0.100 (-2%)
0.105 (+4%)
0.103

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
14.4
26.3 (+2%)
43.8 (-1%)
85.1 (+4%)
161 (-1%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
108
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.111 (-1%)
0.106 (+2%)
0.106 (-2%)
0.105 (+4%)
0.103

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
16.8
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
132
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.108 (+1%)
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
64,838
668,997

Transaction size based on fee payment method
| Metric |  |
| - |  |


App shows wrong Userstatus (online/away users appear as offline)

Summary
The UI of the Github App shows a different User status then the Desktop App / Webinterface.
Environment Information

Device Name:
Xiaomi Mi9
OS Version:
Android 10
Mattermost App Version:
App: 1.31.2 (Github Build)
Mattermost Server Version:
Mattermost-Version: 5.23.0

Steps to reproduce
Setup an Instance with different Users
Expected behavior
The App and the Webinterface should show identical User Status icons.
Observed behavior
The Userstatus varies between Webinterface an Mobile-Application.
Some Users that are online/away are shown as offline Users.
Possible fixes
i dont know maybe some kind of missing status update ?

@ramsonline Would you be able to help test if you see the same on v1.32 beta version?

Is there an APK download available somewhere ?
The F-Droid Build of "Mattermost Beta" had its last changes about 12 Month ago and i do not use the Play-Store. Otherwise i can build it myself but it might take some time.

This is a link to the latest beta APK: https://releases.mattermost.com/mattermost-mobile-beta/1.32.0/298/Mattermost_Beta.apk

Thank you its installed now... ill test it and give feedback in a few days !

This problem seems to be already fixed in the new build. Thanks for your help !


<EMAIL_ADDRESS>

I'm super sorry for creating such a large PR with just one commit... Never again, I promise! I usually don't do these things, please don't judge me :see_no_evil:
In this PR (and only commit):

All codecs are now lowercase, while higher-order codecs are capitalized (credits to @harrysolovay for sharing that idea).
Compat is now compact, I can't believe that it took me soooo long to notice that :sweat_smile:.
SMap is now MapCodec and SSet is not SetCodec (I'm open to suggestions, though)
Date is no longer a higher-order Codec, and instead now we have 2 new codecs: date32 and date64.
All codecs and higher-order codecs have now the properties enc and dec, which expose the underlying encoder/decoder... This can be very useful in those cases that we only care about creating an encoder or a decoder.
Cleaned up lots of internals: toBuffer is now toInternalBytes, removed some "magic numbers" (e.g.<PHONE_NUMBER>4 -> 1 << 30, etc), simplified/improved a few implementations, etc

Things that I haven't had the change to address yet:

Improve the tests. The tests are "bad". However, they don't test internals and we got 100% code-coverage... So, they are not horrible... I'm able to make refactors like this one and the tests actually warn me if I break something, so that's something good. However, they are "bad" because they are not descriptive enough (a few of them actually read "it works" :see_no_evil:, and because they are not testing enough edge-cases).
Create docs and/or significantly improve the README file.

Added a few granular design comments. Given my lack of familiarity with this code base, my comments might not be terribly helpful... but we shall see ;)

Your comments are indeed helpful! thanks a lot for looking into this and for sharing your thoughts!


[WIP] Use visitor based file system mirror

Instead of returning a full list of files in a directory tree, we return something which can be visited.
This allows for changing the file system mirror to a different data structure where all the file collection snapshots are not determined up front.
Only the visitor should then decide how much information it needs.

I ran a performance test on the branch: https://builds.gradle.org/viewLog.html?buildId=13332106&buildTypeId=Gradle_Check_PerformanceTestCoordinator&tab=report_project944_Performance
Nothing too surprising so far. The large java Multiproject build has the biggest regressions.

Closing as superseded by #5661.


Migrate to Go Modules

As per in bip39 repo, it would be nice to use Go Modules and drop the vendor folder.
Also gometalinter has been dropped cause it's deprecated. https://github.com/alecthomas/gometalinter

Hey I really appreciate these contributions. I will try to go through these tonight. A number of pending charges break compatibility so getting modules in place is important.

Hey I really appreciate these contributions. I will try to go through these tonight. A number of pending charges break compatibility so getting modules in place is important.

Sure! Don't know why but the CI seems stuck here. In my fork it's green.


Add network websites

Following: https://github.com/cosmos/chain-registry/pull/636
Source of websites: https://github.com/satoshilabs/slips/blob/master/slip-0173.md
This isn't all networks, but a good smattering of them. Some I was unable to find the website for, but will continue adding.
Signed-off-by: Dylan Schultz<EMAIL_ADDRESS>

Exactly where I was going to fetch websites from. Big thanks, @dylanschultzie! Please consider joining the Chain Reg Telegram group


Encore\Admin\Grid::__toString() must not throw an exception, caught Error: Call to a member function select() on null

Hey,
I got an error every using select on filter, the error as bellow:
Encore\Admin\Grid::__toString() must not throw an exception, caught Error: Call to a member function select() on null
I have already tried #807 but still got the error
protected function grid()
{
        return Admin::grid(Devices::class, function (Grid $grid) {
          $grid->name()->sortable();

          $grid->filter(function($filter){
            $filter->useModal();
            $filter->disableIdFilter();

            $filter->is('building_id')->select(Building::all()->pluck('building', 'id'));
            $filter->like('name');
          });
        });
}

laravel framework version: 5.5.3
laravel-admin version: 1.5.3

In 1.5, $filter->is() renamed to $filter->equal()，and $filter->useModal(); has been removed.

Thank you sir, I think I read a wrong version of documentation. cheers..


Regenerate Bigtable

This generates the streaming server methods.
It doesn't appear to collide with any hand-written code, but it may mean we can either simplify the manual code, or generate the overload in BigtableClient from the already-generated BigtableServiceApiClient.

Yeah I may be able to update the Bigtable generator now to take advantage of this. I'll try to look into that tomorrow.


/usr/local/bin/valheim-server: line 71: /opt/valheim/server/valheim_server.x86_64: Permission denied

Hi, I am getting this error too. I also am using OMV. I think I changed the SGID correctly but I am still having the issue. Any help would be appreciated.
2021-04-09 15:14:36,946 INFO spawned: 'valheim-server' with pid 242
Apr  9 15:14:36 /supervisord: valheim-server INFO - Running Valheim Server
Apr  9 15:14:36 /supervisord: valheim-server DEBUG - [242] - Server config is name: ***** ***, port: 2356/udp, world: test1, public: 0, mod: none
Apr  9 15:14:36 /supervisord: valheim-server DEBUG - [242] - Valheim server with PID 245 stopped
Apr  9 15:14:36 /supervisord: valheim-server INFO - Releasing PID file /var/run/valheim-server.pid
2021-04-09 15:14:36,968 INFO exited: valheim-server (exit status 0; not expected)
Apr  9 15:14:36 /supervisord: valheim-server INFO - Shutdown complete
Apr  9 15:14:36 /supervisord: valheim-server /usr/local/bin/valheim-server: line 110: /opt/valheim/server/valheim_server.x86_64: Permission denied
Apr  9 15:14:36 /supervisord: valheim-server I0409 15:14:36.968069     250 main.go:76] Configuring Valheim server log filter
Apr  9 15:14:36 /supervisord: valheim-server I0409 15:14:36.968226     250 main.go:96] Removing log lines starting with '(Filename:'
Apr  9 15:14:36 /supervisord: valheim-server I0409 15:14:36.968256     250 main.go:89] Removing log lines matching ' '
Apr  9 15:14:36 /supervisord: valheim-server I0409 15:14:36.968276     250 main.go:125] Removing invalid UTF-8 chars: true
Apr  9 15:14:36 /supervisord: valheim-server I0409 15:14:36.968302     250 main.go:122] Removing empty log lines: true
Apr  9 15:14:36 /supervisord: valheim-server I0409 15:14:36.968327     250 main.go:96] Removing log lines starting with 'src/steamnetworkingsockets/clientlib/steamnetworkingsockets_lowlevel.cpp'
2021-04-09 15:14:37,970 INFO reaped unknown pid 247 (exit status 0)
2021-04-09 15:14:40,972 INFO reaped unknown pid 249 (exit status 0)
services:
valheim:
image: lloesche/valheim-server
cap_add:
- sys_nice
volumes:
- /srv/dev-disk-by-label-Storage/software/valheim/data:/opt/valheim
- /srv/dev-disk-by-label-Storage/software/valheim/config:/config
ports:
- "2456-2457:2456-2457/udp"
- "9001:9001/tcp"
environment:
- WORLD_NAME=test1
- SERVER_NAME=***** ***
- SERVER_PASS=secret
- SERVER_PUBLIC=false
- SERVER_PORT=2356
- SUPERVISOR_HTTP=true
- SUPERVISOR_HTTP_USER=beavis
- SUPERVISOR_HTTP_PASS=secret
- STATUS_HTTP=true
- STATUS_HTTP_PORT=9002
- VALHEIM_PLUS=false
- VPCFG_Server_enabled=true
- VPCFG_Server_enforceMod=false
- VPCFG_Server_disableServerPassword=true
- DEBUG_START_FRESH=true
restart: always
stop_grace_period: 2m
After running and redeploying:
root@openmediavault:/srv/dev-disk-by-label-Storage/software# chmod 2777 valheim
This is the permissions I get:
root@openmediavault:/srv/dev-disk-by-label-Storage/software/valheim/data/server# ls -lsa
total 65616
4 drwxrwsrwx+ 4 root root     4096 Apr  9 11:38  .
4 drwxr-sr-x+ 6 root root     4096 Apr  9 11:02  ..
8 -rwxrwxrwx  1 root root     4728 Apr  9 11:01  LinuxPlayer_s.debug
28796 -rwxrwxrwx  1 root root 29484584 Apr  9 11:01  UnityPlayer.so
6876 -rwxrwxrwx  1 root root  7041000 Apr  9 11:01  UnityPlayer_s.debug
132 -rwxrwxrwx  1 root root   133822 Apr  9 11:01 'Valheim Dedicated Server Manual.pdf'
4 drwxrwsrwx+ 2 root root     4096 Apr  9 11:01  linux64
4 -rwxrwxrwx  1 root root      575 Apr  9 11:01  start_server.sh
4 -rwxrwxrwx  1 root root       34 Apr  9 11:01  start_server_xterm.sh
4 -rwxrwxrwx  1 root root        7 Apr  9 11:01  steam_appid.txt
29768 -rwxrwxrwx  1 root root 30480914 Apr  9 11:01  steamclient.so
8 -rwxrwxrwx  1 root root     6344 Apr  9 11:01  valheim_server.x86_64
4 drwxrwsrwx+ 6 root root     4096 Apr  9 11:01  valheim_server_Data
Originally posted by @BigDuke6nc in https://github.com/lloesche/valheim-server-docker/issues/119#issuecomment-816771811

The permission of the executable should be 755 and the filesystem must allow execution. I.e. make sure it isn't mounted with the noexec flag. I do not know anything about open media vault or its quirks when it comes to running Docker containers so maybe someone with relevant experience can chime in here.

Thanks for the fast response. Yeah I get permission denied when I try to run the executable.
root@openmediavault:/srv/dev-disk-by-label-Storage/software/valheim/data/server# ./valheim_server.x86_64
-bash: ./valheim_server.x86_64: Permission denied

@BigDuke6nc ok then the task at hand would be to figure out why. Alternatively you could just not mount /opt/valheim. The downside is that it'll then have to download the 1 GB Valheim dedicated server from Steam on each container update. The upside is that it is no longer affected by any external filesystem mount quirks.

Sorry, not sure where or what you want me to run the mount command on. Outside of my comfort area in docker. Can you explain a little further on what you are looking for?

On the same shell where you ran ./valheim_server.x86_64 run mount and paste the output here.
The output of cat /etc/mtab might also help in figuring out what's going wrong.

It's been a long time, but once upon a time I used OMV and had to remove noexec from an environmental variable to get Plex to run, docker/valheim may be similar.
https://openmediavault.readthedocs.io/en/5.x/various/fs_env_vars.html

@Outshynd that looks exactly like what is going on here. Thank you!
@BigDuke6nc can you see if this works on your system? If so would you mind taking screenshots and write up what you had to do to resolve the issue, so we can extend the README with Open Media Vault information for other users?

Thanks folks! That was it. Here are the steps to fix for Portainer:
1.) SSH your server and become root.
2.) nano /etc/openmediavault/config.xml
3.) F6 to search. Search for "noexec". It will be in the mntent section.
Should look something like this:

4.) Replace noexec with exec.
5.) Cntrl X, Y, then Enter to save.
6.) Back at the prompt. For OMV 5: omv-salt-deploy run fstab For OMV 4: omv-mkconf fstab

Thank you for the screenshot. I've extended the README with the information.
Btw. exec is the default so just removing noexec will do the trick.


Fix build

Fix the make packages failure because the command sources are not in the expected directory
$ make packages
Makefile:17: warning: overriding recipe for target 'dependencies'
/projects/src/github.com/src-d/gitbase/.ci/Makefile.main:98: warning: ignoring old recipe for target 'dependencies'
/bin/bash: line 0: cd: /projects/src/github.com/src-d/gitbase/cmd/gitbase: No such file or directory
Linking matching OS/Arch binaries to build/bin folder
gitbase_darwin_amd64/
gitbase_darwin_amd64/gitbase
gitbase_linux_amd64/
gitbase_linux_amd64/gitbase

Superseded by: https://github.com/src-d/gitbase/pull/257


Make the example materials using CSM instead of shaderMaterial

https://github.com/FarazzShaikh/THREE-CustomShaderMaterial

Will probably use shader-composer instead


docs: gitignore .pyc files generated during sphinx-build

@asger-semmle I just added another gitignored entry that should enable you to set up the RestructuredText extension for VSCode without generating untracked files https://github.com/vscode-restructuredtext/vscode-restructuredtext
If you use VSCode, the extension is useful to quickly generate previews in the IDE without having to run sphinx-build.

@asger-semmle would mind merging this please?


Subscription missing key first_subscription_item

Hello,
The key first_subscription_item is missing as it is not parsed out in the Subscription module.
I'm new to the LemonSqueezy API but it seems like it's necessary for extracting the price. (https://docs.lemonsqueezy.com/guides/tutorials/nextjs-saas-billing#syncing-subscription-data)

@samrat I just released v0.2.2 which now includes that field. Could you test it please?


Restyle turbolinks progress bar

Fixes #658

I ended up really liking the constrasting yellow look. Changed the behavior a bit so it doesn't shift the nav down when it appears, which was causing a vertical scrollbar to briefly appear.


Updated ko-KR

Resolved / Related Issues
Items resolved / related issues by this PR.

Updates Korean (ko-KR) translations

Details of Changes
Add details of changes here.

Add translations for untranslated texts marked as 'new'
Proofread existing translations
Also edit some translations to match Korean texts in Windows Explorer

Thank you!