[WIP] Fix unexpected coud-init guest reinitialization by introducing new CloudInitVersion field

This is the second attempt to fix nasty behaviour observed on the Vm with a cloud-init configuration: the field
сonfig.UUIDandVersion.Version is incremented by one each time an application (VM) restarts from the zedcontrol, which causes cloud-init to be triggered in the guest and repeat the whole init procedure which is catastrophic for the guest.
We can't prevent zedcontrol from incrementing the version field, because this is part of the spec, but what we can do is introduce another field dedicated for the cloud-init versioning.
This won't work without corresponding fix on the zedcontrol: in order to keep old domain configs compatible and fix the nasty behaviour zedcontrol has to update a new cloud-init version field once with the old version, i.e. something like this on the zedcontrol side:
    Update(config):
        ...
        if config.CloudInitVersion == 0:
            // This happens once for old configs where the cloud-init
            // version field is missing
            config.CloudInitVersion = config.UUIDandVersion.Version

        config.UUIDandVersion.Version++

On the EVE side we start using a new config.CloudInitVersion field once it is not zero, which guarantees us that we always backward and forward compatible.

@giggsoff Could you please take a look?

This looks good to me, and is inline with what we discussed :+1:

Difference to the previous version:

Yetus fixes

Difference to the previous version:

Yetus fixes
Updated generated files after make proto, make proto-vendor

Difference to the previous version:

Rebased on latest master


Module not found: Error: Can't resolve 'https-proxy-agent'

My CICD Building phase failed with the following error:
Module not found: Error: Can't resolve 'https-proxy-agent' in '/home/runner/work/wechaty.js.org/wechaty.js.org/docusaurus/node_modules/@redocly/openapi-core/lib/redocly'

I checked StackOverflow and it seems to be the network error

@huan My mid-term PR's CICD passed 3 days ago, and I finished my final blog on the final branch based on sales-mid-term branch.  There is only minimal changes (blog+asset) but resulted in a package error.  So I really think there is a change in the CICD scripts or source code which resulted in this issue.  To make sure it is not caused by me, I created a new branch, test-final, which has the exact same code as  sales-mid-term branch and failed the CICD.  So I really wish you can help me fix this package dependency error.  Thanks!

Please contact your mentor, thank you very much.

@huan I suppose this CICD bug is due to the recent modification in wechaty.js.org.  Shouldn't I contact the managers of this repo?

Ok, If you believe you ran into CI/CD bug, you can post the problem after you confirm it:

try to reproduce the problem in your local environment by running npm run build, and make sure it works in your local environment. If it passes, then go to 2; If not, you need to figure it out in your local environment;
if you can pass 1 but fail to pass the GitHub actions, please try to reproduce the GitHub actions problem in your local environment, and then provide the reproducible steps in your issue in detail.

Please feel free to let me know if you have more questions.

Got it, thanks

@huan I replicated the bug in my local environment.  The issue is that the main branch lack the following 3 packages:

https-proxy-agent
net
tls

I installed it in my branch and it now passed the CI/CD.  However, I suppose others will face the same issue so the dependency issue needs to be fixed.

This is my final branch which passed the test.

Great to know you have figured the problem out and have a fix for it!
Please update your PR so that it can make your PR pass the tests, then you will be able to move forward wth your mentors.

I'm not sure where this problem comes in because our main branch was good before, but it seems that it fails too.
I think we can merge the new dependencies if those are the only changes to fix it.

OK, , please notify me if my PR is merged or if other related patch is merged by you.  I will also be aware of this fix too.

@KevinTung Please help us to close this issue if it has been solved, thank you very much!


Interpret ~ for taskbookDirectory for specifying paths relative to the home directory.

Is your feature request related to a problem? Please describe.
I'd like to put the taskbook storage inside ~/.config/taskbook. But I get the error "Custom app directory was not found on your system" when I do this. It works when I manually expand ~ to my home directory.
This is more of a hiccup during setup than a deal-breaker. The description on the github landing page uses ~, so it was confusing when the application didn't support it.
I love the application!

The issue has been fixed on PR https://github.com/klauscfhq/taskbook/pull/35. New release delivering it will be out soon : )


@parent being stripped out of string by blade

Laravel Version: 5.3.30
PHP Version: 7
Database Driver & Version:  mysql

Description:
The string @parent is being stripped out of strings when used within @section, I think this is a blade bug. Usually this wouldn't be a problem (well it's a problem but it's an edge case), however I have a user with an email containing @parent and my system involves emailing these users via a web form.
The @parent part of the email is stripped out meaning unless the admins know of this issue they don't know why there isn't a valid email address.
This seems to have be recognised a while ago: https://www.reddit.com/r/laravel/comments/2y0iuu/beginner_blade_question/
This happens from within {{<EMAIL_ADDRESS>}}, {<EMAIL_ADDRESS>!!} and <?php echo<EMAIL_ADDRESS>?>
Steps To Reproduce:
Using blade echo out<EMAIL_ADDRESS>within an @section closure, you will see "xyz.com".

A note; @parent is a Blade keyword, and it's not being stripped, it's being replaced with a previously rendered section. I just happens to be blank in your case. There's an example of @parent at https://laravel.com/docs/5.4/blade under the section Extending A Layout.

Please upgrade to 5.4, 5.3 is not supported.


Adding version subcommand to CLI

Coverage decreased (-0.04%) to 72.448% when pulling 51f1f66c7ede5b58e332ff520f188dd7e2032fa2 on version_cli into 3d1fc99353557aa42c14e760e01774fd624d7805 on master.


Changed webpack config

2 bundles are emitted, one for browser usage and one for module usage

Pull Request Test Coverage Report for Build 99

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 51:
0.0%

Covered Lines:
4

Relevant Lines:
4

💛  - Coveralls


Why does modifying the "z" Depth value of gl_Position does not work with BGFX?

Hello,
I wanted to render a skybox infinite far away like in the OpenGL tutorials.
To make it infinite far away, I use .xyww on the gl_Position to make it always the furthest object.
This is my vertex shader:
void main() {
	v_texcoord0 = a_position;
	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0)).xyww;
	gl_Position.z -= 0.0001; // Required to fix depth overlapping bugs.
}

The problem is even with the .xyww I'm still able to move out of the skybox cube but as far as I understand that
should not be possible as it should always be on the max z value:

As render states I use
BGFX_STATE_WRITE_RGB | BGFX_STATE_WRITE_Z | BGFX_STATE_DEPTH_TEST_LESS | BGFX_STATE_MSAA | BGFX_STATE_CULL_CCW
for each object, even the skybox.
As reset flags I use:
BGFX_RESET_MSAA_X16 | BGFX_RESET_HIDPI | BGFX_RESET_MAXANISOTROPY | BGFX_RESET_DEPTH_CLAMP
Does anybody know what the problem might be?
Thanks in advance!

###########################################################################

IMPORTANT: READ FIRST!

If you have any questions please ask on Discord: https://discord.gg/9eMbv7J (documentation might help too: https://bkaradzic.github.io/bgfx/)

Issue tracker is **ONLY** used for reporting bugs. New features should be discussed on our Discord channel: https://discord.gg/9eMbv7J

###########################################################################


added code for deleting customer

Codecov Report

Merging #145 (cafb7e9) into master (305a864) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #145   +/-   ##
=======================================
  Coverage   95.71%   95.71%
=======================================
  Files           7        7
  Lines         490      490
=======================================
  Hits          469      469
  Misses         21       21

Continue to review full report at Codecov.

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


Support casting arrays in TEXT column to ARRAY(TEXT) directly

Problem Statement
cr> SELECT '{"a":["b"]}'::OBJECT(IGNORED)['a']::ARRAY(TEXT);
+-------+
| ['b'] |
+-------+
| ["b"] |
+-------+
SELECT 1 row in set (0.001 sec)

cr> SELECT '["b"]'::ARRAY(TEXT);
SQLParseException[Cannot cast `'["b"]'` of type `text` to type `text_array`]

Possible Solutions
support SELECT '["b"]'::ARRAY(TEXT);
Considered Alternatives
wrap in OBJECT

I'm not sure that's a good idea. There are multiple array formats - for example in the PostgreSQL wire protocol there's a {"a", "b"} notation. That's actually also what would work in PostgreSQL to convert to text[]:
# select '{"a", "b"}'::text[];
 text
-------
 {a,b}
(1 row)

If you use the JSON array notation you get an error:
select '["a", "b"]'::text[];
ERROR:  22P02: malformed array literal: "["a", "b"]"

Can you give some more context on the use case? If you have a literal, why not use proper array syntax to begin with?

I don't exactly remember how I ended up with an import into that ignored object, which could not be parsed. I think this is generally more a question about being compatible with JSON specifications, which allows both top-level array as well as top-level scalars (neither supported by PostgreSQL).
However this seems to work anyway:
cr> CREATE TABLE t001 (obj OBJECT(IGNORED));
cr> INSERT INTO t001 VALUES ('{"a":["Hello","world!"]}');
cr> SELECT obj['a']::ARRAY(TEXT) FROM t001;
+------------------------------+
| cast(obj['a'] AS text_array) |
+------------------------------+
| ["Hello", "world!"]          |
+------------------------------+

so I will close this for now.


fix: add path for suggested perf counter

The name and path for the perf counter are not the same. Tbh, I'm not entirely certain if the original perf counter mentioned Avg. Transaction ms/Commit is the same as \Service Fabric Replicator()\Avg. Commit ms/Operation
On an ASF node:
PS C:\Users\adminuser> (Get-Counter -ListSet "Service Fabric Replicator").Paths
\Service Fabric Replicator()\Enqueued Bytes/Sec
\Service Fabric Replicator()\Enqueued Operations/Sec
\Service Fabric Replicator()\Current Role
\Service Fabric Replicator()\% Replication Queue Usage
\Service Fabric Replicator()\Avg. Cleanup ms/Operation
\Service Fabric Replicator()\Avg. Complete ms/Operation
\Service Fabric Replicator()\Avg. Commit ms/Operation
\Service Fabric Replicator()# Operations Replication Queue
\Service Fabric Replicator(*)# Bytes Replication Queue

@jpoon : Thanks for your contribution to the Azure documentation! The author, @dkkapur, has been notified to review your proposed change.

Argh, was looking at the wrong counter.


Check boxes Don't Work

Expected Behavior
They should change from red to blue.
Actual Behavior
It does not and throws a js error:
Blockly.addClass_ is not a function

Steps to Reproduce
Open up playground and click checkbox.
Operating System and Browser
Windows 10 Chrome

Monitors (and the checkboxes that control them) have not yet been implemented. While they shouldn't throw an error, I'm going to backlog this for now.

This is just that we missed a spot when moving to Blockly.utils.  It's
fixed in my merge pr.
On Thu, Feb 16, 2017 at 5:35 AM Andrew Sliwinski<EMAIL_ADDRESS>wrote:

Monitors (and the checkboxes that control them) have not yet been
implemented. While they shouldn't throw an error, I'm going to backlog this
for now.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/LLK/scratch-blocks/issues/794#issuecomment-280331584,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANDWfw5DkuyRl7pVM1I8KPMJ1X84eE5Oks5rdFCmgaJpZM4MCghe
.


fix(sandbox): Removed node_modules from .dockerignore

Description
Removed node_module. This will break node_modules copy during lerna bootstrap if not removed
Type of change
Please delete options that are not relevant.

[X] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Tested with Lerna bootstrap

Checklist:

[X] Performed a self-review of my own code
[ ] npm test passes on your machine
[ ] New tests added or existing tests modified to cover all changes
[ ] Code conforms with the style guide
[ ] API Documentation in code was updated
[ ] Any dependent changes have been merged and published in downstream modules

Why remove the node_modules from dockerignore? That's going to create extremely long build times and should be ignored by Docker.

not needed anymore. closing it.


Is not working

I pressed the "Y" key a lot and nothing happens. My game is up to date and created the .ini file correctly, but it didn't work

Do you have version.dll or dinput8.dll in your game directory?
Do you also have ScriptHookRDR2.dll?
Is there a file called SlowMoOnDemand.asi?

Yes, look:

Downloaded archive "SlowMoOnDemand.asi" in: https://www.nexusmods.com/reddeadredemption2/mods/1621?tab=files&file_id=6429

Delete the SlowMoOnDemand.ini file. The mod should regenerate the file. Then try pressing Y again ingame.

Did the mod generate a config file? If it did, then another mod is setting the speed of the game to 1.

Yes it is generating the ".ini" with the definition of variables and key trigger. Alright, I'll remove them to test

Confirmed, some other mod is interfering with this behavior. Thank you for your help!

Glad to see that helped. What is the name of that other mod? I may make my mod patch that mod to make it compatible.

I found exactly the problem. In this trainer mod, there is an option unchecked by default in changing weathers, gameplay speed, etc... So just enable the option and both mods work!: https://www.nexusmods.com/reddeadredemption2/mods/190

Glad to see that the problem has been fixed. Closing this issue as fixed.


Materia-Dialogs cancelable in a dialog fragment

Hi,
I think to have found a little bug.
I wrapped your Material Dialog in a DialogFragment, the same way you do in FolderSelectionDialog.
Even if I set cancelable to false to the builder or the Material Dialog in this scenario, the dialog always closes when I touch outside its window or click the back button.
Bye

Don't mind...in that scenario (in a DialogFragment) you have to use the "setCancelable()" method of the DialogFragment class itself.
Bye

Good to know, but not sure if this wouldn't be improved.

This is an Android framework issue, it has nothing to do with the library itself.
You can't directly use setCancelable(boolean) on an AlertDialog or plain Dialog in a DialogFragment.


clarify GDC population at startup

The WIS2 Guide states in section 8.4.1:

A Global Cache will store a full set of discovery metadata records. This is not an additional metadata
catalogue that Data Consumers can search and browse – it provides a complete set of discovery
metadata records to support populating a Global Discovery Catalogue instance.

This ensures that a GDC can initiate itself from already published discovery metadata in the event of a catastrophe/re-deploy.
Options:

have Global Caches store all discovery metadata at a known endpoint for a GDC to bootstrap itself on init
re-define the above and specify that WIS2 Nodes are required to re-publish all discovery metadata on a periodic basis (weekly?)
other options?

cc @golfvert @6a6d74 @efucile

As a start variant option 1 is ok from my point of view, later it depends on the total number of metadata, as they could then not be overwritten again after 24 hours like the other cached data.
Option 2 I do not prefer
Alternatively, each WIS2 node could provide its own metadata on its data server permanently instead of only for the initial downloads after an update/add. But this would have the disadvantage that for an initial recovery all single sources would have to be queried. To do this, the source web service addresses must be listed somewhere. Even if this could be done via service metadata in the WDCs, a query would then first have to be run on another WDC and the risk of total stock gaps due to WIS2 Nodes that cannot currently be queried would be quite high. On the other hand, it has the advantage that each WIS2 Node is responsible for the completeness and provision of its own metadata.

I would prefer Option 1. Republishing metadata regularly sounds not good to me.
For the endpoint: This could be added to the GC service metadata. This way GCs could change the URL by updating their own metadata. A GDC could then query GC metadata from another GDC and use this information to populate its own metadata store.

@kaiwirt sure.  GDCs can publish WCMP2 service records of themselves, and provide a link to an archive like:
{
    "rel": "archives",
    "type": "application/zip",
    "title": "Archive of all WCMP2 records",
    "href": "https://example.org/path/to/gdc-wcmp2-latest.zip"
}

Yes, we are saying the same thing.  The "known URL" is a function of the link with rel=archives in the GDC WCMP2 record.

Real world example: we (Canada) had to re-initialize our GDC this week, and found that we could not find an "archive" from which to perform a cold start.
We have initially loaded all known wis2box discovery metadata because we know how wis2box makes WCMP2 available (supported by the GDC reference implementation).
Of course this is not enough, as we need all WCMP2 for all WIS2 Nodes on cold start.
Ideally all records should be in the GC for a GDC to pull from.
cc @golfvert @kaiwirt @antje-s

For (almost) static data like metadata records, or climate datasets or... I would suggest publishing (eg) once a day a notification message. I wouldn't create a special case for metadata such as zip file.

Moving this Issue to "urgent" - we need some discussion on this ahead of the face-to-face meeting in November

Discussed at ET-W2AT, 16-Oct-2023. Summary of key points and decision below.
Objectives:

Provide a full set of metadata records to "bootstrap" a GDC from scratch (e.g., a metadata archive)
Avoid routine publishing of messages that refer to resources that have not changed (e.g., a metadata record that is only updated once or twice per year)
Avoid forcing the GC to implement special logic for different types of resource (data, metadata, reports)
Ensure that the metadata archive is provided in a fault tolerant way (i.e., available from multiple locations)

Proposal:
Move the requirement to manage a discovery metadata archive from the Global Cache to the Global Discovery Catalogue. The GDC already has to implement logic dealing with inserts, updates and deletions to the catalogue. Publishing a resource which contains the full set of currently valid metadata records seems reasonable straightforward for the GDC. This means that the GC no longer has to implement special application logic just to deal with metadata records.
As with other data and metadata, the GC would subscribe to updates about these metadata archive resources and download a copy for re-publication, caching it for 24-hours.
This adds the need for the GDC to operate a Message Broker. But @golfvert noted that all Global Services will need to operate a Message Broker to publish WIS2 alert/monitoring messages (i.e., "reports"). This lead to a wider discussion about "report" messages in WIS2.
We also noted that a WIS Centre may share its technical capabilities (e.g., a Message Broker) with another WIS Centre. For example, DWD may allow MSC to publish notifications on its broker. This is a bilateral agreement and doesn't need to be covered in the Tech Regs. In this example, MSC would still be accountable for operating a broker; they do so by delegating responsibility to DWD. The Guide needs updating to describe this arrangement, which is likely to happen where larger Centres are supporting smaller ones (e.g., NZ supporting Pacific Island States).
Actions:
Define the details of the metadata archive resource (e.g., zip file?).
Define the details of the notification message to be used - especially where it's published in the topic hierarchy.
Create / update Issue about the [different types of] report messages in WIS2. << @tomkralidis
Update Technical Regulation (Manual on WIS Vol II):

[update] <IP_ADDRESS> A Global Cache shall retain a copy of core data and discovery metadata for a duration compatible with the real-time or near real-time schedule of the data and not less than 24-hours.
[delete] <IP_ADDRESS> A Global Cache shall replace a discovery metadata record if an updated version is available.
[delete] <IP_ADDRESS> A Global Cache shall retain a copy of a discovery metadata record until a notification is received indicating that the record should be removed.
[add] 3.7.6.x A Global Discovery Catalogue shall operate a Message Broker.
[add] 3.7.6.x Once per day, a Global Discovery Catalogue shall publish the complete set of valid discovery metadata records as a single downloadable resource (i.e., a metadata archive file).
[add] 3.7.6.x A Global Discovery Catalogue shall provide open access to the metadata archive resource.
[add] 3.7.6.x A Global Discovery Catalogue shall publish notifications via its Message Broker about the availability of a new metadata archive resource.
[update] 4.5.4 Based on received notifications, a Global Cache shall download core data and discovery metadata from WIS nodes and other Global Services and store for a duration compatible with the real-time or near real-time schedule of the data and not less than 24-hours.
[delete] 4.5.5 Based on received notifications, a Global Cache shall download discovery metadata from WIS nodes or other Global Caches and store until receipt of a notification requesting deletion of that discovery metadata record.
[add] 4.6.x A Global Discovery Catalogue shall, once per day, publish the full set of valid discovery metadata records as a single-file, downloadable metadata archive resource and publish a notification message advertising availability of this metadata archive resource.

Update the Guide to reflect this proposal and add section talking about bilateral agreements to share technical components.
Amend GDC implementations.

Create / update Issue about the [different types of] report messages in WIS2. << @tomkralidis

Added in #44

Sure, so this means a GDC needs to explicitly specify that a metadata archive is to be cached.

Why the metadata zip file wouldn't be like any other data that we exchange in the normal data tree ?
Then for the other point of the discussion monitor/alert I would put this outside the user visible tree of origin/ and cache/.
This is something only for WIS2 operations and there is no need to have them visible to all.
So in summary:

For the metadata zip from GDC just a normal product with the normal notification message
For the alerting and monitoring using monitor/... and a notification message with a different structure and convention.

Treating the metadata archive as …/data/core/… is also OK. And it would be my preference. We just need to decide :)
If we do treat the metadata archive like data then maybe it should have a discovery metadata record too? Discoverable via the GDC.

@tomkralidis, @golfvert - can we conclude this discussion? I think the only outstanding decision is whether we treat the metadata archive as a "normal" data resource - implying it sits in the .../data/core/... subtree of the topic hierarchy and has a discovery metadata record itself.

Given the context of this issue, i.e. the purpose of a such an archive would be primarily to support a cold start; suggest (for this phase):

post to .../metadata/...
no WCMP2 record

If we want to provide metadata as data, along with a WCMP2 record, I think we need to have more discussions around lifecycle:

how often to archive
what do provide and how far back, i.e. should we take daily snapshots and allow for retrieval of the archive at a given state/date?

In other words, the GDC becomes a pseudo data provider and needs to consider the data management lifecycle.

Decision
Each GDC will publish every day a zipfile containing all metadata records and will provide a landing page with a link to the zipfile.
GDC will publish the zip file on metadata topic hierarchy.

PR in #48.  Note that related GC provisions are already in the Guide.


Support for Docker compose files

From @armin-joellenbeck on December 23, 2017 9:21
Knowing when new Docker images are published would be helpful when the are used in a Docker compose file too.
Just like #20, with the file docker-compose.yml instead of Dockerfile.
Copied from original issue: dependabot/feedback#66

👍  for this, and should be relatively straightforward. A couple of things I want to get to first, but I'm definitely game for adding this to Dependabot at some point!

Hi,
This would be a really good addition, is this still going to happen someday ?
Thanks in advance

I hope so, yes! This is another one that @hmarr owns on our side, but he's very busy scaling Dependabot up to 100m repos!

@stalebot please leave this open - hoping it gets implemented

Instead of just hardcoding the docker-compose.yml filename it should be possible to specify a file mask or explicit list of files to check within the project.

I want this feature too

Are there any plans to finish the feature similar to what Renovate has?

There are any plan to add this?

There are any plan to add this?

We don't have any plans to add support in the near future. Eventually we'd love to support it, but currently our team doesn't have any capacity to work on this or even properly review and maintain a community contribution for this

This issue was created almost 3 years ago and there seems no progress so far, but Renovate Bot may be a solution until it's finally available in dependabot.
Hopefully we may see support for docker-compose.yml files one day :monocle_face:

@jurre Any luck so far? 🙂

@jurre Any luck so far? slightly_smiling_face

Btw Renovate works perfectly for docker-compose.yml too :wink:

Renovate seems like a seriously powerful Dependabot alternative, though I wasn't thrilled with its self-hosted/GitHub Actions support, I wanted to see how to do this with Dependabot directly.
This is possible through a workaround as Dependabot can update Dockerfiles.
To have Dependabot manage the images in a docker-compose configuration, simply:

Create a new subdirectory in your repository where you'd like to manage these images. I will use docker/
Create a Dockerfile for each of the services' images (use build instead of image in each service)
Configure your .github/dependabot.yml to check for docker updates

Example
docker-compose.yml
---
version: '3'
services:
  pyvista:
    build:
      context: ./docker
      dockerfile: pyvista.Dockerfile
    ports:
      - 8000:8000

docker/pyvista.Dockerfile
---
FROM ghcr.io/pyvista/pyvista:v0.33.2

.github/dependabot.yml
---
version: 2
updates:
  - package-ecosystem: "docker"
    directory: "docker"
    schedule:
      interval: "daily"
    labels:
      - "dependencies"

Then, you will see Dependabot bump that image/service directly in the Dockerfile

Demo in https://github.com/banesullivan/test-actions/pull/15 and example in https://github.com/banesullivan/test-actions/tree/1c7b0d3eab0e1a3b1da88153d0427a9b9442a726

This is possible through a workaround as Dependabot can update Dockerfiles.

I think the goal should be to update a docker-compose.yml file directly without having to create (and maintain) additional Dockerfiles.
Even if Dependabot can update Dockerfiles it still cannot update docker-compose.yml files as of now.

Even if Dependabot can update Dockerfiles it still cannot update docker-compose.yml files as of now (and this what this issue is about).

Exactly. I needed to have this working recently regardless of the state of this issue as it's clear in the thread above that this isn't changing anytime soon. Take my post above as merely a workaround with the current state of Dependabot for those who need something more immediately without switching to a different toolkit altogether.
I look forward to this one day being addressed in full.

I think the goal should be to update a docker-compose.yml file directly without having to create (and maintain) additional Dockerfiles.
Even if Dependabot can update Dockerfiles it still cannot update docker-compose.yml files as of now (and this what this issue is about).

+1. I just landed here after getting this exact issue working in Renovate.

For the work around also note you need to run a docker compose build before you actually on the newer image. You can run a docker compose up --build as a fallback. But we actually use a docker compose run which does not have the build flag.

would be awesome to have this feature

i was wondering why its not working as it seems to be possible and its very common.

To provide a little more clarity here, this is something I'd personally like to see us eventually support. However, Docker as an ecosystem is complicated because there's a lot of places that folks want us to bump docker images, see examples here:

https://github.com/dependabot/dependabot-core/issues/7189

Although we shipped support for bumping docker image tags in k8s config files, I personally feel that was a bit of a mistake--I've already seen places in the code where we have to guess "is it a k8s file?" and we don't always get that right... so before we add support for bumping docker image tags in more places, I'd much rather see us cleanup how users can specify which type of language files they want us to bump docker images in.
So I think #7189 or a variant of it is what's needed to unblock this (as well as the other types of files users want to be able to bump docker image tags).
We know that the current config file schema has some limitations, and while nothing is currently planned, it is a topic we'd like to re-examine in the not too distant future.

but aren't Docker Compose files supposed to conform to docker-compose(\..+)?\.ya?ml? Even if not everyone is using them that way, if at least the base standard for Docker Compose files is implemented that's at least something? Then any future work to ensure file targeting is configurable can simply build on what's already there, rather than excluding Compose files indefinitely until the nirvana can be reached.

but aren't Docker Compose files supposed to conform to docker-compose(\..+)?\.ya?ml?

Not exactly. Since Compose v2, compose.yaml is preferred. Renovate uses (^|/)(?:docker-)?compose[^/]*\.ya?ml$.

Just buy Renovate already, integrate and call it done people 🤣

I made this a few months ago as a workaround until is supported by dependabot. https://github.com/sbe-arg/simple-compose-service-updates in case anyone is interested

I made this a few months ago as a workaround until is supported by dependabot. https://github.com/sbe-arg/simple-compose-service-updates in case anyone is interested

Looks interesting, but these two points sounds too limiting: "compose files must be on your repo root" (complex projects often have several compose files in different dirs) and "requires full registry including default docker.io/…" (no one name images from default registry this way in compose files and requiring this won't work because people will forget to do this because compose itself will work without this and only updates will be broken which is much harder to notice).

The compose file locations is a very easy fix, noone has requested a path var or a full scan of yaml files in all subdirectories.
The registry names is harder although for docker hub it can be mocked, other registries always have to be specified.
Open issues and ill try to address them. Thats the normal process for open sourcing.

any update?

👍 for this, and should be relatively straightforward. A couple of things I want to get to first, but I'm definitely game for adding this to Dependabot at some point!

whats up?
or any temporary solution after 5 years!

Any temporary solution

@AliMD, I recommend reading through all of the above comments for a few different workarounds. My comment above is, in my opinion, a fairly robust workaround: https://github.com/dependabot/dependabot-core/issues/390#issuecomment-1062170379

Here's a pointer to the Renovate code that could jump-start a Developer in to making this work on Dependabot.

Any temporary solution

@AliMD, I recommend reading through all of the above comments for a few different workarounds. My comment above is, in my opinion, a fairly robust workaround: #390 (comment)

thank's
this can solve as a tmp solution

Here's a pointer to the Renovate code that could jump-start a Developer in to making this work on Dependabot.

@mountainash Thank you, but we currently use Dependabot. Switching to another tool would involve a time investment.

👍 for this, and should be relatively straightforward. A couple of things I want to get to first, but I'm definitely game for adding this to Dependabot at some point!

@greysteil is any plan for support this? or use another tool?

Not sure - I haven't worked on Dependabot for a few years now. @jeffwidman might know?

Unfortunately I'm also no longer on the Dependabot maintainer team so have no additional insight into this.

The only solution for me was just using Renovate for everything, either self hosted or as the free GitHub App.

So I'm guessing we're all jumping ship and boarding Renovate? :P

Is this still planned?

Would definitely love this!
I have the PR ready to go 🙂
version: 2
updates:
  - package-ecosystem: "maven"
    directory: "/"
    schedule:
      interval: "daily"

  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"

  - package-ecosystem: "docker-compose"
    directory: "/"
    schedule:
      interval: "weekly"

  - package-ecosystem: "docker"
    directory: "/kubernetes/"
    schedule:
      interval: "weekly"

  - package-ecosystem: "docker"
    directory: "/postman/"
    schedule:
      interval: "weekly"


@cap-js/hana - Save of draft entity (with active entity) containing ST_GEOMETRY property returns error "Wrong input for BINARY type"

Description of erroneous behaviour
Updating entity properties of type ST_GEOMETRY like so:
await UPDATE(req.subject).with({geometry: "SRID=4326;POINT (1.62965918650832 3.1377292657822693)"});

Results in the following error:
[sql] - BEGIN
[sql] - UPDATE demo_Headers AS Headers SET geometry=? WHERE Headers.ID = ? SRID=4326;POINT (1.62965918650832 3.1377292657822693) 2d4262ad-5ad9-4d9f-bcd4-180ff1e8b40e
[cds] - Error: Cannot set parameter at row: 1. Wrong input for BINARY type
    at next (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\protocol\ExecuteTask.js:175:19)
    at ExecuteTask.getParameters (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\protocol\ExecuteTask.js:195:3)
    at ExecuteTask.sendExecute (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\protocol\ExecuteTask.js:202:8)
    at execute (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\protocol\ExecuteTask.js:73:10)
    at ExecuteTask.run (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\protocol\ExecuteTask.js:115:3)
    at run (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\util\Queue.js:97:12)
    at Queue.dequeue (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\util\Queue.js:100:3)
    at Queue.push (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\util\Queue.js:48:10)
    at Connection.enqueue (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\protocol\Connection.js:442:17)
    at Connection.execute (C:\Users\Mathew\Downloads\geometry-issue\node_modules\hdb\lib\protocol\Connection.js:623:8) {
  query: false
}
[error] - 500 > {
  code: '500',
  message: 'Cannot set parameter at row: 1. Wrong input for BINARY type'
}
[sql] - ROLLBACK

However, INSERT works correctly like so:
await INSERT({description: "Generated", geometry: "SRID=4326;POINT (1.62965918650832 3.1377292657822693)"}).into(Headers);

Output (notice that it correctly uses TO_GEOMETRY function):
[sql] - BEGIN
[sql] - INSERT INTO demo_Headers (ID,description,geometry) WITH SRC AS (SELECT ? AS JSON FROM DUMMY UNION ALL SELECT TO_NCLOB(NULL) AS JSON FROM DUMMY)
      SELECT ID AS ID,description AS description,TO_GEOMETRY(geometry) AS geometry FROM JSON_TABLE(SRC.JSON, '$' COLUMNS(ID NVARCHAR(36) PATH '$.ID', "$.ID"
NVARCHAR(2147483647) FORMAT JSON PATH '$.ID',description NVARCHAR(20000) PATH '$.description', "$.DESCRIPTION" NVARCHAR(2147483647) FORMAT JSON PATH '$.description',geometry NVARCHAR(2147483647) PATH '$.geometry', "$.GEOMETRY" NVARCHAR(2147483647) FORMAT JSON PATH '$.geometry') ERROR ON ERROR) [
  [
    {
      description: 'Generated',
      geometry: 'SRID=4326;POINT (1.62965918650832 3.1377292657822693)',
      ID: 'd0f16f3f-3c80-40e5-b2e0-b3df6aa8973f'
    }
  ]
]
[sql] - COMMIT

This is causing error during SAVE of draft-enabled entities when the CAP framework tries to update the active entity with geometries from the draft entity (without custom UPDATE call).
It seems like HANAService.js's onUPDATE does not correctly set the UPDATE statement with TO_GEOMETRY().
Converting the geometry to buffer to pass to UPDATE like so works without errors:
await UPDATE(req.subject).with({geometry: wkx.Geometry.parse("SRID=4326;POINT (1.62965918650832 3.1377292657822693)").toWkb()});

Additional Information:

Prior to cds v8 and the new db service, INSERT and UPDATE required converting the geometry from EWKT format (string) to WKB (buffer).
In cds v8 and @cap/js-hana, geometry INSERT now requires EWKT format (string) instead of WKB format (buffer), while UPDATE seems to still be unchanged and only accept WKB format. On save of draft, the UPDATE statement issued by the draft/db service passes EWKT instead of WKB which results in the error.

Detailed steps to reproduce

git clone https://github.com/mathew-rizing/geometry-issue.git
npm install
cds deploy --to hana:
npm run serve
Open localhost:4004 > Open Preview for Headers entity
Press Create with Geometry button on List Report, no errors
Press Go to refresh, navigate to the new entry
Press Update Geometry, error occurs
Press Edit, press Save, error occurs

Details about your project

geometry-issue
https://github.com/mathew-rizing/geometry-issue

@cap-js/asyncapi
1.0.2

@cap-js/cds-types
0.6.5

@cap-js/db-service
1.13.0

@cap-js/hana
1.3.0

@cap-js/openapi
1.0.6

@cap-js/sqlite
1.7.3

@sap/cds
8.3.0

@sap/cds-compiler
5.3.0

@sap/cds-dk (global)
8.3.0

@sap/cds-fiori
1.2.7

@sap/cds-foss
5.0.1

@sap/cds-mtxs
2.2.0

@sap/eslint-plugin-cds
3.1.0

Node.js
v20.11.1

thanks for the investigation, that would also explain why I was experiencing issues with saving drafts on entities with cds.Vector only if they already have an active entity

@mathew-rizing It should be fixed with the next release (test)

confirmed to be fixed with latest version, thanks!


Constrain pydantic =1

I'm soon rolling out support for Pydantic 2 in some upstreams, and I'm constraining it wherever I haven't tested it yet.

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)

This is already implicitly in place but is not propagated out to some old versions. Patching repodata is an alternative.


[SP-4602] Backport of PDI-17375 - Get Data from XML issue with URL co…

…ntaining file:/// (8.1 Suite)
@pentaho-lmartins @ricardosilva88 @cravobranco

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'plugins/xml/core' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'plugins/xml/core' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  plugins/xml/core/src/main/java/org/pentaho/di/trans/steps/getxmldata/GetXMLData.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.trans.steps.getxmldata.GetXMLData

Branch Change: -0.2% :small_red_triangle_down:
Complexity Change: -0.1% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:
Line Change: -0.2% :small_red_triangle_down:


MAPK cascade definitions

Moved from https://github.com/geneontology/go-annotation/issues/1795
Hi
sorry to be a pain but the definition and comments associated with GO:0070371 ERK1 and ERK2 cascade are confusing:
Definition:An intracellular protein kinase cascade containing at least ERK1 or ERK2 (MAPKs), a MEK (a MAPKK) and a MAP3K. The cascade can also contain two additional tiers: the upstream MAP4K and the downstream MAP Kinase-activated kinase (MAPKAPK). The kinases in each tier phosphorylate and activate the kinases in the downstream tier to transmit a signal within a cell. PMID:20811974
comments:Note that this MAPKKK cascade is commonly referred to as the ERK pathway in the literature, but involves only ERK1 or ERK2, not other ERK kinases.
I think this means that MAP4K and MAPKAPK should both be annotated to GO:0070371 ERK1 and ERK2 cascade, rather than regulating the GO:0070371 ERK1 and ERK2 cascade.
If this is correct maybe these could be revised to:
Definition:An intracellular protein kinase cascade containing at least ERK1 or ERK2 (MAPKs), a MEK (a MAPKK) and a MAP3K. The cascade may involve 5 different kinases, as it can also contain two additional tiers: the upstream MAP4K and the downstream MAP Kinase-activated kinase (MAPKAPK). The kinases in each tier phosphorylate and activate the kinases in the downstream tier to transmit a signal within a cell. PMID:20811974
comments:Note that the MAPKKK cascade is commonly referred to as the ERK pathway in the literature, but the ERK pathway is often only part of the ERK1 and ERK2 cascade as it involves only ERK1 or ERK2, and not other ERK kinases.
I have tried to indicate the suggested revisions using bold highlights
PS I have updated the annotation listed for BHF from positive regulation of ERK1 and ERK2 cascade to ERK1 and ERK2 cascade
Ruth
Also, in the definition if MEK (a MAPKK) is MAP2K, could we change 'MEK (a MAPKK)' in the definition to 'MEK (a MAPKK/MAP2K)'

Thanks @RLovering. This was part of the reason that I thought the annotation review was worth it.

I also thought that at the meeting in Cambridge, we decided that the downstream MAPKAK was not a part of the cascade, but rather downstream of it. @sabrinatoro, am I remembering correctly?

@ukemi: correct, we agreed that the downstream activated kinases (or whatever is activated by the cascade) was not part of the cascade.
We however discussed the need to indicate when a gene/protein (kinase or not) is activated by a cascade. But discussions did not go further than that.
We might need to restart this discussion.

I think the best way to indicate the downstream functions is in a GO-CAM model. But I will modify the current defs to remove the downstream activity.


docs(spelling) - fixed a spelling mistake in go.mod file

@Piyushhbhutoria thank you for the submission. I will request you to sign our CLA mentioned in https://github.com/optimizely/go-sdk/blob/master/CONTRIBUTING.md.

Thank you for pointing this out. Can you help me re-run the pipeline?

@Piyushhbhutoria we will re-run the pipeline and merge the change. Thanks again for contributing.


[Feature Request] Report whether docker image exists locally

Is your feature request related to a problem? Please describe.
When running container.StartAsync() for the first time, it needs to pull the image. This could take time, especially for large images, and on slow networks.
This happens during a test run, and because it's not obvious that it's happening, the assumption is often that something is "stuck" / buggy / whatever. So a ctrl+c is used, then a reattempt, then again, and so on, until one remembers that maybe a docker image is being pulled in the background! :-)
Describe the solution you'd like
It would be nice to be able to log to the test console that the image is being pulled.
To do that though, the PostgreSqlTestcontainer (or whatever) needs to have a property/method that tells me if the "image exists". For example: container.ImageExists. Then I could do this:
var exists = container.ImageExists;
if (!exists) _logger.Log("About to pull image.");
await container.StartAsync();
if (!exists) _logger.Log("Image pulled (and container started).");

Describe alternatives you've considered
no
Additional context
no

If you provide and setup the logging implementation for Microsoft.Extensions.Logging.ILogger you will already get the information. It looks like this:
2021-11-24 13:55:51.875 +01:00 [VRB] DotNet.Testcontainers.Tests.Initialized Docker.DotNet.Models.JSONMessage
2021-11-24 13:55:51.875 +01:00 [VRB] DotNet.Testcontainers.Tests.Initialized Docker.DotNet.Models.JSONMessage
2021-11-24 13:55:51.911 +01:00 [VRB] DotNet.Testcontainers.Tests.Initialized Docker.DotNet.Models.JSONMessage
2021-11-24 13:55:51.919 +01:00 [VRB] DotNet.Testcontainers.Tests.Initialized Docker.DotNet.Models.JSONMessage
2021-11-24 13:55:51.922 +01:00 [VRB] DotNet.Testcontainers.Tests.Initialized Docker.DotNet.Models.JSONMessage
2021-11-24 13:55:51.924 +01:00 [INF] DotNet.Testcontainers.Tests.Initialized Image "postgres:11.5" created

The last line shows that the image has been pulled successfully (log level information). The lines above are printed while the image is pulled (log level verbose). See Initialization:L13 and the corresponding log output:L113.

I don't have my integration tests setup that way, so it did not meet my needs, and I used a workaround instead. If anyone needs it what I did was this:

use Docker.DotNet library to determine if image exists
if not, log "pull begin"
pull/start image: await container.StartAsync()
log "pull end"

Enjoying this library, thanks for making it!


Can't use the "class" parameter in Hearthstone's card search because "class" is a reserved word in Python

The API is the card search method: https://develop.battle.net/documentation/hearthstone/game-data-apis
It has a parameter titled "class". I tried passing it as class='mage', but that failed because class is a reserved word in Python.
I tried passing {'class':'mage'} and got too many positional variables (as the code only looks for new arguments). I tried passing in query_params={'class':'mage'} just to test, but expectedly that sent query_params as the parameter within the dictionary.
I edited the method "search_cards" in my own hearthstone_game_data_api.py to include the line "query_params.update({'class':'mage'}" and brute forcing in the parameter does now work. So just fully verifying the issue is with the parameter building for the query.
Not saying this is how you should fix it, but could add a catch-all dict variable so if someone just passes in a dict it gets added to query_params within the method. So that just passing {'class':'mage'} would work, and would future proof this issue from popping up again.

This is personally how I did what I suggested. It will overwrite any of the definitions that follow in the call (so eg if you pass {'set':1} in the dic while also passing set=2 as a parameter, it will pass set as 1 to the Blizzard API)
    def search_cards(
        self, region: str, locale: str, dic: dict, **query_params: Any
    ) -> Dict[str, Any]:
        resource = "/hearthstone/cards"
        query_params.update({"locale": locale})
        query_params = query_params | dic
        return super().get_resource(resource, region, query_params)

Thanks for the heads up! This is a fun edge case. I updated the code to handle this issue by adding in an optional card_class parameter to the search method arguments:
def search_cards(
    self, region: str, locale: str, card_class: str = None, **query_params: Any
) -> Dict[str, Any]:

The following usage should work for you now:
# Search for mage cards
cards = api_wrapper.search_cards(region="us", locale="en_US", card_class="mage")

This basically does what you suggested by appending the card_class value to query_params as the class parameter if it's present, and ignoring it if it's not.
I'm very much a hobbyist Python coder and this was super helpful. I'll update the package on PyPI today with the change. Since you have a working version, feel free to update to the new one when I push it or use the one you're using now. I have some work stuff coming up this morning but I'll try to get the package updated ASAP.
Thanks again! I'll keep this issue open until I have the new version pushed to PyPI.

blizzardapi2 version 1.1.2 has been pushed to PyPI. I'll close this one out now.


fixes #29

@mgrbyte - I attempted to fulfill the changelog request.  I wasn't quite sure what you meant by "pull-request branch changes always go under [Unreleased] section, top-most in the file"  - would you mind taking a look at this pull request and suggesting changes? Thanks!

@sierra-moxon Yes, the pull-request changes bit was perhaps badly worded.
The idea is that on the development branch (and thus in any pull-requests/feature branches), the change  log contains a section for the upcoming release. See the section  "How can I minimize the effort required?") for rationale.
I personally prefer a flat listing of changes rather than sectioned ("Added" and "Deprecated" in the diff), but that's just a personal preference.
So, given that, I'd say your changes look fine, sans lack of the unreleased header.
e.g: Here's what I'd usually commit to the development branch after merging in a newly-released master branch:
## [0.3.1] (un-released)
 - Nothing changed yet.

## [0.3.0] (2017-02-23)
 - feature x
 - fixed defect y
....

as folks add features/fix bugs what-have-you, they add significant entries to the un-released section.
Version of the changelog file on master branch should never contain an "unreleased" section.
The version should probably be also updated in any other project files, if any  (e.g setup.py, project.foo).
Lastly, I'd probably go with the recommendation to name the file CHANGELOG.md.


Dynamically resize terminal for errors/warnings

The warning and error messages now don't overwrite other terminal
content anymore but instead resize the terminal to make sure that text
can always be read.
Fixes #1996.
The following tasks should be made possible:

[x] Display message to the user at the top bottom of the screen
[x] Shrink the terminal height by one line (possibly even more than one, calculating the required height automatically)
[x] Allow interacting with the message, using either click interactions or allow for selection (useful for copying the path to the logfile)
[x] (Optional) Make it possible to remove outdated errors (if the config has been fixed, it would be nice if the popup wouldn't need to be removed from all Alacritty instances, though this might be a job for something like AlacrittyD)

I think this is good to go. I'd like someone else to test the current behavior to make sure that this actually improves things and everything is a lot more sane now.
Maybe @nixpulvis can help out once again? :) Other testers are very welcome too, especially for macOS/Windows.


hide email

is there plans to hide the our emails from integrations?

also in configuration folder?

No. What's the concern about people with access to HA?

there is no concerns just was wondering why would it need to show in integrations

Some people have multiple Amazon accounts. They need a way to differentiate which integration or pickle is for which account.


Reloading the page does not persist logged-in users

Prerequisites:
Please answer the following questions for yourself before asking questions.

[ +] This is question only ❓
[ +] I am running the latest version
[ +] I checked the documentation and found no answer
[ +] I checked to make sure that this is not already asked
[ +] I'm asking the question in the correct repository

Describe the question
Everything works correctly however when I reload the page it doesnt matter if I am logged-in, I will be redirected to the Login page. Is there a way to prevent this ? even if the page reloads is there way to keep the user logged in ?
At first, I thought this is handled by the refresh token but after reading the implementation I dont think it is meant for this purpose. please correct me if I am wrong
License
Apache-2.0 © React Auth Kit

Just set authState insignIn params and you will be gucci. You can set it with empty object if nothing to store

this doesn't work in production, almost as if the cookies do not 'set' when in prod environment, been banging my head for days as to why

Just set authState insignIn params and you will be gucci. You can set it with empty object if nothing to store

this doesn't work in production, almost as if the cookies do not 'set' when in prod environment, been banging my head for days as to why

Does this problem persists when you store data in local storage?

I am having the same issue. Every auth data in the browser cookies wipes off on reload. How to persist the user even on reload?

I'm having the same issue, by reloading the page, all data is wiped out.

hello, i set authState in signin params and it works as expected,

I am using localstorage and Hookenful's solution fixed it for me : authState: {}

i was with the same problem,  i set authState in signin params and it works fine.

I'm having a same problem

I am getting this problem too. I am using AuthProvider to set a cookie and I am passing an authState object to the signIn function but the cookie gets deleted on refreshing the page or opening another page in a new tab.

Just set authState insignIn params and you will be gucci. You can set it with empty object if nothing to store

this doesn't work in production, almost as if the cookies do not 'set' when in prod environment, been banging my head for days as to why

How to fix it in production

Setting auth state not work in production

Please use V3, if you are still facing the issue, let me know.

Just set authState insignIn params and you will be gucci. You can set it with empty object if nothing to store

this doesn't work in production, almost as if the cookies do not 'set' when in prod environment, been banging my head for days as to why

Does this problem persists when you store data in local storage?

In localStorage it does not matter if you reload as it will not affect the values in localStorage.

I guess you are using slice or any other global variable to store your log in info , due to which whenever you reload state gets reloaded as well and you will are loosing your log in info.
Solution -> What you can do is....Once the user is logged in create a JWT token of it and store it in localStorage which will not be lost after reloading and you will have all the user info.
Good to have -> Additionally you can also encrypt the JWT token before storing it to increase the security level of user info. Use a custom hook to decrypt it whenever necessary.

Did we find any solution to this yet?


Search Page

[x] Add markup for Search Page
[x] Add debounce functionality to search bar
[ ] Add dynamical rendering for search results

[ ] Add events to switch between pages (Artist, Album, Search, Home)


Implement the $sum aggregation operator

After #2226.
https://www.mongodb.com/docs/v6.0/reference/operator/aggregation/sum/
DoD:

[x] only for $group stage (as everything else is not implemented yet)
[x] consider overflow cases
[x] regular test cases: $v already includes non-mixed (only numeric) and mixed cases (e.g. numeric + non-numeric, arrays etc)
[x] constant test case: ({ $sum: 1 })

A possible approach: when provide a test case, sort first and then sum. E.g. sort might be set by abs value (from min to max).

I used skip edge case approach. For sorting with abs value, that would probably the way we want to solve it! But that has to be implemented internally.


[Bug]: No ImportError when calling from neuroconv.utils import NWBMetaDataEncoder

What happened?
In https://github.com/catalystneuro/neuroconv/pull/1050, some classes such as NWBMetaDataEncoder were renamed _NWBMetaDataEncoder. This breaks code in NWB GUIDE that calls from neuroconv.utils import NWBMetaDataEncoder. Because of the override to __getitem__ in neuroconv/utils/__init__.py (https://github.com/catalystneuro/neuroconv/pull/1033), the line from neuroconv.utils import NWBMetaDataEncoder now fails silently. It should return something like ImportError: cannot import name 'AA' from 'collections' (/Users/rly/mambaforge/envs/test/lib/python3.12/collections/__init__.py) but NWBMetaDataEncoder is set to None without an error. This was confusing to debug.
I suggest changing __getitem__ to end with something like:
if name in globals():
    return globals()[name]
raise ImportError(f"cannot import name '{name}' from 'neuroconv.utils'")

ref: https://peps.python.org/pep-0562/
I am also in favor of making NWBMetaDataEncoder public again since it is used by NWB GUIDE. But if not, I can just copy the code over to NeuroConv...
Steps to Reproduce
from neuroconv.utils import serjsklfjskl

Traceback
No response
Operating System
macOS
Python Executable
Python
Python Version
3.12
Package Versions
neuroconv==0.6.5
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] Have you ensured this bug was not already reported?

Let's make it public again. This was an oversight by both Cody and I when we were trying to clean the API docs.
Concerning the silent error with import, damn, they always warn about you about hacking dunders and side effects...


Messages, Packets, Frames and Time

I'm somewhat confused about how messages are carried on packets with regard to the frame concept and time.
Let's say I setup an unreliable, unordered channel between client and server.  I want my client to send one message every 20 ms to the serve -- the message size is smaller than the max packet size. After the connection and channel is established between client and server, I would think only one packet would be need to be sent to carry that message.
Based on the code the function PumpClientServerUpdate() in tests/test.cpp, I made this test:
Example client code:
// After connection established
...
client->SendMsg(message);
client->SendPackets();
transport->WritePackets();
...

Example server code:
// After connection established
...
while (true) {
    ...
    transport.ReadPackets();
    server.ReceivePackets();
    ...
}

In my tests, the message is not received by the server when only one packet is sent from the client. In fact, it requires ~300 packets to be sent from the client before the server is able to receive the message.
What's the correct usage of SendMessage()  vis-a-vis SendPackets() for a game frame update?
It seems that SendMessage() queues up the message and SendPackets() adds to the transport's packet queue a single connection packet with a single message from the message queue. But in my tests, it seems fore every SendMessage() called, I have to call SendPackets() ~300 times for the message to be received.
Also if I want to send multiple messages every frame (calling SendMessage() multiple times), it seems that a single call to SendPackets() every frame will only send to the transport a single packet with a single message during that frame.
Practically speaking, If I want to send multiple messages every game frame update, do I have to call SendPackets() at a higher frequency than the frame update frequency?

Packets from client -> server are sent at the rate that you call Client::SendPackets.
Packets from server -> client are sent at the rate that you call Server::SendPackets.
If you would like to send packets less frequently, like 20HZ, setup a loop that runs a frame, sleeps until the next 1/20th of a second interval, then wakes up, rinse and repeat.
cheers

ps. Why is this:
libyojimbo is designed around protocols that continuously exchange packets in both directions, like FPS games. Therefore there are no ack packets, acks from server -> client piggy back on regular packets sent from server -> client and vice-versa.
This is in contrast to many other protocols, which only try to send packets when you have data to send, and have separate ack packets. Yojimbo has at its core the assumption that you have a steady state "carrier wave" of packets in both directions. It makes a lot of things more efficient, and works great in the context of games that have some unreliable steady state data that makes up the bulk of their protocol that needs to be sent at some rate anyway, like inputs from client -> server @ 60HZ, and snapshots of world state from server -> client @ 20HZ from server to client.
In this context, the bulk of the packets are normally this unreliable data, and the messages and acks are just taking a ride on this carrier wave. Much more cheaply, than if they were sent in separate packets, or some packet aggregation approach was performed for reliable packets v.s unreliable packets into some wire packet aggregate.
cheers

Glenn

ps. Are you calling AdvanceTime properly on all objects in your loop? Please post the entire main loop you are using for libyojimbo on client and server so I can see what's going on.

In my tests, the message is not received by the server when only one packet is sent from the client. In
fact, it requires ~300 packets to be sent from the client before the server is able to receive the message.

This is not expected behavior. Something is wrong.

Practically speaking, If I want to send multiple messages every game frame update, do I have to call
SendPackets() at a higher frequency than the frame update frequency?

It depends on the size of the message and the channel budget. Check out the latest libyojimbo source which has doxygen comments in it, and build docs with "premake5 docs". Inside these docs, look up "ChannelConfig", "MessageConfig" and "ClientServerConfig" classes.
You may need to make adjustments to these to configure the packet budgets and channels to what you want. The behavior also depends on whether this is a reliable-ordered channel, or an unreliable-unordered channel, and how large the block of data you are sending, and whether it is a block message or a regular message with serialize functions.
So please let me know these things.
cheers

Glenn

Looking at your code above, I'm guessing you are only sending packets in the direction from client to server. Even if you want to send messages only from client -> server, you still need to send packets from client -> server and server -> client at a steady rate. If you are not doing this, then that the source of your issues.

It looks like this topic keeps coming up in issues. Perhaps it should be a major point in docs somewhere? That is, to keep a steady flow of packets so acks and messages get through?

Yes, I plan to write usage docs, but I have to find the time to write these. Until then, covering this in issues that people can search through is the best I can do. I'm also using these issues to discover pain points and what people NEED to have documented...
cheers

Looking at your code above, I'm guessing you are only sending packets in the direction from client to server after you establish connection. However, even if you only want to send messages from client -> server, you still need to send packets from both client -> server and server -> client at a steady rate.

If you are not doing this, then this is the cause of your issue.

I am sending packets from the server to the client at steady rate; I'm just not sending messages from the server to the client.
Using a unreliable, unordered channel with a regular  message that is smaller than the max packet size.
Will provide sample main functions soon.

OK sounds good. I'll check out your sample and see what's going on

To answer this question:

Practically speaking, If I want to send multiple messages every game frame update, do I have to call
SendPackets() at a higher frequency than the frame update frequency?

No you should not need to do this.

Okay, so here's some sample test client and server code based off my actual code. It uses the client/server and message types defined in shared.h.
Client
#define CLIENT 1
#define LOGGING 1

#include "shared.h"
#include <signal.h>

static volatile int quit = 0;

void interrupt_handler(int)
{
    quit = 1;
}

int ClientMain()
{
    double time = 0.0;
    const double deltaTime = 0.02;
    uint64_t clientId = 777;

    signal(SIGINT, interrupt_handler);

    // Initialize network transport
    NetworkTransport transport(GetDefaultAllocator(), Address("<IP_ADDRESS>"),
        ProtocolId, time);
    if (transport.GetError() != SOCKET_ERROR_NONE) {
        return 1;
    }
    transport.SetFlags(TRANSPORT_FLAG_INSECURE_MODE);

    // Configure connection properties
    ClientServerConfig config;
    config.connectionConfig.maxPacketSize = 1500;
    config.connectionConfig.numChannels = 1;
    config.connectionConfig.channel[0].type = CHANNEL_TYPE_UNRELIABLE_UNORDERED;

    // Initialize client
    GameClient client(GetDefaultAllocator(), transport, config, time);

    // Connect to server
    Address serverAddress("<IP_ADDRESS>", ServerPort);
    client.InsecureConnect(clientId, serverAddress);
    while (!quit) {
        client.SendPackets();
        transport.WritePackets();
        transport.ReadPackets();
        client.ReceivePackets();
        client.CheckForTimeOut();

        time += deltaTime;
        client.AdvanceTime(time);
        transport.AdvanceTime(time);

        if (client.ConnectionFailed()) {
            return 1;
        }

        if (!client.IsConnecting() && client.IsConnected()) {
            break;
        }

        platform_sleep(deltaTime);
    }

    // Send message (i.e. enqueue)
    TestMessage *message = (TestMessage *) client.CreateMsg(TEST_MESSAGE);
    message->sequence = 0;
    client.SendMsg(message);

    // Send packets
    // MUST SEND AT LEAST 5 PACKETS FOR SERVER TO RECEIVE MESSAGE
    for (int i = 0; i < 5; ++i) {
        client.SendPackets();
        transport.WritePackets();
        transport.ReadPackets();
        client.ReceivePackets();
        client.CheckForTimeOut();

        time += deltaTime;
        client.AdvanceTime(time);
        transport.AdvanceTime(time);

        if (client.IsDisconnected())
            break;

        platform_sleep(deltaTime);
    }

    // Disconnect
    client.Disconnect();
    for (int i = 0; i < 1000; ++i) {
        client.SendPackets();
        transport.WritePackets();
        transport.ReadPackets();
        client.ReceivePackets();
        client.CheckForTimeOut();

        time += deltaTime;
        client.AdvanceTime(time);
        transport.AdvanceTime(time);

        if (client.IsDisconnected()) {
            break;
        }
        platform_sleep(deltaTime);
    }
    return 0;
}

int main()
{
    if (!InitializeYojimbo()) {
        printf( "error: failed to initialize Yojimbo!\n" );
        return 1;
    }
    int result = ClientMain();
    ShutdownYojimbo();
    return result;
}

Server
#define SERVER 1
#define LOGGING 1

#include "shared.h"
#include <signal.h>

static volatile int quit = 0;

void interrupt_handler(int)
{
    quit = 1;
}

int ServerMain()
{
    double time = 0.0;
    const double deltaTime = 0.1;

    signal(SIGINT, interrupt_handler);

    // Setup transport
    Address bindAddress("<IP_ADDRESS>", ServerPort);
    Address publicAddress("<IP_ADDRESS>", ServerPort);
    NetworkTransport transport(GetDefaultAllocator(), bindAddress,
        ProtocolId, time);
    if (transport.GetError() != SOCKET_ERROR_NONE) {
        return 1;
    }
    transport.SetFlags(TRANSPORT_FLAG_INSECURE_MODE);

    // Configure connection properties
    ClientServerConfig config;
    config.connectionConfig.maxPacketSize = 1500;
    config.connectionConfig.numChannels = 1;
    config.connectionConfig.channel[0].type = CHANNEL_TYPE_UNRELIABLE_UNORDERED;

    // Start server
    GameServer server(GetDefaultAllocator(), transport, config, time);
    server.SetServerAddress(publicAddress);
    server.SetFlags(SERVER_FLAG_ALLOW_INSECURE_CONNECT);
    server.Start();

    // Receive and process messages
    int numMessagesReceived = 0;
    while (!quit) {
        server.SendPackets();
        transport.WritePackets();
        transport.ReadPackets();
        server.ReceivePackets();
        server.CheckForTimeOut();

        time += deltaTime;
        server.AdvanceTime(time);
        transport.AdvanceTime(time);

        for (int j = 0; j < server.GetMaxClients(); ++j) {
            if (server.IsClientConnected(j)) {
                while (true) {
                    Message *message = server.ReceiveMsg(j);
                    if (!message) {
                        break;
                    }
                    ++numMessagesReceived;
                    server.ReleaseMsg(j, message);
                }
            }
        }
        platform_sleep(deltaTime);
    }

    printf("numMessagesReceived = %d\n", numMessagesReceived);
    server.Stop();
    return 0;
}

int main()
{
    if (!InitializeYojimbo()) {
        return 1;
    }
    int result = ServerMain();
    ShutdownYojimbo();
    return result;
}

In that sample code, after the client calls SendMsg(), at least 5 SendPackets()+WritePackets()+... iterations must be called before the server is able to receive the message. Is that to be expected?
The strange thing is that the 5 "pumps" required in the sample code is still dramatically less than my actual code (5 vs 300). So there's obviously something going on in my actual code that I'll need to track down.
I'm just trying to understand what the proper behavior of SendMsg() in relation to a SendPackets() should be; essentially, will the message enqueued by SendMsg() be went in the next "pump" or will it take a few "pumps" for the message to be sent. If the latter is the case, does that mean that a client messaged enqueued with SendMessage() at time t0 won't actually be received by the server until time t0 + num_pumps * deltaTime?

Thanks. I'll take a look at this tonight.

 I had different deltaTimes on the server and client by accident (0.1 vs 0.02). Sorry about that :(


portico: Add setting to put Google Analytics on selected portico pages

Testing Plan: https://andersk.zulipdev.org

Looks great, merged, thanks @andersk!
I think it's likely we'll want to add at least the /new flow to this, but the structure is such that it's easy to do things additively.


elixir: 1.7.0 -> 1.7.2

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

Success on x86_64-darwin (full log)
Attempted: elixir
Partial log (click to expand)
make[1]: Leaving directory '/private/tmp/nix-build-elixir-1.6.5.drv-0/source'
post-installation fixup
gzipping man pages under /nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5/share/man/
strip is /nix/store/qfxcr8c4fg7lkybrny9n2sb77bmippdx-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5/lib  /nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5/bin
patching script interpreter paths in /nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5
/nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5/lib/elixir/bin/elixir: interpreter directive changed from "/bin/sh" to "/nix/store/qb76s7s3p6pnsi7082sjfc7rb64f3s6a-bash-4.4-p23/bin/sh"
/nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5/lib/elixir/bin/elixirc: interpreter directive changed from "/bin/sh" to "/nix/store/qb76s7s3p6pnsi7082sjfc7rb64f3s6a-bash-4.4-p23/bin/sh"
/nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5/lib/elixir/bin/iex: interpreter directive changed from "/bin/sh" to "/nix/store/qb76s7s3p6pnsi7082sjfc7rb64f3s6a-bash-4.4-p23/bin/sh"
/nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5

Failure on x86_64-linux (full log)
Attempted: elixir
Partial log (click to expand)
cannot build derivation '/nix/store/nkqjgrc1n006y6kba5d0xspc0r0cwxqy-gtk-doc-1.28.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/jwvnbpfgyhkkdmrvx1bhnsm870v55hxq-gdk-pixbuf-2.36.12.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/gfkx402mx4slqihg6aj6fddpm223vn4s-gtk+-2.24.32.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/m1max5j44w5lx1hmrqwyypkig7wacqnf-polkit-0.113.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/5mrgp317wp5jxhxy6ghfdzbvvv7jlyms-gconf-3.2.6.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/0w3xmmzzszxfrdk1fjvrx9b16qbhmg8y-wxwidgets-<IP_ADDRESS>.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/17gar7134qcl6kvsfk9iqzcbm80hxhf7-erlang-<IP_ADDRESS>.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/hiwag40mzb9r76p07pyb3vhzwlnxhy86-rebar-2.5.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/7a15whk5s5xln74biqk4551lpmal0sb4-elixir-1.6.5.drv': 2 dependencies couldn't be built
error: build of '/nix/store/7a15whk5s5xln74biqk4551lpmal0sb4-elixir-1.6.5.drv' failed

The failed x86_64-linux build is just a network error.

@GrahamcOfBorg build elixir

Success on x86_64-darwin (full log)
Attempted: elixir
Partial log (click to expand)
/nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5

Failure on aarch64-linux (full log)
Attempted: elixir
Partial log (click to expand)
date=`date +"%B %e, %Y"`; \
specs_file=`pwd`/../specs/specs_glu.xml; \
xsltproc --output "../man3/glu.3" --stringparam company "Ericsson AB" --stringparam docgen "/build/source/bootstrap/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "wx" --stringparam appver "1.8" --stringparam specs_file "$specs_file" --xinclude -path /build/source/bootstrap/lib/erl_docgen/priv/dtd  -path /build/source/bootstrap/lib/erl_docgen/priv/dtd_man_entities /build/source/bootstrap/lib/erl_docgen/priv/xsl/db_man.xsl glu.xml
date=`date +"%B %e, %Y"`; \
specs_file=`pwd`/../specs/specs_gl.xml; \
xsltproc --output "../man3/gl.3" --stringparam company "Ericsson AB" --stringparam docgen "/build/source/bootstrap/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "wx" --stringparam appver "1.8" --stringparam specs_file "$specs_file" --xinclude -path /build/source/bootstrap/lib/erl_docgen/priv/dtd  -path /build/source/bootstrap/lib/erl_docgen/priv/dtd_man_entities /build/source/bootstrap/lib/erl_docgen/priv/xsl/db_man.xsl gl.xml
building of '/nix/store/k93s0zpgkzvdviwa9g0457sg148jjl9y-erlang-<IP_ADDRESS>.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/cdfvqp3hlbh5g4pzh5wzrr2vc1cs9gp0-rebar-2.5.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/dby33r0yd6p63fxlp0w3s2kr25y7shcj-elixir-1.6.5.drv': 2 dependencies couldn't be built
error: build of '/nix/store/dby33r0yd6p63fxlp0w3s2kr25y7shcj-elixir-1.6.5.drv' failed

Failure on x86_64-linux (full log)
Attempted: elixir
Partial log (click to expand)
cannot build derivation '/nix/store/nkqjgrc1n006y6kba5d0xspc0r0cwxqy-gtk-doc-1.28.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/jwvnbpfgyhkkdmrvx1bhnsm870v55hxq-gdk-pixbuf-2.36.12.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/m1max5j44w5lx1hmrqwyypkig7wacqnf-polkit-0.113.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/5mrgp317wp5jxhxy6ghfdzbvvv7jlyms-gconf-3.2.6.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/gfkx402mx4slqihg6aj6fddpm223vn4s-gtk+-2.24.32.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/0w3xmmzzszxfrdk1fjvrx9b16qbhmg8y-wxwidgets-<IP_ADDRESS>.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/17gar7134qcl6kvsfk9iqzcbm80hxhf7-erlang-<IP_ADDRESS>.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/hiwag40mzb9r76p07pyb3vhzwlnxhy86-rebar-2.5.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/7a15whk5s5xln74biqk4551lpmal0sb4-elixir-1.6.5.drv': 2 dependencies couldn't be built
error: build of '/nix/store/7a15whk5s5xln74biqk4551lpmal0sb4-elixir-1.6.5.drv' failed

Failure on aarch64-linux (full log)
Attempted: elixir
Partial log (click to expand)
date=`date +"%B %e, %Y"`; \
specs_file=`pwd`/../specs/specs_glu.xml; \
xsltproc --output "../man3/glu.3" --stringparam company "Ericsson AB" --stringparam docgen "/build/source/bootstrap/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "wx" --stringparam appver "1.8" --stringparam specs_file "$specs_file" --xinclude -path /build/source/bootstrap/lib/erl_docgen/priv/dtd  -path /build/source/bootstrap/lib/erl_docgen/priv/dtd_man_entities /build/source/bootstrap/lib/erl_docgen/priv/xsl/db_man.xsl glu.xml
date=`date +"%B %e, %Y"`; \
specs_file=`pwd`/../specs/specs_gl.xml; \
xsltproc --output "../man3/gl.3" --stringparam company "Ericsson AB" --stringparam docgen "/build/source/bootstrap/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "wx" --stringparam appver "1.8" --stringparam specs_file "$specs_file" --xinclude -path /build/source/bootstrap/lib/erl_docgen/priv/dtd  -path /build/source/bootstrap/lib/erl_docgen/priv/dtd_man_entities /build/source/bootstrap/lib/erl_docgen/priv/xsl/db_man.xsl gl.xml
building of '/nix/store/k93s0zpgkzvdviwa9g0457sg148jjl9y-erlang-<IP_ADDRESS>.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/cdfvqp3hlbh5g4pzh5wzrr2vc1cs9gp0-rebar-2.5.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/dby33r0yd6p63fxlp0w3s2kr25y7shcj-elixir-1.6.5.drv': 2 dependencies couldn't be built
error: build of '/nix/store/dby33r0yd6p63fxlp0w3s2kr25y7shcj-elixir-1.6.5.drv' failed

Strange both ofborg and nix-review do show changed packages in this pull request.

@GrahamcOfBorg build beam.packages.erlang.elixir_1_7

Success on x86_64-darwin (full log)
Attempted: beam.packages.erlang.elixir_1_7
Partial log (click to expand)
make[1]: Leaving directory '/private/tmp/nix-build-elixir-1.7.2.drv-0/source'
post-installation fixup
gzipping man pages under /nix/store/ldbk6dmsg6z7qcxn8hni1vr34skbfjnq-elixir-1.7.2/share/man/
strip is /nix/store/qfxcr8c4fg7lkybrny9n2sb77bmippdx-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/ldbk6dmsg6z7qcxn8hni1vr34skbfjnq-elixir-1.7.2/lib  /nix/store/ldbk6dmsg6z7qcxn8hni1vr34skbfjnq-elixir-1.7.2/bin
patching script interpreter paths in /nix/store/ldbk6dmsg6z7qcxn8hni1vr34skbfjnq-elixir-1.7.2
/nix/store/ldbk6dmsg6z7qcxn8hni1vr34skbfjnq-elixir-1.7.2/lib/elixir/bin/elixir: interpreter directive changed from "/bin/sh" to "/nix/store/qb76s7s3p6pnsi7082sjfc7rb64f3s6a-bash-4.4-p23/bin/sh"
/nix/store/ldbk6dmsg6z7qcxn8hni1vr34skbfjnq-elixir-1.7.2/lib/elixir/bin/elixirc: interpreter directive changed from "/bin/sh" to "/nix/store/qb76s7s3p6pnsi7082sjfc7rb64f3s6a-bash-4.4-p23/bin/sh"
/nix/store/ldbk6dmsg6z7qcxn8hni1vr34skbfjnq-elixir-1.7.2/lib/elixir/bin/iex: interpreter directive changed from "/bin/sh" to "/nix/store/qb76s7s3p6pnsi7082sjfc7rb64f3s6a-bash-4.4-p23/bin/sh"
/nix/store/ldbk6dmsg6z7qcxn8hni1vr34skbfjnq-elixir-1.7.2

Success on x86_64-darwin (full log)
Attempted: beam.packages.erlang.elixir_1_7
Partial log (click to expand)
/nix/store/ldbk6dmsg6z7qcxn8hni1vr34skbfjnq-elixir-1.7.2

Failure on x86_64-linux (full log)
Attempted: beam.packages.erlang.elixir_1_7
Partial log (click to expand)
cannot build derivation '/nix/store/nkqjgrc1n006y6kba5d0xspc0r0cwxqy-gtk-doc-1.28.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/jwvnbpfgyhkkdmrvx1bhnsm870v55hxq-gdk-pixbuf-2.36.12.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/m1max5j44w5lx1hmrqwyypkig7wacqnf-polkit-0.113.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/5mrgp317wp5jxhxy6ghfdzbvvv7jlyms-gconf-3.2.6.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/gfkx402mx4slqihg6aj6fddpm223vn4s-gtk+-2.24.32.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/0w3xmmzzszxfrdk1fjvrx9b16qbhmg8y-wxwidgets-<IP_ADDRESS>.drv': 5 dependencies couldn't be built
cannot build derivation '/nix/store/17gar7134qcl6kvsfk9iqzcbm80hxhf7-erlang-<IP_ADDRESS>.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/hiwag40mzb9r76p07pyb3vhzwlnxhy86-rebar-2.5.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/65wbvj2284j1y09z23x7wr9n7m2qcyq7-elixir-1.7.2.drv': 2 dependencies couldn't be built
error: build of '/nix/store/65wbvj2284j1y09z23x7wr9n7m2qcyq7-elixir-1.7.2.drv' failed

Success on x86_64-darwin (full log)
Attempted: elixir
Partial log (click to expand)
/nix/store/r6wacm6gsk8da4vbqi2rlsan5z1572qs-elixir-1.6.5

Success on x86_64-linux (full log)
Attempted: elixir
Partial log (click to expand)
shrinking RPATHs of ELF executables and libraries in /nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5
gzipping man pages under /nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5/share/man/
strip is /nix/store/1hi76hr87bd1y1q1qjk0lv8nmcjip1c8-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5/lib  /nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5/bin
patching script interpreter paths in /nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5
/nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5/lib/elixir/bin/iex: interpreter directive changed from "/bin/sh" to "/nix/store/dkh7l9a4sx7zqh8riqbj3z21sz25p8xy-bash-4.4-p23/bin/sh"
/nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5/lib/elixir/bin/elixirc: interpreter directive changed from "/bin/sh" to "/nix/store/dkh7l9a4sx7zqh8riqbj3z21sz25p8xy-bash-4.4-p23/bin/sh"
/nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5/lib/elixir/bin/elixir: interpreter directive changed from "/bin/sh" to "/nix/store/dkh7l9a4sx7zqh8riqbj3z21sz25p8xy-bash-4.4-p23/bin/sh"
checking for references to /build in /nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5...
/nix/store/isn9nvmvvjlxi2mdqd5s783paxyk5hv0-elixir-1.6.5

Failure on aarch64-linux (full log)
Attempted: beam.packages.erlang.elixir_1_7
Partial log (click to expand)
make[4]: Entering directory '/build/source/lib/hipe/misc'
/nix/store/ssr9dhrp11h4lnr35p05bbqc1ln5004d-coreutils-8.29/bin/install -c -d "/nix/store/jskcx8dg6qvf13blbjnik1pgfg20b2si-erlang-<IP_ADDRESS>/lib/erlang/lib/hipe-3.15.4/misc"
/nix/store/ssr9dhrp11h4lnr35p05bbqc1ln5004d-coreutils-8.29/bin/install -c -m 644 hipe_consttab.erl hipe_gensym.erl hipe_sdi.hrl "/nix/store/jskcx8dg6qvf13blbjnik1pgfg20b2si-erlang-<IP_ADDRESS>/lib/erlang/lib/hipe-3.15.4/misc"
/nix/store/ssr9dhrp11h4lnr35p05bbqc1ln5004d-coreutils-8.29/bin/install -c -d "/nix/store/jskcx8dg6qvf13blbjnik1pgfg20b2si-erlang-<IP_ADDRESS>/lib/erlang/lib/hipe-3.15.4/ebin"
/nix/store/ssr9dhrp11h4lnr35p05bbqc1ln5004d-coreutils-8.29/bin/install -c -m 644 ../ebin/hipe_consttab.beam ../ebin/hipe_gensym.beam "/nix/store/jskcx8dg6qvf13blbjnik1pgfg20b2si-erlang-<IP_ADDRESS>/lib/erlang/lib/hipe-3.15.4/ebin"
make[4]: Leaving directory '/build/source/lib/hipe/misc'
building of '/nix/store/k93s0zpgkzvdviwa9g0457sg148jjl9y-erlang-<IP_ADDRESS>.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/cdfvqp3hlbh5g4pzh5wzrr2vc1cs9gp0-rebar-2.5.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/ck778rgnnf0f31gqg9dvfld04zshdg98-elixir-1.7.2.drv': 2 dependencies couldn't be built
error: build of '/nix/store/ck778rgnnf0f31gqg9dvfld04zshdg98-elixir-1.7.2.drv' failed

Failure on aarch64-linux (full log)
Attempted: beam.packages.erlang.elixir_1_7
Partial log (click to expand)
xsltproc --output "../man3/error_logger.3" --stringparam company "Ericsson AB" --stringparam docgen "/build/source/bootstrap/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "kernel" --stringparam appver "5.2" --stringparam specs_file "$specs_file" --xinclude -path /build/source/bootstrap/lib/erl_docgen/priv/dtd  -path /build/source/bootstrap/lib/erl_docgen/priv/dtd_man_entities /build/source/bootstrap/lib/erl_docgen/priv/xsl/db_man.xsl error_logger.xml
escript /build/source/bootstrap/lib/erl_docgen/priv/bin/specs_gen.escript -I../../include -o../specs/ ../../src/file.erl
date=`date +"%B %e, %Y"`; \
specs_file=`pwd`/../specs/specs_file.xml; \
xsltproc --output "../man3/file.3" --stringparam company "Ericsson AB" --stringparam docgen "/build/source/bootstrap/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "kernel" --stringparam appver "5.2" --stringparam specs_file "$specs_file" --xinclude -path /build/source/bootstrap/lib/erl_docgen/priv/dtd  -path /build/source/bootstrap/lib/erl_docgen/priv/dtd_man_entities /build/source/bootstrap/lib/erl_docgen/priv/xsl/db_man.xsl file.xml
escript /build/source/bootstrap/lib/erl_docgen/priv/bin/specs_gen.escript -I../../include -o../specs/ ../../src/gen_tcp.erl
building of '/nix/store/k93s0zpgkzvdviwa9g0457sg148jjl9y-erlang-<IP_ADDRESS>.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/cdfvqp3hlbh5g4pzh5wzrr2vc1cs9gp0-rebar-2.5.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/ck778rgnnf0f31gqg9dvfld04zshdg98-elixir-1.7.2.drv': 2 dependencies couldn't be built
error: build of '/nix/store/ck778rgnnf0f31gqg9dvfld04zshdg98-elixir-1.7.2.drv' failed

Failure on aarch64-linux (full log)
Attempted: elixir
Partial log (click to expand)
 CXX    aarch64-unknown-linux-gnu/wxe_impl.o
 CXX    aarch64-unknown-linux-gnu/wxe_helpers.o
 CXX    aarch64-unknown-linux-gnu/wxe_callback_impl.o
 CXX    aarch64-unknown-linux-gnu/wxe_return.o
 CXX    aarch64-unknown-linux-gnu/wxe_gl.o
 CXX    aarch64-unknown-linux-gnu/wxe_funcs.o
building of '/nix/store/k93s0zpgkzvdviwa9g0457sg148jjl9y-erlang-<IP_ADDRESS>.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/cdfvqp3hlbh5g4pzh5wzrr2vc1cs9gp0-rebar-2.5.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/dby33r0yd6p63fxlp0w3s2kr25y7shcj-elixir-1.6.5.drv': 2 dependencies couldn't be built
error: build of '/nix/store/dby33r0yd6p63fxlp0w3s2kr25y7shcj-elixir-1.6.5.drv' failed


Adding spritesheet import - fixes #188

Updated the import dialog to allow users to specify the number of frames in the source image (which defaults to 1 x and 1 y)
Setting the frame count for x and y will draw a dotted line in the preview that shows where the image will be split into individual frames
Changing the frame count will also auto adjust the image width/height so that it displays the size of an individual frame, which can then be manually changed to resize the resultant frames into the desired final size
When imported with a frame count above 1, the source image will be split into the different frames and loaded just as if it were an animated gif
This allows users to import existing spritesheet pngs, including those produced by the piskel export function (additional work will be needed to specify the frame layout on export - right now a 'square' layout as shown in the image below will still be exported as a single horizontal strip)

Thanks a lot for your contribution. The code change looks good to me, that's great !
I tried out the feature and I just have one comment : many spritesheets I find have some padding on the right/bottom of the image.
Therefore when you split by a X rows, Y columns, it's sometimes impossible to properly isolate the frames. (see http://www.swingswingsubmarine.com/wp-content/uploads/2010/11/dude_animation_sheet.png for instance)
I was wondering if we shouldn't go the other way around, and ask for a frame size. User could specify the expected frame width/height, and adjust it using the grid preview you developed. We would then ignore empty/incomplete frames during the import.
But maybe I was just unlucky with the spritesheets I found ?
What do you think ?

You are right, I guess a lot of spritesheets are packed into images that are powers of 2 in size, which is fine until the actual frame size is not fully divisible by that, as with your example. Mostly I tend to work with frame sizes that are powers of 2 themselves (16, 32, etc) as I know I'm going to be packing them together, so I didn't think about it.
I guess the better approach is to (as you say) allow to user to specify the frame size, and a possible offset value, and only split into frames where it can fit a full frame of that size (leaving out the gap at the right/bottom).
What are your thoughts on the UI for that? Add a new checkbox for 'split into frames' and if checked, reuse the 'Size' as frame size, and have what I've currently got as 'Frames' to be 'Offset' instead?
Or maybe have a completely new set of 'frame size' and 'frame offset' inputs, so that the user can use the existing 'Size' input to specify the output frame size in case they want to resize the resulting split frames?
It might also be useful to make the preview image bigger so its easier to see where the frames are split, but I couldn't figure out a good way to do that and still leave space for all the options we need.
I could potentially add a checkbox for 'ignore empty frames' in case people want to keep the empty ones for some reason, but maybe that is overkill.
I'll take a look later and see what I can come up with. But any ideas you have would be great.

Ultimately I think the image import and spritesheet import could be really separated.
But in the meantime, a suggestion could be :

move the preview to the right, give it more space (screenshot : at 220px max-width & max height)
reduce the popup font size (screenshot : down from 1.5em to 1.3em)
add a radio to choose between image import and spritesheet import
increase a bit the popup size (screenshot : 550x350)

What do you have in mind for the offset ? If there is padding on the top/left of the image, and not only on the bottom right ?

I could potentially add a checkbox for 'ignore empty frames' in case people want to keep the empty ones for some reason, but maybe that is overkill.

I tend to agree, it's an overkill, let's just skip the empty or incomplete frames.

I've updated the code so that you can now specify the size and offset as you suggested. The new UI looks like this:

The offset will be useful if a spritesheet is packed into a larger image but does not start at the top left.
Also the 'blank' frames are ignored by comparing the canvas's dataUrl to a empty canvas, which will only work if the background color of the spritesheet is transparent. I did this as its faster than comparing all the pixels in each frame to see if it contains anything. This seems fine to me as the workaround is for a user to just delete empty frames themselves after they have imported it if they use a non-transparent background color. But let me know if you have a better idea.

Also - Thanks for the great tool, I love this thing :)

That looks really great ! :+1:
Made a few comments in the review, if you still have energy to spare :) It should be ready to merge after that.
:bulb:  Food for thoughts : even with the grid, it can be difficult to spot the "good" sprite size. Any ideas on how we could make this easier ? Maybe a live preview of the import ?

Also - Thanks for the great tool, I love this thing :)

That's really nice to hear ! Thanks a lot for your contribution :)

Thanks. I've updated the code based on your feedback.
A live preview would be a nice addition. I guess the workaround right now is to just import again until you get it right? So not too bad I hope. Shouldn't be an issue for sheets you've made yourself though, as you already know the size.

Looks good to me, merging !
I will try to release a new version and upload it to piskelapp.com this weekend.
(Do you have a twitter account ? I'd like to mention you when announcing the release on twitter, if you're ok?)

I don't really use Twitter. Feel free to say "github user JALissiak" or something. But it's not necessary. Just glad I could be useful :)


./makejdk-any-platform.sh --docker fails on Fedora because of SELinux

Building a JDK using docker fails on Fedora because SELinux prevents the container to access /openjdk/target.
Adding a Z mount option fixed the issue. However, I am unsure what happens when :Z is set on systems that don't use SELinux or systems other than Linux. Any docker expert or guinea pig here?

We use :Z with docker on Windows, Ubuntu and Fedora - no issues and Fedora can properly use -v

@amczarny Thanks for the feedback. I will open a PR then.

Closing as PR669 should have fixed this


Make shadeBase to be more unique

Make shadeBase to be more unique
com.facebook.presto.hive shade base conflicts with a shade base used in
presto-hive-apache.

@electrum Could you please make a release?

@kokosing I just released 0.13.1-4

@electrum thank you! That was really fast!


(de-)serialization, import from Ecore, and other improvements

@ftomassetti @enikao Can you live with my changes, responses, etc.? If so, can you approve, so I can merge all these commits to the main branch?

For me the PR is a bit large, so it is a bit difficult to review it. I can look into finishing looking into it in coming days

For me the PR is a bit large, so it is a bit difficult to review it. I can look into finishing looking into it in coming days

Would it help if I split it up in a couple of smaller ones?

Yes, that would be very helpful, thank you

I'm splitting this PR into a couple of smaller, more focused PRs: first one is PR #17 .


无法使用 镜像有问题不能启动

[root@localhost ldap]# docker logs 59cfbecf444c
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using <IP_ADDRESS>. Set the 'ServerName' directive globally to suppress this message
[Mon Dec 13 03:02:55.811123 2021] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.38 (Debian) PHP/7.2.34 configured -- resuming normal operations
[Mon Dec 13 03:02:55.811218 2021] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

这只是警告，不是错误，服务已经启动了，注意端口映射，直接网页打开访问即可。


Variable $input of type AddProjectV2ItemByIdInput not provided!

I am trying to automate adding an issues to Projects using GHA
      - name: Add To RSF Programme Management Project
        uses<EMAIL_ADDRESS>
        with:
          project-url: https://github.com/orgs/aim-rsf/projects/9
          github-token: ${{ secrets.GH_TOKEN }}

I am not sure why it keeps getting this error - I have been trying to debug it for ages, any help is appreciated!
Run<EMAIL_ADDRESS>##[debug]Issue/PR owner: aim-rsf
##[debug]Project URL: https://github.com/orgs/aim-rsf/projects/9
##[debug]Project owner: aim-rsf
##[debug]Project number: 9
##[debug]Project owner type: orgs
##[debug]Project node ID: PVT_kwDOBlYxfM4AEvO5
##[debug]Content ID: undefined
Creating project item
Error: Request failed due to following response errors:
 - Variable $input of type AddProjectV2ItemByIdInput! was provided invalid value for contentId (Expected value to not be null)

The URL is correct but is it because the project is private?

@BatoolMM, I was running into the same issue and it was because I was using the wrong trigger for the action when testing it (I was using a workflow dispatch to trigger the run, but it needs to be an issues or pull_request). What trigger were you using?
You might also want to try the latest version: 0.5.0 and make sure it's the new type of projects board you're trying to add it too, not GitHub projects (classic):

Use this action to automatically add the current issue or pull request to a GitHub project. Note that this action does not support GitHub projects (classic).

Repo README


raw depth data from michigan

@jread-usgs raw data from Kevin

That looks like the processed data, no?

nevermind, you are right. sorry.

@jread-usgs @mhines-usgs in the future could we keep data we merge in here to only data linked to the NHD? Without the link, it isn't very useful here and lakeattributes is not where the linking is occurring. It's just a container for linked data.


Add examples to README, encoding.ukb, badges

Hi! I believe more than me could use this.

Added a couple examples to the README
Added encoding.ukb
Added build badges

You would need to set up autobuild on https://hub.docker.com and connect the repo, and chnage 'kasbohm' to 'spiros' in the README.
Cheers, Inge

thanks, merged.


Fix latest movie order

Latest movie order needs to show based on when file was added.
Currently response is reversed then filtered by has file.

:tada: This issue has been resolved in version 1.14.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: