final-state-via could not be modeled in tsp

e.g.,
delete is ArmResourceDeleteAsync<
    CertificateProfile,
    BaseParameters<CertificateProfile>,
    ArmAsyncOperationHeader
  >;

generated swagger, pay attention to final-state-via
    "delete": {
        "operationId": "CertificateProfile_Delete",
        ...
        "x-ms-examples": {
          "Delete Certificate Profile": {
            "$ref": "./examples/CertificateProfile_Delete.json"
          }
        },
        "x-ms-long-running-operation-options": {
          "final-state-via": "location"
        },
        "x-ms-long-running-operation": true
      }
    },

No, this would violate ARM Swagger rules

We are very specifically not changing the emitted swagger based on changes to the headers - clients processing ARM APIs follow a set pattern.  We are only encoding additional information for use by TypeSpec emitters.

@tadelesh I think the right thing here is to add some linting rules that prevent replacing these values with headers that don't include Location.
There is some flexibility around combining Azure-AsyncOperation with Location, but removing Location is definitely not allowed for PATCH, POST, and DELETE LROs
The thought is that ARM LROs based on Swagger will not actually care about the options values, so even though Azure-AsyncOperation is better to use, if present, it is required by RPC that the operation can be resolved via the Location header for these.

AFAIK, some languages' sdk will relay on lro options to generate code. I just want to make sure the swagger emitter from typespec is identical with the original swagger. I have no idea about this will cause breaking change if we change the options.

As with other things, APIs that do not follow the ARM RPC should not be represented in library templates - if changing lro options causes a breaking change for ARM clients, then IMO, these operations should be represented at a lower level.

Do we need final-state-via for mgmt clients?

What is the impact if ithis is removed?

Do we need this for terraform, CLI, or PS?

What is the impact if it is removed.

For Go, we will use it in polling option, see code. And it will be used in the following polling process. Though Go have fallback logic if this option is empty. But I have no confidence to remove it. cc: @jhendrixMSFT

Java do not use final-state-via

.NET needs it to get the final request Uri, details can be found here.
And we had a arch-board review meeting regarding cross-language LRO rehydration, we are still discussion about the content of rehydration id. For now, .NET put final-state-via as needed content.

Python LRO polling needs it to get final request url:

generated SDK code: https://github.com/Azure/azure-sdk-for-python/blob/530f71581044ca21faa7cd0773d30210cc37e01f/sdk/hybridcontainerservice/azure-mgmt-hybridcontainerservice/azure/mgmt/hybridcontainerservice/operations/_provisioned_cluster_instances_operations.py#L535
azure-core: https://github.com/Azure/azure-sdk-for-python/blob/530f71581044ca21faa7cd0773d30210cc37e01f/sdk/core/azure-core/azure/core/polling/base_polling.py#L298-L320

JS would use final-state-via to identify the resource location and check code for more details.

It seems work now for typespec-autorest: https://github.com/Azure/typespec-azure/issues/310#issue-2153348800

Side note. Python honors final-state-via only for POST operations, and ignored it for everything else. Last time we did an experiment to add the PUT  support, we had to revert it because most of the spec were plain wrong.
This option has been misundertood by a lot of service teams, and I'm quite confident a lot of Swagger uses it incorrectly. To me it's counterproductive to try to reproduce the Swagger here, and we should confirm with service teams that they used it correctly, otherwise we would just continue spreading incorrect values.

modify getLroMetadata to support standard ARM final-state-via pattern values
Add @finalStateVia decorator in Azure.Core to allow override.
Add @finalStateSchema decorator in Azure.Core to allow override schema

@allenjzhang

getLroMetadaata already supports the standard values for final-state-via
There are already decorators to override the lro return type and final-state-via, which impact not just the values, but the actual mechanism used.  If we want to produce different values in autorest despite what is encoded in a spec, these decorators (@finalStateVia, @finalStateSchema) should go in TCGC

Describe the breaking change
This will update Swagger generated from TypeSpec to include 'final-state-schema' and adds validation for that displayed options match the underlying API and lro decorators.
Back-compat design to avoid immediate breaking
Added mechanisms to choose a particular final-state-via when multiple are possible and valid, overriding the default precedence rules. Also, implemented a configuration toggle, so data plane specs can be exempted from changes.
Link to detailed breaking design
Link:
Impact
This change affecting:

[x] ARM
[ ] Data-plane
[x] Existing specs: approx. # of service/spec impacted: TBD
[x] New specs
[ ] Emitters
[ ] SDK

Targeted Sprint
Sprint: June
Additional information
Will include links to typespec-next PRs

Fixed


Regenerate entity with jhipster uml create duplicate liquibase file

The issue
When you recreate twice time the same entity with jhipster uml , the changelogDate is updated.
So on the entity generator, it don't find the old liquibase file and updated it.  And instead recreate a new one and don't delete the old one. So duplicate table creation when we start the test.

The command

The stacktrace
Paste it here!

Steps to reproduce
create an uml with a simple entity.
generate the jhipster entity
change the uml
regenerate the entity
launch the test in the application.

The XMI file

Versions

JHipster
JHipster UML

3.9.1
3182520621231ba017d2f35ffd6dbd74eb9b8ddb

I can do a PR for this, but just defined , how you want to fix it (add old date in entity, improve entity generator, ....)

Quick question, if I change the UML, it's normal the liquibase changelog changes, right? So, what's the matter?

Yes but the old file is not updated and instead a new file is created and added in the master.xml. So entity table is created twice and fail the second time. So we must remove manually the old liquibase file and remove reference to them in master.xml

I'll look into it tomorrow then.

I think it's more a problem of process between generator and juml....so it's complicated to define when to change anything ;o)

I have an idea. I'll work on that during my week-end.
Le 28 octobre 2016 10:26:51 GMT+02:00, Duff<EMAIL_ADDRESS>a écrit :

I think it's more a problem of process between generator and juml....so
it's complicated to define when to change anything ;o)
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/jhipster/jhipster-uml/issues/224#issuecomment-256864791

--
Mathieu ABOU-AICHI

Don't hesite to ask me PR and work on this. As you can see i can code on juml and generators ;o)

The problem was that the JSON files were correctly read, but incorrectly accessed in the entitycreator. This provoked the automatic change of the changelogDate...

Great ! Many thanks
Le sam. 29 oct. 2016 à 20:29, Mathieu ABOU-AICHI<EMAIL_ADDRESS>a écrit :

Closed #224 https://github.com/jhipster/jhipster-uml/issues/224 via
8ee176d
https://github.com/jhipster/jhipster-uml/commit/8ee176decb5770fc26334f212ef77dc022d800c5
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jhipster/jhipster-uml/issues/224#event-840978524, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAOem3k2uoFzyzrVLhd4KNqHhWLO7tI1ks5q45CJgaJpZM4KgMYf
.


Support Headless Services for milvus proxy？

Hi everyone，
I have noticed that the current implementation of the Milvus Operator does not support headless services. Headless services are essential for certain stateful applications that require direct access to individual pods without load balancing.

From the above, we can see that my-release-milvus does not have a ClusterIP as a headless service for nodes.
Could you please confirm if there are any plans to add support for headless services in the Milvus Operator?
Thank you for your attention to this matter.

Hi @haorenfsa
I have submitted a pull request that addresses this functionality.  https://github.com/zilliztech/milvus-operator/pull/138
Please review the pull request at your earliest convenience. I am open to any feedback or suggestions for improvement.
Best regards

Hi @qchenzi, thank you for bring this out. My question is the proxies of Milvus are considered stateless. There seems no need for headless service. Could you describe your specific case when headless service is needed?

Hi @haorenfsa ,
Thank you for your response and for considering the pull request. In our specific case, We are using CoreDNS to configure wildcard DNS entries to dynamically resolve the IPs of the pods. This setup is essential for our internal service discovery and communication needs, where each pod needs to be accessible individually by a predictable DNS name.
While Milvus proxies are stateless, enabling headless services provides significant operational benefits for our specific use case.

OK. That make sense to me


Import Error

I just installed my clone in a fresh virtual environment.
I get the following import error
ImportError: cannot import name 'IndexMixin' from 'scipy.sparse.sputils' (/Users/adamgayoso/.virtualenvs/scvi/lib/python3.7/site-packages/scipy-1.3.0rc1-py3.7-macosx-10.14-x86_64.egg/scipy/sparse/sputils.py)
It has to do with the scanpy integration.

It looks like the issue has to do with the scipy version. Scipy 1.2.1 is the current release and in requirements.txt so I'm curious how scipy 1.3.0 got installed.

Looks like you had a pre-released verision of scipy: 1.3.0rc1

Right, but I installed in a virtualenv and don't have this prerelease version installed globally so something must have triggered this install.

I tried with a fresh install of miniconda. I get scipy version 1.2.1, not 1.30rc1.
(base) jeff@milkyway:~/git/scVI$ python
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>> scipy.__version__

Closed, based on discussion today at the weekly scVI team meeting


Fix headings in roadmap

What are your changes?
Fix headings in the roadmap of all versions
What type of changes does your doc introduce?

[x] Bug fix
[ ] New feature

What is the urgency level of this change?

[ ] Blocker
[ ] High
[x] Medium

I have completed these items:

[ ] I have tested all commands and code snippets.
[ ] I have built locally and tested for broken links and formatting.
[x] I have made this change for all affected versions (e.g. 1.7, 1.8, and 1.9).
[ ] My doc follows the style guide: https://github.com/dcos/dcos-docs#contributing.

Ping @emanic, @sascala, or @joel-hamill for reviewing pull request changes.
If you included a comment with your commit, it appears here:

Can one of the admins verify this patch?

looks good to me


New python version Bonsai not working

hey man, i just updated my arch and now my qtile configuration is not working, because of qtile bonsai, saying it cant import, and when i try to update qtile bonsai i get this error:
pip install --upgrade qtile-bonsai --break-system-packages
Defaulting to user installation because normal site-packages is not writeable
ERROR: Ignored the following versions that require a different python version: 0.1.0 Requires-Python <3.13,>=3.10; 0.2.0 Requires-Python <3.13,>=3.10; 0.3.0 Requires-Python <3.13,>=3.10; 0.4.0 Requires-Python <3.13,>=3.10
ERROR: Could not find a version that satisfies the requirement qtile-bonsai (from versions: none)
ERROR: No matching distribution found for qtile-bonsai

not sure if i have to downgrade python or what to do.
Thanks in advance

@gibranlp A temp workaround could be to use pip install qtile-bonsai --ignore-requires-python
(The library itself is pretty self-contained - it just needs qtile. All the dependency resolution mess comes from the needs of CI/test environment)

The next release should install fine under Python 3.13. The above workaround is the way meanwhile.
Pending are some dev-only issues around CI env. I think there may be some wayland related blockers under Python 3.13 - eg. I can't seem to get pywlroots to build.


Find Average

Do the checklist before filing the issue:

[x] Do you have Node.js and all the relevant dev-dependencies installed?
[ ] Is this a bug fix?
[x] Is this an enhancement?
[x] Is this a feature request?

NOTE: Provide a clear and concise description of the feature that needs to be added! Or if its a bug, then provide the necessary steps to reproduce it along with screenshots.

Give your answer below:

Function: M.avg()
Argument: Array-of-numbers (integers and floats) with all other arguments returning TypeError

Hey! I want to work on this!

@Manvityagi you're assigned!


Navigation list of vendors

list all vendors in the navigation and make a new route with the vendor id to edit a vendor

done

done


Change all PLC string encodings and decodings to use iconv-lite

Also adding support for umlauts and other characters that TwinCAT supports in STRINGs

Done


Pin ollama version

Why
Using latest:

is not reproducible, which can lead to unexpected errors
takes time to connect to dockerhub and check for new images

I think we should manually upgrade when necessary
Motive
Downloading newer ollama images was slowing my dev flow

@AgustinRamiroDiaz, before merging this one, could you please create an issue in the GH project and change the title accordingly?


Error

Traceback (most recent call last):
File "C:\recaptcha-fullauto\src\main.py", line 9, in
recaptcha_token = rcs.solve()
File "C:\recaptcha-fullauto\src\recaptcha_solver.py", line 50, in solve
self.switch_to_challenge_iframe()
File "C:\recaptcha-fullauto\src\recaptcha_solver.py", line 85, in switch_to_challenge_iframe
recaptcha_challenge_iframe = WebDriverWait(self.driver, 25).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'iframe[title="recaptcha challenge"]')))
File "C:\Python38\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:

ok I think this only works in English, so an error occurs, I'll try to redo it in my language

since 20 attempts it worked


Add a GitHub action to validate an issue request to deploy a factory on a new network

This PR:

Fixes https://github.com/safe-global/safe-singleton-factory/issues/253
Adds a new, more streamlined issue template

The GitHub action does the following:

Validates the RPC URL by extracting it from the issue description and executing a eth_chainId RPC call
Checks the extracted chain ID in the chainlist repository
Checks if the factory is already deployed
Estimates the expected pre-fund and checks if the deployed address is pre-funded

Some tests:

https://github.com/mmv08/safe-singleton-factory/issues/13
https://github.com/mmv08/safe-singleton-factory/issues/14
https://github.com/mmv08/safe-singleton-factory/issues/15
https://github.com/mmv08/safe-singleton-factory/issues/16
https://github.com/mmv08/safe-singleton-factory/issues/17

It would be nice if you could put these bash scripts into separate bash files and load them in the actions (this way you get syntax highlighting, slightly less indentation, etc.)

I didn't want to do this not to have an additional step of checking out the repo, but I agree about the lack of syntax highlighting.

I exported the script to a separate file. Code-wise, it should be good to review now. I'll test it properly and also add sophisticated documentation on how it works (writing to global github env, environment variables used, etc)

Looks good to me, but I feel that using NodeJs or Python script would be more clear and easy to modify in the future than bash, most of the script is just parsing, trimming of inputs...

That was my initial thought as well, but I decided not to do it for the following reasons:

It requires much more boilerplate and dependencies (github packages, linters, runtime, etc) and the environment would require much more maintenance
If you break down the tasks into smaller ones, we only need to parse a few strings and make a few HTTP requests, bringing in node sounds like an overkill

I understand, makes sense then @mmv08 !

I understand, makes sense then @mmv08 ! Good job!


How to change TGit menu place in VS2019

Since using VS2019 the TGit menu is located in the Extensions main menu item.
How to get the TGit menu back as own main menu item?

Not possible unfortunately 😞. Menu location is now determined by VS.


Update README.md

Hey!
Thanks a lot for your plugin, super useful!
A quick PR to improve the README:

Fix package path
Add information about Slack scopes

docs(slack): add slack bot required scopes to readme

thanks @gchenuet !


Question: What is the reason of "@ApplicationContext"?

Why is it used - and for what?
Thanks.
UPDATE: Is it something like @Named?
UPDATE 2: I found something: https://stackoverflow.com/a/39966489/4534276
I think my question is now "answered". :-)

But I just want to know how you are thinking: What are the pros and cons?

Yes, that is Named and it is also for readability purpose so that caller knows which context(application or other).


Populator, as described in example, not working on CakePHP 3

The code I am using for trying the Populator is this:
require_once dirname(__FILE__) . '/../vendor/autoload.php';

$generator = \Faker\Factory::create('nl_NL');
$populator = new Faker\ORM\CakePHP\Populator($generator);
$populator->addEntity('Project', 5);
$insertedPKs = $populator->execute();

One can see that I changed almost nothing, yet it is not working; the main thing I changed was change the Populator to CakePHP. The message I keep getting is:
Fatal error: Uncaught exception 'Cake\Datasource\Exception\MissingDatasourceConfigException' with message 'The datasource configuration "default" was not found.' in D:\htdocs\cake_project\vendor\cakephp\cakephp\src\Datasource\ConnectionManager.php:196
Faker is version 1.6.0, CakePHP is version 3.3.15, running on XAMPP.

OK, got it to work! There were two things I changed:
.- include config/bootstrap.php. Apparently it sets some paths, so that TableRegistry can find the models, and includes the config file
.- changed $populator->addEntity('Project', 5); to $populator->addEntity('Projects', 5);
Although the manual (of CakePHP) says that a model should have a singular name ("Project"), when trying to get it by TableRegistry one should use the plural name ("Projects").


Umbrella issue for clippy integration

Note: migrated from original JIRA: https://issues.apache.org/jira/browse/ARROW-9978
This is an umbrella issue to collate outstanding and new tasks to enable clippy integration

Original tracking issue had all subtasks closed, so I don't think this one was tracking anything useful either


Add tests which raise Invalid_depth

See https://github.com/mirage/irmin/pull/1665#discussion_r766547135

Closed by https://github.com/mirage/irmin/pull/2247


Extending Package

Currently, is there any way to add additional Faker data/methods? For example, can I do something like:
using System;
using System.Collections.Generic;
using Faker.Extensions;

namespace Faker
{
    public static class PartNumber
    {
        public static string Full()
        {
            return ArrayExtensions.Random(Faker.Resources.PartNumber).Trim();
        }
    }
}

To add functionality to the existing implementation (installed via NuGet)

Came here to ask this too.
I think your best bet is to clone this project and add a new class and Resources file. Although, if you want something like a PartNumber you might be better off using AutoFixture.


Release resources when code ends

close windows on 'esc' key press so that cv2 window is not stuck

Thank you!


Info and issue about libfabric+infiniband+hpx without using MPI

So far, I configured HPX to use MPI for the communication between different localities on infiniband network and everything works fine
-DHPX_WITH_NETWORKING=ON -DMPI_CXX_COMPILER=mpicxx -DHPX_WITH_PARCELPORT_MPI=ON
Now, I was wondering if HPX currently supports communication between different localities without using MPI and still on low latency infiniband network.
I tried to use libfabric as followings:
-DHPX_WITH_NETWORKING=ON -DHPX_WITH_PARCELPORT_LIBFABRIC=ON
and I got the following compilation error:
fatal error: hpx/runtime.hpp: No such file or directory  #include <hpx/runtime.hpp>

HPX Version: 1.7.1
Platform (compiler, OS): Centos 7 - HPC cluster with infiniband network

Thanks a lot for helping.

The infiniband parcelport is currently non-functional (and we should remove it), sorry.

This is about the libfabric parcelport. It is indeed currently non-functional on master. @biddisco is the maintainer of the libfabric parcelport and has been working on updating it but is currently busy with other work. If you're interested it may be possible to try out the branch where this work is happening, but we'll need to hear from @biddisco for more details about this.

@msimberg, @hkaiser thanks a lot for your fast replies. Before requesting the branch @msimberg mentioned, I would like to ask you if you know if the use of HPX using MPI for the communication between localities can outperfom some MPI standard applications and somehow HPX using libfabric might provide additional speed up over using HPX + MPI.

@msimberg, @hkaiser thanks a lot for your fast replies. Before requesting the branch @msimberg mentioned, I would like to ask you if you know if the use of HPX using MPI for the communication between localities can outperfom some MPI standard applications

Only if you can utilize the asynchrony introduced by HPX (i.e. hide the communication latencies behind parallel work).

and somehow HPX using libfabric might provide additional speed up over using HPX + MPI.

In the past we have seen significant speedup when using the libfabric networking compared to using the MPI parcelport: https://dl.acm.org/doi/pdf/10.1145/3295500.3356221. .


PostgresSQL server failed to start

Hi all, has anyone ran into this issue before? Ideas for workaround?

Starting PostgreSQL 9.3 database server
The PostgreSQL server failed to start. Please check the log output.
...fail!
createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
The command '/bin/sh -c service postgresql start &&     sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='nominatim'" | grep -q 1 || sudo -u postgres createuser -s nominatim &&     sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='www-data'" | grep -q 1 || sudo -u postgres createuser -SDR www-data &&     sudo -u postgres psql postgres -c "DROP DATABASE IF EXISTS nominatim" &&     useradd -m -p password1234 nominatim &&     chown -R nominatim:nominatim ./src &&     sudo -u nominatim ./src/utils/setup.php --osm-file /app/src/data.osm.pbf --all --threads 2 &&     service postgresql stop' returned a non-zero code: 1

Me too having a similar issue at the PostgreSQL.
Anyone know how to fix this ?
Step 18/22 : RUN service postgresql start &&     sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='nominatim'" | grep -q 1 || sudo -u postgres createuser -s nominatim &&     sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='www-data'" | grep -q 1 || sudo -u postgres createuser -SDR www-data &&     sudo -u postgres psql postgres -c "DROP DATABASE IF EXISTS nominatim" &&     useradd -m -p password1234 nominatim &&     chown -R nominatim:nominatim ./src &&     sudo -u nominatim ./src/utils/setup.php --osm-file /app/src/data.osm.pbf --all --threads 2 &&     service postgresql stop
---> Running in 3fa191b76163

Starting PostgreSQL 9.3 database server
...done.
NOTICE:  database "nominatim" does not exist, skipping
DROP DATABASE
Create DB
createdb: database creation failed: ERROR:  could not stat file "base/1/pg_internal.init": No such file or directory
ERROR: Error executing external command: createdb -E UTF-8 -p 5432 nominatim
Error executing external command: createdb -E UTF-8 -p 5432 nominatim
The command '/bin/sh -c service postgresql start &&     sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='nominatim'" | grep -q 1 || sudo -u postgres createuser -s nominatim &&     sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='www-data'" | grep -q 1 || sudo -u postgres createuser -SDR www-data &&     sudo -u postgres psql postgres -c "DROP DATABASE IF EXISTS nominatim" &&     useradd -m -p password1234 nominatim &&     chown -R nominatim:nominatim ./src &&     sudo -u nominatim ./src/utils/setup.php --osm-file /app/src/data.osm.pbf --all --threads 2 &&     service postgresql stop' returned a non-zero code: 255

Any follow-up on this? I get the same error as Ericson90. Not sure if this is the same issue as OP, Because there are many commands here in one line, it's hard to say which one is causing.
I get the 255 exit-code. PBF is Planet. Running on a 32GB RAM machine, 8 vcpus. 900GB disk space.

I have the same problem with the 3.1 and i fix this by adding :
service postgresql start
under chown postgres:postgres /data/$PGDIR && \
in the init.sh then rebuild etc

We've changed quite a lot with the latest releases (3.6 & 3.7). You can check the latest version out and give us feedback, the problem should be fixed.


Update CI to Xcode 9

[x] Upgrades circle.yml to 9.0.x

          1 Warning

:warning:
Pull Request is Work in Progress

  Generated by :no_entry_sign: Danger

Hey everyone, just curious what we can do to push this forward, it would be great to get fastlane building with up-to-date machines! 🚀

          1 Error

:no_entry_sign:
Tests have failed, see below for more information.

Tests:

Name
File

Gym Gym::DetectValues Xcode config handling fetches the custom build path from the Xcode config
detect_values_spec.rb

  Generated by :no_entry_sign: Danger

@KrauseFx Green!

🚀


Add Persian(Farsi) language errorMap

Add fa.js to locales

add zod/locales/fa.js
change ERROR_HANDLING.md

linked issue: https://github.com/colinhacks/zod/issues/2855#issue-1936617590

Thanks, love this! I'm going to merge this into the v4 branch because the design of error maps will change quite dramatically in Zod 4. I'll also doing a big push to include more locales before releasing v4.
If you don't mind I'll probably ping you in a few weeks once the new error map format is stable, so you can update things accordingly. Stay tuned. 👍

Thank you. I would be happy to help and I look forward to being pinged by you to make this change.


"{{-" and "-}}" are not working

When I try to evaluate the template with "-" symbols I'm getting an error: "illegal number syntax: -"

You mean {{-}}? This is invalid syntax, as it's assumed to be a minus. You can use {{"-"}}, {{print "-"}} or similar to print this symbol.

@proninyaroslav ,
I'm talking about this one https://pkg.go.dev/text/template#hdr-Text_and_spaces
It is used to remove whitespaces

As far as I remember, it appeared later and I didn't implement it.

Is it possible to implement this?

Yes, but I don't have time to do it. Any help appreciated.

Can you give me something?  Where should I look for what class and what should be changed? I'll try to take a look.

I think you should start with this Go code https://github.com/golang/go/blob/master/src/text/template/parse/lex.go#L426
And implement similar in java https://github.com/proninyaroslav/java-template-engine/blob/master/src/main/java/ru/proninyaroslav/template/Lexer.java

Agreed this tool needs to be able to handle the dash symbols as tokens.


Sqrt

Calculates the square root of a given value, ensuring it falls within a specific range.
Reference: https://github.com/starkware-libs/cairo-lang/blob/efa9648f57568aad8f8a13fbf027d2de7c63c2c0/src/starkware/cairo/common/math.cairo#L423
It will probably be useful to have a look into hintrunner/core/FieldSqrt.

Hello @cicr99; I would like to start working on this

Perfect @Tomi-3-0, just assigned you to the task. Please review this guide on how to implement new Cairo 0 hints

Hello @cicr99. I submitted a PR for this issue. Please review

Hi @cicr99. I opened a fresh PR for this issue with the requested changes. Please review

Perfect. Great work! Pr approved and merged!


Minify bundles

Prior to creating the zip file, the browserify bundle should be minified.

Lambundaler supports this. Just need to figure out issue with Browserify not being able to find minifyify plugin.


bump camel version

Spring Cloud Contract can not be used with new version of Camel due to usage of deprecated constructor of DefaultMessage, which as of now requires an instance of CamelContext.

@jnopnop Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

Codecov Report

Merging #733 into 1.2.x will not change coverage.
The diff coverage is 0%.

@@            Coverage Diff            @@
##              1.2.x     #733   +/-   ##
=========================================
  Coverage     61.65%   61.65%
  Complexity     1795     1795
=========================================
  Files           201      201
  Lines          7209     7209
  Branches       1127     1127
=========================================
  Hits           4445     4445
  Misses         2158     2158
  Partials        606      606

Impacted Files
Coverage Δ
Complexity Δ

...ing/camel/ContractVerifierCamelMessageBuilder.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...ct/verifier/messaging/camel/CamelStubMessages.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

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 1b36df5...581e146. Read the comment docs.

congrats @jnopnop on your first contribution!!! 🎉

@jnopnop Looking forward for 2.0 camel revert ;D


[BUG] Free5GC NGAP handover failure issue.

Hello everyone, when I was testing NGAP handover using Free5GC and PacketRusher, I encountered some issues, possibly due to compatibility problems with Free5GC v3.3.0. Or could it be an issue with my configuration? How can I resolve this? I'm very anxious, thank you.The PacketRusher logs are as follows:
sudo ./packetrusher multi-ue -n 1 -ngh 13000 --tunnel -dedicatedGnb
IINFO[0000] Selecting <IP_ADDRESS> for host <IP_ADDRESS> as AMF's IP address
INFO[0000] Selecting <IP_ADDRESS> for host <IP_ADDRESS> as gNodeB's N3/Data IP address
INFO[0000] Selecting <IP_ADDRESS> for host <IP_ADDRESS> as gNodeB's N2/Control IP address
INFO[0000] Loaded config at: /home/lsp/PacketRusher/config/config.yml
INFO[0000] PacketRusher version 1.0.1
INFO[0000] ---------------------------------------
INFO[0000] [TESTER] Starting test function: Testing registration of multiple UEs
INFO[0000] [TESTER][UE] Number of UEs: 1
INFO[0000] [TESTER][GNB] gNodeB control interface IP/Port: <IP_ADDRESS>/9487~
INFO[0000] [TESTER][GNB] gNodeB data interface IP/Port: <IP_ADDRESS>/2152
INFO[0000] [TESTER][AMF] AMF IP/Port: <IP_ADDRESS>/38412
INFO[0000] ---------------------------------------
WARN[0000] [TESTER] We are increasing the number of gNodeB to two for handover test cases. Make you sure you fill the requirements for having two gNodeBs.
INFO[0000] [GNB] SCTP/NGAP service is running
INFO[0000] [GNB] Initiating NG Setup Request
INFO[0000] [GNB] SCTP/NGAP service is running
INFO[0000] [GNB] Initiating NG Setup Request
INFO[0000] [GNB][SCTP] Receive message in 0 stream
INFO[0000] [GNB][NGAP] Receive NG Setup Response
INFO[0000] [GNB][AMF] AMF Name: AMF
INFO[0000] [GNB][AMF] State of AMF: Active
INFO[0000] [GNB][AMF] Capacity of AMF: 255
INFO[0000] [GNB][AMF] PLMNs Identities Supported by AMF -- mcc: 208 mnc:93
INFO[0000] [GNB][AMF] List of AMF slices Supported by AMF -- sst:01 sd:010203
INFO[0000] [GNB][AMF] List of AMF slices Supported by AMF -- sst:01 sd:112233
INFO[0000] [GNB][SCTP] Receive message in 0 stream
INFO[0000] [GNB][NGAP] Receive NG Setup Response
INFO[0000] [GNB][AMF] AMF Name: AMF
INFO[0000] [GNB][AMF] State of AMF: Active
INFO[0000] [GNB][AMF] Capacity of AMF: 255
INFO[0000] [GNB][AMF] PLMNs Identities Supported by AMF -- mcc: 208 mnc:93
INFO[0000] [GNB][AMF] List of AMF slices Supported by AMF -- sst:01 sd:010203
INFO[0000] [GNB][AMF] List of AMF slices Supported by AMF -- sst:01 sd:112233
INFO[0001] [TESTER] TESTING REGISTRATION USING IMSI<PHONE_NUMBER> UE
INFO[0001] [GNB] Received incoming connection from new UE
INFO[0001] [UE] Initiating Registration
INFO[0001] [UE] Switched from state 0 to state 1
INFO[0001] [GNB][SCTP] Receive message in 0 stream
INFO[0001] [GNB][NGAP] Receive Downlink NAS Transport
INFO[0001] [UE][NAS] Message without security header
INFO[0001] [UE][NAS] Receive Authentication Request
INFO[0001] [UE][NAS][MAC] Authenticity of the authentication request message: OK
INFO[0001] [UE][NAS][SQN] SQN of the authentication request message: VALID
INFO[0001] [UE][NAS] Send authentication response
INFO[0001] [UE] Switched from state 1 to state 2
INFO[0001] [GNB][SCTP] Receive message in 0 stream
INFO[0001] [GNB][NGAP] Receive Downlink NAS Transport
INFO[0001] [UE][NAS] Message with security header
INFO[0001] [UE][NAS] Message with integrity and with NEW 5G NAS SECURITY CONTEXT
INFO[0001] [UE][NAS] successful NAS MAC verification
INFO[0001] [UE][NAS] Receive Security Mode Command
INFO[0001] [UE][NAS] Type of ciphering algorithm is 5G-EA0
INFO[0001] [UE][NAS] Type of integrity protection algorithm is 128-5G-IA2
INFO[0001] [GNB][SCTP] Receive message in 0 stream
INFO[0001] [GNB][NGAP] Receive Initial Context Setup Request
INFO[0001] [GNB][UE] UE Context was created with successful
INFO[0001] [GNB][UE] UE RAN ID 1
INFO[0001] [GNB][UE] UE AMF ID 1
INFO[0001] [GNB][UE] UE Mobility Restrict --Plmn-- Mcc: 208 Mnc: 93
INFO[0001] [GNB][UE] UE Masked Imeisv:<PHONE_NUMBER>ffff00
INFO[0001] [GNB][UE] Allowed Nssai-- Sst: [01 01] Sd: [010203 112233]
INFO[0001] [GNB][NGAP][AMF] Send Initial Context Setup Response.
INFO[0001] [UE][NAS] Message with security header
INFO[0001] [UE][NAS] Message with integrity and ciphered
INFO[0001] [UE][NAS] successful NAS CIPHERING
INFO[0001] [UE][NAS] successful NAS MAC verification
INFO[0001] [UE][NAS] Receive Registration Accept
INFO[0001] [UE][NAS] UE 5G GUTI: &{119 11 [242 2 248 57 202 254 0 0 0 0 1]}
INFO[0001] [GNB] Initiating Initial Context Setup Response
INFO[0001] [GNB][NGAP] No PDU Session to set up in InitialContextSetupResponse.
INFO[0001] [UE] Switched from state 2 to state 3
INFO[0001] [UE] Initiating New PDU Session
INFO[0001] [GNB][SCTP] Receive message in 0 stream
INFO[0001] [GNB][NGAP] Receive PDU Session Resource Setup Request
INFO[0001] [GNB][NGAP][UE] PDU Session was created with successful.
INFO[0001] [GNB][NGAP][UE] PDU Session Id: 1
INFO[0001] [GNB][NGAP][UE] NSSAI Selected --- sst: NSSAI was not selected sd: NSSAI was not selected
INFO[0001] [GNB][NGAP][UE] PDU Session Type: ipv4
INFO[0001] [GNB][NGAP][UE] QOS Flow Identifier: 1
INFO[0001] [GNB][NGAP][UE] Uplink Teid: 1
INFO[0001] [GNB][NGAP][UE] Downlink Teid: 1
INFO[0001] [GNB][NGAP][UE] Non-Dynamic-5QI: 9
INFO[0001] [GNB][NGAP][UE] Priority Level ARP: 8
INFO[0001] [GNB][NGAP][UE] UPF Address: <IP_ADDRESS> :2152
INFO[0001] [GNB] Initiating PDU Session Resource Setup Response
INFO[0001] [UE][NAS] Message with security header
INFO[0001] [UE][NAS] Message with integrity and ciphered
INFO[0001] [UE][NAS] successful NAS CIPHERING
INFO[0001] [UE][NAS] successful NAS MAC verification
INFO[0001] [UE][NAS] Receive DL NAS Transport
INFO[0001] [UE][NAS] Receiving PDU Session Establishment Accept
INFO[0001] [UE][NAS] PDU session QoS RULES: [1 0 6 49 49 1 1 255 1]
INFO[0001] [UE][NAS] PDU session DNN: internet
INFO[0001] [UE][NAS] PDU session NSSAI -- sst: 1 sd: 112233
INFO[0001] [UE][NAS] PDU address received: <IP_ADDRESS>
INFO[0002] [UE][GTP] Interface val0000000003 has successfully been configured for UE <IP_ADDRESS>
INFO[0002] [UE][GTP] You can do traffic for this UE using VRF vrf0000000003, eg:
INFO[0002] [UE][GTP] sudo ip vrf exec vrf0000000003 iperf3 -c IPERF_SERVER -p PORT -t 9000
INFO[0014] [GNB] Initiating NGAP UE Handover
INFO[0014] [GNB][SCTP] Receive message in 0 stream
INFO[0014] [GNB][NGAP] Receive Handover Request
INFO[0014] [GNB] Initiating Handover Request Acknowledge
INFO[0014] [GNB][SCTP] Receive message in 0 stream
WARN[0014] [GNB][NGAP] Received unknown NGAP message 0xc
The error log section in Free5GC is as follows (only capturing the handover part):

2024-09-26T22:31:36.132442898-07:00 [INFO][AMF][Ngap][ran_addr:<IP_ADDRESS>:9488] Handle HandoverRequired
2024-09-26T22:31:36.133710889-07:00 [INFO][AMF][Ngap][amf_ue_ngap_id:RU:1,AU:1(3GPP)][ran_addr:<IP_ADDRESS>:9488] Handle HandoverRequired (RAN UE NGAP ID: 1)
2024-09-26T22:31:36.134560616-07:00 [INFO][AMF][Ngap][amf_ue_ngap_id:RU:1,AU:1(3GPP)][ran_addr:<IP_ADDRESS>:9488] Send HandoverRequiredTransfer to SMF
2024-09-26T22:31:36.136731230-07:00 [INFO][SMF][PduSess] Receive Update SM Context Request
2024-09-26T22:31:36.138325292-07:00 [WARN][SMF][PduSess][pdu_session_id:1][supi:imsi-208930000000003] Unexpected state, expect: [Active], actual:[ModificationPending]
2024-09-26T22:31:36.139217316-07:00 [INFO][SMF][PduSess] Direct Forwarding Path Unavailable
2024-09-26T22:31:36.141537916-07:00 [INFO][SMF][GIN] | 200 |       <IP_ADDRESS> | POST    | /nsmf-pdusession/v1/sm-contexts/urn:uuid:d4198a5a-c6dd-49de-a819-8f478262bae4/modify |
2024-09-26T22:31:36.143185274-07:00 [INFO][AMF][Ngap][amf_ue_ngap_id:RU:1,AU:1(3GPP)][ran_addr:<IP_ADDRESS>:9488] Send Handover Request
2024-09-26T22:31:36.143340361-07:00 [INFO][AMF][Ngap][amf_ue_ngap_id:RU:4294967295,AU:2(3GPP)][ran_addr:<IP_ADDRESS>:9487] New RanUe [RanUeNgapID:4294967295][AmfUeNgapID:2]
2024-09-26T22:31:36.157083279-07:00 [INFO][AMF][Ngap][ran_addr:<IP_ADDRESS>:9487] Handle HandoverRequestAcknowledge
2024-09-26T22:31:36.157483045-07:00 [INFO][AMF][Ngap][amf_ue_ngap_id:RU:4294967295,AU:2(3GPP)][ran_addr:<IP_ADDRESS>:9487] Handle HandoverRequestAcknowledge (RAN UE NGAP ID:<PHONE_NUMBER>)
2024-09-26T22:31:36.157557938-07:00 [INFO][AMF][Ngap][amf_ue_ngap_id:RU:4294967295,AU:2(3GPP)][ran_addr:<IP_ADDRESS>:9487] Send HandoverRequestAcknowledgeTransfer to SMF
2024-09-26T22:31:36.161705582-07:00 [INFO][SMF][PduSess] Receive Update SM Context Request
2024-09-26T22:31:36.164497041-07:00 [ERRO][SMF][PduSess][pdu_session_id:1][supi:imsi-208930000000003] Handle HandoverRequestAcknowledgeTransfer failed: DL Forwarding Info not provision
2024-09-26T22:31:36.165925918-07:00 [ERRO][SMF][GIN] panic: runtime error: invalid memory address or nil pointer dereference
Additionally, I noticed a warning message during session establishment in the SMF：[WARN][SMF][PduSess] No Create URR

If the handover is not executed and I run the command sudo ./packetrusher ue, there is also a warning [WARN][SMF][PduSess] No Create URR, but this does not affect the establishment of the PDU session and user plane.

Hi @sp-l6,
Thanks for the report! I'll take a look.
It's probably indeed a bug in PacketRusher.
However, I would recommend you to also open a bug on Free5GC's SMF (if the panic is reproducible on main) as even if PacketRusher is doing something wrong, it should not make SMF panic (even if the panic is caught by Gin).
Thanks and cheers!
Valentin

@linouxis9
Thank you! The XN handover is usable. Next, I will verify whether integrating Free5GC and UERANSIM will result in this panic, as I believe it can help resolve the issue.

Hello, do you have any new research findings? @linouxis9

I also face the same question. If there is a solution? @linouxis9


rocmPackages: split outputs?

...if splittable. CC https://github.com/NixOS/nixpkgs/issues/197885
Issue description
❯ nix eval nixpkgs#rocmPackages.rocblas.outputs
[ "out" ]
❯ nix build --refresh github:philiptaron/llama.cpp/nix#rocm --print-out-paths | xargs nix path-info --human-readable --closure-size --recursive | grep G'$'
/nix/store/8fpf7jmnmyf96bjabx4r8rj3vki8z7pj-rocm-llvm-clang-unwrapped-5.7.1        1.7G
/nix/store/8xa2qq8xkd4qjmlary2j0wmblmkfb5q0-rocm-llvm-llvm-5.7.1                   1.5G
/nix/store/mslhw90n1yi8xwmvz60zh408g15hmica-rocm-llvm-clang-5.7.1                  3.8G
/nix/store/yc0v7l0bka0hcyy82vkqhaxmj5c91lz8-rocm-runtime-5.7.1                     3.8G
/nix/store/2bhwj31y2fa4kqc3sp4bs1b1nd4d8qic-rocminfo-5.7.1                         3.9G
/nix/store/wcmixj44ihf7mjpf5wn77y9gr1p9zzxv-rocm-llvm-binutils-5.7.1               2.0G
/nix/store/ivdnfrb7ymzbcv12a52jnz9sdf6fvpdp-rocm-llvm-binutils-wrapper-5.7.1       2.0G
/nix/store/6xj537dwafp618f084hkl4gvlf5sfqqa-rocm-llvm-clang-wrapper-5.7.1          4.0G
/nix/store/68xb3gyp792qyhpg6wwpamh9w08iwdkr-clr-5.7.1                              4.4G
/nix/store/pk2gwl2bqr3yqwb8kb524ixbdbkms7dp-rocblas-tensile-gfx90-5.7.1            1.8G
/nix/store/9fm8cfjwd9nhpc06bz4fdgmc4gwdi2dq-rocblas-5.7.1                          7.9G
/nix/store/gblj9yaj27f50h5fh2vyr774ygxvd3qf-rocsparse-5.7.1                        5.4G
/nix/store/8q2vbagp8j602490l2v3rwn435l71k03-rocsolver-5.7.1                       10.4G
/nix/store/fdbz6r7h9kxzypyfz9h1mq93qwsrq9jx-hipblas-5.7.1                         10.4G
/nix/store/1b6qcr7l9p0yx4mji8c6pbjcybz4fp88-llama-cpp-rocm-0.0.0                  10.6G
❯ # Baseline:
❯ nix build --refresh github:philiptaron/llama.cpp/nix#{cuda,default} --print-out-paths | xargs nix path-info --human-readable --closure-size
/nix/store/61xjz6l35r1c6xp4v5py8iaia18bs5xy-llama-cpp-cuda-0.0.0         985.6M
/nix/store/ndx1xc79in3kmf65r4h1a28j3i72yv8q-llama-cpp-blas-0.0.0         340.1M

@NixOS/rocm-maintainers (and @NixOS/cuda-maintainers as potentially interested)
Technical details
❯ nix flake metadata github:philiptaron/llama.cpp/nix
Resolved URL:  github:philiptaron/llama.cpp/nix
Locked URL:    github:philiptaron/llama.cpp/4522c47a2282a595344ba8dcb85222910b2ffc4f
Description:   Port of Facebook's LLaMA model in C/C++
Path:          /nix/store/rylr1mlncn5jrziws9wm641fp9mc5dsf-source
Revision:      4522c47a2282a595344ba8dcb85222910b2ffc4f
Last modified: 2023-12-26 04:07:02
Inputs:
├───flake-parts: github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5 (2023-12-01 23:39:28)
│   └───nixpkgs-lib: github:NixOS/nixpkgs/e92039b55bcd58469325ded85d4f58dd5a4eaf58?dir=lib (2023-11-29 10:33:01)
└───nixpkgs: github:NixOS/nixpkgs/75dd68c36f458c6593c5bbb48abfd3e59bfed380 (2023-12-26 03:05:57)

(I haven't looked up what those are yet)

Symlinks are the main reasons the runtime closure is so huge: https://github.com/NixOS/nixpkgs/blob/4848569afdf2bcfeba902a25c799522d2905f73d/pkgs/development/rocm-modules/5/rocblas/default.nix#L152-L154

Pretty sure we need everything that's in the (split) rocblas closure.
I haven't really found a better solution than what we have now.

Symlinks are the main reasons the runtime closure is so huge (CC #260299):
https://github.com/NixOS/nixpkgs/blob/4848569afdf2bcfeba902a25c799522d2905f73d/pkgs/development/rocm-modules/5/rocblas/default.nix#L152-L154
We should work out some propagatedBuildInputs-based solution and ensure that tools like CMake handle the splayed layouts well.
I wonder if we could start by just moving the symlinks into a separate, say, dev output and hoping that the dependency isn't retained at runtime

Ah I see now.
Hmm, we could do each separately behind an optionalString guard.

Hmm, we could do each separately behind an optionalString guard.

That doesn't really sound like much of a solution... but are these actually ever accessed at runtime?

Hmm, we could do each separately behind an optionalString guard.

That doesn't really sound like much of a solution... but are these actually ever accessed at runtime?

After thinking about it in the shower, it would still be problematic, since even if we got it to only do say, "gfx90", the user would still have to recompile rocblas itself (which shouldn't be too bad, since it's only using one gpu target!), or use a non-nixos cache.

Add the Tensile library to your application's CMake target. The Tensile library will be written, compiled and linked to your application at application-compile-time.
https://github.com/ROCm/Tensile/wiki

This sounds more plausible (that we don't need these (e.g. in pytorch) after the build).
Notably, rocblas/cmake doesn't reference them neither by the extensions nor by the relative paths:
❯ ag hsaco result/lib/cmake/rocblas/ --follow
❯ ag library result/lib/cmake/rocblas/ --follow
<target names and variables but no paths>

I tried looking at rocm-merged from torchWithRocm in search of references for these files and didn't find (so far) any that'd look relevant either:
XX in 🌐 YYYYY in /nix/store/a7fwwnhppk6h97hb65dl3rwd4iqxs61p-rocm-merged
❯ ag --follow --search-binary --max-count=4 '\.hsaco'
Binary file rocblas/lib/librocblas.so matches.

Binary file lib/librocblas.so.3 matches.

Binary file lib/librocblas.so matches.
ERR: Too many matches in ./lib/rocblas/library/TensileManifest.txt. Skipping the rest of this file.

lib/rocblas/library/TensileManifest.txt
625:/build/source/build/Tensile/library/TensileLibrary_Type_DD_Contraction_l_Ailk_Bjlk_Cijk_Dijk_fallback_gfx803.hsaco
626:/build/source/build/Tensile/library/TensileLibrary_Type_DD_Contraction_l_Ailk_Bjlk_Cijk_Dijk_fallback_gfx900.hsaco
627:/build/source/build/Tensile/library/TensileLibrary_Type_DD_Contraction_l_Ailk_Bjlk_Cijk_Dijk_fallback_gfx906-xnack-.hsaco
628:/build/source/build/Tensile/library/TensileLibrary_Type_DD_Contraction_l_Ailk_Bjlk_Cijk_Dijk_fallback_gfx908-xnack-.hsaco

Binary file lib/librocblas.so.3.1.0 matches.
❯ strings rocblas/lib/librocblas.so | rg 'hsaco$'
.hsaco

The /build/source/build/ clearly is just cruft coming from the sandbox

Fedora has added tensile to their rocblas builds for the 6.0.2 release.
They write that miopen needs it.
https://src.fedoraproject.org/rpms/rocblas/c/918d514378861b900624c73b91fb75059c96dbf0?branch=rawhide

TLDR: I would like to try to add a rocblasWithTensile package that is built on top of rocblas(without tensile), and consumers who don't need it should pick the one without.
I don't know which other consumers besides MIOpen need/benefit from tensile.
Looking at https://github.com/ROCm/rocBLAS/blob/adb8567f1bdad56b3b688a0b6dec1f79bf438ab4/CMakeLists.txt
i wonder if it is possible with a few changes to split the build into derivations like this

rocblas: first build rocblas without buildTensile
gfx[...device..]: put together a nice working directory to build ONLY the tensile parts per gpuTarget with only $path/lib/rocblas/library as the output
rocblasWithTensile: create rocblas with Tensile by symlinking from 1 and 2 as required

Consumers who don´t need tensile could get that as rocblasWithTensile.override { buildTensile = false; }, even from the cache. That flag already exists. We could decide if we also want to expose it as a package and use that in most downstream consumers. For changes to gpuTargets, caching should also work with this setup. Provided the grouping by GPU arch is not too important.


Reverse proxy

Integrate an automated solution like https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion or https://docs.traefik.io/:

[ ] serve domain name (eg app.aktnmap.com)
[ ] serve application using SSL
[ ] generate logs/stats

Started PoC on https://github.com/kalisio/kaabah

Traefik seems to cover all needs.


[WIP] Magento writer

This is probably out of scope for the project, but we are going to be using this brilliant tool for importing and exporting from Magento.
Sadly tests can't be written for this class because it requires an instance of Magento, which obviously doesn't exist in the repo.
We'll be adding more Magento specific features in our fork in the near future too.

@adam-paterson Any news?

@Baachi This can probably be closed, we created some extensions in a separate repository: https://github.com/WeareJH/data-import-magento

All right, closing this. Great to see packages being built on top of this library!

Sorry guys, I never got a notification about this.


Introduce sanity checks to reconciler

Description
The reconciler has to to be able to apply sanity checks before starting a reconciliation. Sanity checks have to be executed before any reconciliation starts. A non-fulfilled sanity check leads to a failing reconciliation and has to fire an alert on SRE side.
Such a sanity check can be either globally (e.g. used K8s servcie-account has sufficient permissions) or component specific. Global sanity checks have to be executed for any reconciliation. Component specific sanity checks have only to run if the cluster configuration includes the related component.
Please review all issues which are labels with outage-scenario (see ops-test page in Wiki) for potential edge-cases which should be verified by a sanity check.
AC:

Sanity checks can be defined globally or per component: global sanity checks are always executed, component specific sanity checks only if the cluster configuration includes the component.
Sanity checks are executed before any reconciliation runs
A failing sanity check will mark the cluster to be in error state (maybe worth to introduce a new error state like sanitycheck_erroror similar?).
SREs will be notified about such problems via monitoring (existing alerting/reporting approach of reconciler can be reused).

Reasons
Identify non-recoverable reconciliation issues up-front.
Attachments

Functionalities of the Reconciler were migrated to the new architecture, this issue will not be worked on.


ECMAScript Module / Browser Support

I've spent some time continuing the work started in #317
I have the following high-level objectives:

[x] Modernize the code base
[x] Provide a CommonJS build for node.js
[x] Provide an ESM (ECMAScript Module) build for use in Browser-Bundlers like webpack, rollup etc.
[x] Provide an ESM build for direct use in the browser
[ ] (Provide an ESM build for direct use in node 12 <-- Still unclear if/when Node.js will remove the experimental flag)

So far I have tried to build a hybrid npm package that contains both, a CommonJS build and an esm build. I followed the pattern, that https://date-fns.org/v2.2.1/docs/ECMAScript-Modules uses.
This works fine for CommonJS-usage in Node.js and esm-usage with bundlers like webpack for the browser.
However it does not play nice with pure esm usage:

For webpack and other bundlers we're saved by the "module": "esm/index.js" property in package.json, so far so good.
For Node.js, if we wanted true esm we'd have to publish the package with type: module in package.json and have the main property point directly to the esm build, the module property as mentioned above does not seem to work. This could be something like uuid-es similar to https://www.npmjs.com/package/lodash-es
For native esm usage in Browsers we run into yet another problem: We currently rely on the "browser" map in package.json to overwrite certain libraries in the browser context. This is again respected by webpack and other bundlers but obviously not by the browsers themselves. So here we'd maybe have to release another uuid-es-browser package with rng/sha1/md5 libraries swapped by the respective browser counterparts?
Still have to check on TypeScript…

At this point I'm not 100% certain how to move forward and any feedback would be highly appreciated @broofa @defunctzombie.

@broofa I have worked a bit more on #331 and I believe it is in a shape now that could be reviewed.
So what we could get with the current code is the following (almost as already described above):

CommonJS build for Node.js just like right now.
In addition a true esm build for the browser for use in webpack/rollup which supports treeshaking, this makes use of the "module": "esm-browser/index.js", property in package.json.
As mentioned above, we can currently not support a true esm build for node (with type: module set in package.json) in the same npm package, see the announcement of node modules. Using the .mjs extension it is however theoretically possible to deep-import an esm build in node as well, see this example. An alternative would be to publish a separate uuid-es-node package.
Direct import as an esm in the browser (without bundler) technically works as well, see this example.

Regarding 1.

Since bundlesize doesn't matter in node, should we remove the API deprecation and go back to using?

const uuid = require('uuid');
uuid.v4();

Regarding 2.

The ESM way of importing someting would now be

import {v4} from 'uuid';

Should we rename the imports from v4 to v4uuid? I personally find it rather confusing to have a function called v4() somewhere in application code (where there's no direct context of the import statement) which in fact generates a v4uuid.
Regarding 3.

How do you feel about exporting a separate package? Or maybe we just wait until the experimental flag vanishes and there will hopefully be a way to make an npm package work with both, CommonJS syntax and ESM.?

Regarding 4.

I have no clue if this is a use case at all or if most browser people wouldn't rather go for 2. anyways?!

I personally believe that we definitely want 1. & 2. and could wait a bit to see if anybody is asking for 3. & 4.
Based on your feedback I will make sure the README reflects all changes and will polish up the code.
Would be great to get this out soon! I think this should be released with a new major version number and we should also take this opportunity to finally resolve #173.

Hi Christoph, this is great work!  More comments to come here and in the PR, but given the wholesale rewrite nature of this change, I wanted to make sure we're acknowledge this for what it is: A de-facto changing of the guard.
Moving forward, I expect you'd be doing most of the heavy lifting maintaining this.  I'll still help out as time allows and review/approve PRs as needed, but I'll probably look to you to lead when it comes to dealing with issues related to the new code.
Once this goes out, we should make you an Admin here, and an Owner in NPM.
Cc: @defunctzombie - You okay with this?

My personal feeling is to favor a typescript port rather than mjs - but I also am not invested time wise into this project so if you are ok with this and phasing it over that's fine by me.

@broofa thanks for being so open to the changes I have been suggesting! I do have enough spare time in the foreseeable future to maintain this repository and I'm happy to do so! However, while I'm willing to do the heavy lifting, I will be relying on your feedback in order to find suitable design decisions.
@defunctzombie thanks for your support! I'd be curious in your thoughts on the benefits of a TypeScript. I personally do not have a lot of hands on experience with TypeScript so I would be happy to learn from you. I have created a separate issue (#334) for this where you may want to elaborate a bit more on the benefits of a TypeScript rewrite?

Should we rename the imports from v4 to v4uuid?

If we do anything with the API, I would suggest we move in whatever direction https://github.com/tc39/proposal-uuid is going. So... start by having v4 as the default export, I guess?
There's surprisingly little guidance to be found in other languages, btw.  Python has "uuid1".."uuid5" (which I dislike because it's ambiguous if it's a different version of uuid library or uuid format).  Java and C# only support v4 uuids, so no help there.  Golang is a bit of a clusterfuck.
If I had to make an argument for the current scheme, it's that it's concise and backward-compatible.  It's also not that bad.  If someone wants to be as explicit as "v4uuid", thenimport uuid from 'uuid' allows for uuid.v4(), which isn't terrible.  Or they can import {v4 as uuid} from 'uuid'. ("uuid" instead of "v4uuid" because use cases where there's more than one version of uuid needed are exceedingly rare.)

How do you feel about exporting a separate package?

This isn't ideal, but it may be the least-obnoxious approach for the time being.  What are you thinking?  Have a script that builds and publishes ESM-specific packages?   I'd be okay with that.

How do you feel about exporting a separate package?

This isn't ideal, but it may be the least-obnoxious approach for the time being. What are you thinking? Have a script that builds and publishes ESM-specific packages? I'd be okay with that.

Yes, I was thinking about having a script that automatically publishes an esm-specific package for node (similary to how lodash is doing it). However given that this really still seems to be experimental in node and that it's still unclear, if/how node will support npm packages that contain CommonJS and ESM, we might as well just wait a bit for the fog to vanish before releasing yet another package to npm that might be difficult to get rid of later. Given the experimental nature I doubt that esm in node is commonly used yet (and for the brave who want to try we can even still provide a deep-importable build).
I believe the canonical use cases for node (=CommonJS) and the browser (=ESM for webpack/rollup) are covered with the current state of the code, so maybe let's postpone the advanced ESM stuff a bit?

Will also stick with the current API surface and rather focus on making the documentation even more helpful (e.g. emphasizing v4 in the Quickstart).

After digging deep into the current state of es modules in node I finally found https://github.com/nodejs/modules/blob/master/doc/plan-for-new-modules-implementation.md#phase-4-further-improvements-after-unflagging which states:

Dual CommonJS/ESM packages: Either support packages with both CommonJS and ESM sources that can be used in either environment; or decide to specifically not support dual CommonJS/ESM packages.

Status quo (at time of possible unflagging): "main" points to exactly one file, and all file extensions are mandatory (by default), so there is no possibility of an import specifier pointing to different files in ESM versus CommonJS. Recommended practice for dual packages is to have "main" point to the CommonJS entry point and have users use a deep import, e.g. /module.mjs, to access ESM entry point.

I will therefore, for now, not include any support form ESM in node and only keep the ESM browser-build that bundlers will pick up given the living standard of the module: "" package.json property.

Tracking progress for ESM in Node.js in #342


[CT-2573] [Feature] Support column-level tests on nested data, natively

Is this your first time submitting a feature request?

[X] I have read the expectations for open source contributors
[X] I have searched the existing issues, and I could not find an existing issue for this feature
[X] I am requesting a straightforward extension of existing dbt functionality, rather than a Big Idea better suited to a discussion

Describe the feature
Context
When adding column metadata, for example, to a model YML file, it is already possible to reference a nested column in order to add a description. E.g.
columns:
- name: foo.bar
  description: baz

Presumably, DBT is doing something clever and traversing dot notation. This works today and if configured as such and supported by the adapter, this description will be written back to the database. Notably, this works regardless of whether foo is a struct or an array (using BQ terminology here but the same concepts exist in other DBs). I assume this works regardless of depth too but I've not explicitly verified this. Generic tests will even work if foo is a struct (again, presumably with arbitrary depth).
However, generic tests won't work in the case of a repeated/array field - and this is not surprising - different SQL would be needed to unnest repeated fields. E.g. this will cause an error during the not_null test execution.
  - name: foo.bar  # foo is an array
    tests:
    - not_null

Someone from the community came up with an implementation for a nested not null test a while ago. It makes for some good inspiration but it has fallen short of what it should have been! The nested data logic should not be limited to not_null - it should be a generic wrapper test that calls out to some other generic test. This can be achieved by having the test wrap do nothing more than setting the model variable to be a sub-query. DBT actually does the exact same thing when you provide config/where. This way, the nested data test can be a totally generic wrapper, constructing a single column of data and then calling the relevant test. The only limitation is not all columns can be passed to the downstream test which the downstream test would ideally like to have in the case of store_failures = True but this is a small (and reasonable limitation).
I have an alternative implementation to this test that works in a generic way and we are using it for several downstream generic tests. The only limitation is that the test has to have some logic like the below which explicitly calls the relevant test:
  {% if test == "accepted_values" %}
{{ test_accepted_values(model, "column", kwargs.get("values"), kwargs.get("quote", True))}}
  {% elif test == "not_null" -%}
{{ test_not_null(model, "column") }}
  {% elif test == "relationships" %}
{{ test_relationships(model, "column", kwargs.get("to"), kwargs.get("field")) }}
  {% elif test == "unique" %}
{{ test_unique(model, "column") }}
  {%- endif %}

As far as I can tell, within a jinja-only context, this can't be gotten around for two reasons:

Jinja doesn't allow you to pass/expand/unpack kwargs - e.g. some_test(**kwargs)
My test variable cannot be used to dynamically determine the macro to call - jinja's not quite object-oriented enough for that.

The Feature Request
DBT core should do the SQL wrapper before it calls an existing generic test. It should do something similar to what my jinja is doing, but far easier in python, and basically parse the foo.bar.baz column name, ask the adapter for the column metadata and then traverse it and build the subquery before calling the test. It's pretty straight forward stuff - just a case of adding CROSS JOIN UNNEST(<x>) AS <y> whenever it encounters a repeated field. There's slightly more to it than that but the community post does a great job of explaining the logic and I'm happy to provide our improvement too.
Describe alternatives you've considered
Doing it myself via a custom generic test that is a clever wrapper - but as described in main part of the post, has some unavoidable limitations - as well as being a missed opportunity to benefit the rest of the community.
Who will this benefit?
Everyone that wants to test nested data. Huge impact!
Are you interested in contributing this feature?
Not familiar with dbt-core - hopefully someone can take the logic and just implement it in the right place, having thought through any implications.
Anything else?
No response

Here's our wrapper:
{%- test nested_data_test_wrapper(model, column_name, test, from_model=None) -%}
  {%- set ns = namespace(field_selector_part="", column_list=[], unnest_identifier="") -%}
  {%- set ns.from_sql = "FROM %s" % model -%}
  {%- set hierarchy = column_name.split(".") -%}
  {%- set columns = adapter.get_columns_in_relation(model if from_model == None else from_model) -%}
  {%- set root = columns | selectattr("name", "equalto", hierarchy[0]) | list -%}
  {%- for child in root recursive -%}
    {%- set child_name = "`" ~ child.name ~ "`" -%}
    {%- set ns.column_list = ns.column_list + [child_name] -%}
    {%- set ns.unnest_identifier = ns.column_list | join(".") | string -%}
    {%- if child.mode == "REPEATED" -%}
      {%- set ns.from_sql = ns.from_sql ~ " CROSS JOIN UNNEST (%s) AS %s" % (ns.unnest_identifier, child_name) -%}
      {%- set ns.column_list = [child_name] -%}
    {%- endif -%}
    {%- if child.fields -%}
      {{ loop(child.fields | selectattr("name", "equalto", hierarchy[loop.depth]) | list) }}
    {%- endif -%}
  {%- endfor -%}
  {%- set model = "(SELECT %s AS `column` %s)" % (ns.unnest_identifier, ns.from_sql) -%}
  {%- if test == "accepted_values" -%}
{{ test_accepted_values(model, "column", kwargs.get("values"), kwargs.get("quote", True))}}
  {%- elif test == "not_null" -%}
{{ test_not_null(model, "column") }}
  {%- elif test == "relationships" -%}
{{ test_relationships(model, "column", kwargs.get("to"), kwargs.get("field")) }}
  {%- elif test == "unique" -%}
{{ test_unique(model, "column") }}
  {%- endif -%}
{%- endtest -%}

and example usage:
columns:
- name: foo.bar.baz
  tests:
  - nested_data_test_wrapper:
      config:
        where: "`some_other_column` IS NOT NULL" -- for example, just showing this still works
      test: accepted_values
      values:
      - value1
      - value2
      - value3
  - nested_data_test_wrapper:
    test: unique

@adamcunnington-mlg Sorry for the delay - I'm not uninterested :)
dbt-core doesn't really know anything about nested fields right know. dbt-bigquery knows a little bit (more thanks to https://github.com/dbt-labs/dbt-bigquery/pull/738), but still not very much. As you say, it's worked out nicely that BigQuery lets you:

add descriptions to a nested field by treating it like a normal column named foo.bar
query that nested field as if it were a normal column named foo.bar, if foo is a struct — but not, as you rightly point out, if foo is an array

We have some open issues (related to our work on "model contracts") to better handle when foo is an array, and to teach dbt-core more about nested fields (by upstreaming the logic from dbt-bigquery):

https://github.com/dbt-labs/dbt-bigquery/issues/781
https://github.com/dbt-labs/dbt-core/issues/7759

Your proposal strikes me as totally reasonable:

This can be achieved by having the test wrap do nothing more than setting the model variable to be a sub-query. dbt actually does the exact same thing when you provide config/where. This way, the nested data test can be a totally generic wrapper, constructing a single column of data and then calling the relevant test.

Considerations:

As you mention, only the (un)nested field would appear in the query result, limiting the size but potentially also the usefulness of --store-failures. I agree that feels like a reasonable tradeoff. For the purposes of testing, we treat the repeated record as if it were its own standalone table.
We'd need to call an adapter method/macro within the subquery to do the unnesting. For BigQuery and Trino it's [cross join] unnest; for SparkSQL it's expode; I'm sure there are more. FWIW, I don't think we can support Snowflake's lateral flatten here, since it does not have a real concept of structured (typed) nested fields—only variant types (JSON strings) where anything goes.
If we were to implement this within dbt-core, we'd need to special case . as an indicator of field nesting. That's true on BigQuery/Spark/etc, but it doesn't have that denotation on Postgres/Redshift/Snowflake, and we'd risk doing the wrong thing with someone's "weird.Column.Naming.Convention".

As far as the implementation - it looks like you took inspiration from JT's excellent discourse post several years ago. I think the goal would be to:

Rewrite portions of this in Python (for readability)
Add the logic within our "generic test builder" — same place that get_where_subquery is called — where the goal would be to interpolate the subquery and modify the column_name accordingly

While this is a neat problem to think through, I don't see it as very high priority for us to implement. If a member of the community wants to take a crack at this, I'd be all for it.

@jtcohen6 thanks for the super-considered response as always! It makes complete sense and sounds like the right implementation route.
I agree on this not being priority given there is a workaround and perhaps nested types are still not used as much as they should and thus is impacting the community less than it ought!
Could you comment on how table-level tests might work? Would it be that once dbt-core is aware of nesting, table-level tests could simply have reference array columns within arrays and dbt-core would handle the column-level sub-querying? This feels more complex when a table-level test references multiple columns that are within different arrays / depths. Clearly this is invalid but something would still need to "handle" this.
The one thing i did want to call out though is that foo.bar.baz is convenient for reference columns within a repeated column (array) but you could argue it's unfortunate and ambiguous vs. struct. Some jsonPath implementations would prefer something like foo[*].bar to be explicit that foo is an array, not a struct.

Here's our wrapper:
{%- test nested_data_test_wrapper(model, column_name, test, from_model=None) -%}
  {%- set ns = namespace(field_selector_part="", column_list=[], unnest_identifier="") -%}
  {%- set ns.from_sql = "FROM %s" % model -%}
  {%- set hierarchy = column_name.split(".") -%}
  {%- set columns = adapter.get_columns_in_relation(model if from_model == None else from_model) -%}
  {%- set root = columns | selectattr("name", "equalto", hierarchy[0]) | list -%}
  {%- for child in root recursive -%}
    {%- set child_name = "`" ~ child.name ~ "`" -%}
    {%- set ns.column_list = ns.column_list + [child_name] -%}
    {%- set ns.unnest_identifier = ns.column_list | join(".") | string -%}
    {%- if child.mode == "REPEATED" -%}
      {%- set ns.from_sql = ns.from_sql ~ " CROSS JOIN UNNEST (%s) AS %s" % (ns.unnest_identifier, child_name) -%}
      {%- set ns.column_list = [child_name] -%}
    {%- endif -%}
    {%- if child.fields -%}
      {{ loop(child.fields | selectattr("name", "equalto", hierarchy[loop.depth]) | list) }}
    {%- endif -%}
  {%- endfor -%}
  {%- set model = "(SELECT %s AS `column` %s)" % (ns.unnest_identifier, ns.from_sql) -%}
  {%- if test == "accepted_values" -%}
{{ test_accepted_values(model, "column", kwargs.get("values"), kwargs.get("quote", True))}}
  {%- elif test == "not_null" -%}
{{ test_not_null(model, "column") }}
  {%- elif test == "relationships" -%}
{{ test_relationships(model, "column", kwargs.get("to"), kwargs.get("field")) }}
  {%- elif test == "unique" -%}
{{ test_unique(model, "column") }}
  {%- endif -%}
{%- endtest -%}

and example usage:
columns:
- name: foo.bar.baz
  tests:
  - nested_data_test_wrapper:
      config:
        where: "`some_other_column` IS NOT NULL" -- for example, just showing this still works
      test: accepted_values
      values:
      - value1
      - value2
      - value3
  - nested_data_test_wrapper:
      test: unique

@adamcunnington-mlg thank you very much for this proposition. I'm stealing your code because it's too good ! Great job 👌 🙏

Here's our wrapper:
{%- test nested_data_test_wrapper(model, column_name, test, from_model=None) -%}
  {%- set ns = namespace(field_selector_part="", column_list=[], unnest_identifier="") -%}
  {%- set ns.from_sql = "FROM %s" % model -%}
  {%- set hierarchy = column_name.split(".") -%}
  {%- set columns = adapter.get_columns_in_relation(model if from_model == None else from_model) -%}
  {%- set root = columns | selectattr("name", "equalto", hierarchy[0]) | list -%}
  {%- for child in root recursive -%}
    {%- set child_name = "`" ~ child.name ~ "`" -%}
    {%- set ns.column_list = ns.column_list + [child_name] -%}
    {%- set ns.unnest_identifier = ns.column_list | join(".") | string -%}
    {%- if child.mode == "REPEATED" -%}
      {%- set ns.from_sql = ns.from_sql ~ " CROSS JOIN UNNEST (%s) AS %s" % (ns.unnest_identifier, child_name) -%}
      {%- set ns.column_list = [child_name] -%}
    {%- endif -%}
    {%- if child.fields -%}
      {{ loop(child.fields | selectattr("name", "equalto", hierarchy[loop.depth]) | list) }}
    {%- endif -%}
  {%- endfor -%}
  {%- set model = "(SELECT %s AS `column` %s)" % (ns.unnest_identifier, ns.from_sql) -%}
  {%- if test == "accepted_values" -%}
{{ test_accepted_values(model, "column", kwargs.get("values"), kwargs.get("quote", True))}}
  {%- elif test == "not_null" -%}
{{ test_not_null(model, "column") }}
  {%- elif test == "relationships" -%}
{{ test_relationships(model, "column", kwargs.get("to"), kwargs.get("field")) }}
  {%- elif test == "unique" -%}
{{ test_unique(model, "column") }}
  {%- endif -%}
{%- endtest -%}

and example usage:
columns:
- name: foo.bar.baz
  tests:
  - nested_data_test_wrapper:
      config:
        where: "`some_other_column` IS NOT NULL" -- for example, just showing this still works
      test: accepted_values
      values:
      - value1
      - value2
      - value3
  - nested_data_test_wrapper:
      test: unique

This is amazing - Thank you saved my day! 🙏

P.s. I have updated the test wrapper code above as there are a few bug fixes and additional tests added since

plz this need to be fixed, already spent a day, figuring out what the issue was, who can fix this issue with DBT ? @adamcunnington-mlg

is there any way around this, a quick fix ? @adamcunnington-mlg

@msiddiq1400 what issue are you talking about - you've not specified.

This feature seems to have already been implemented.

@vittorfp really? where - can you share link to updated docs? was this in 1.8/1.9?


Fix a few typo in the doc (airflow instead of airbite)

The documentation for Airflow include reference to Airbite ingestion.
Describe your changes :

I worked on the documentation fix because it refer to the wrong package

Type of change :

[x] Documentation

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x] All new and existing tests passed.

Reviewers

@harshach (I see you are the one that work on that file in the past, if you're not the right one feel free to ignore it)

Thanks @mavimo ❤


Add RELEASE-NOTES.ja.md for 2.0.0

Nice work! I'll +1 after above nitpicks fixed.

Good. Please remove original English text to get this merged.

@borshop merge


Check Page in Mobile mode doesn't looks like the design

Describe the bug
I have checked and check view is not showing how in the desktop
To Reproduce
Go to https://dev--azordev-dasher-user.netlify.app/check
Expected behavior
I have listed the bugs here.

Header need more horizontal (<-  ->) padding. (Check screenshot 1)
Text "Hola!" "Ingresa tu numero de boleta" have very space between. This is because

 and

 have a default line height, you can solve it modifying this property with CSS. Click here to see an example. (Check screenshot 2)
Once you have erase the height to the header text, you will notice that doesn't exists space between the hand image and the text, please add a little of margin. (Check screenshot 3)
The input should be flat, actually it have shadows. (Check screenshot 4)
The form is not center (The input, input label and button is more for the left). (Check screenshot 5)

Screenshots

Header need more horizontal spacing
Actually is:

Should be:

Text "Hola" and "Ingresa tu numero de boleta" have very space between
Actually is:

Should be:

Hand image and text doesn't have space between, please add a little more

The input should be flat, please remove shadows and add border gray or move to up the shadow to create this effect
Actually is:

Should be:

The form doesn't looks centered, I have checked and the form container is centered, but the content is not ocupping the 100% of the width.

Please add width: 100% instead width: 90% to the input and the button (or simply erase width style and use a display: block)

On point number 4 I think is better to be blue/purple, yellow is not good for contrast/accessibility.

@Israel-Laguan Thanks for clarify, I have deleted it task already

On point number 5 I think design is not clear on inputs. @Katsu08 can you check if most instances of Form Inputs on design are flat?

@Israel-Laguan I found these inputs that in mobile / desktop are flat

https://xd.adobe.com/view/c94ee522-180f-487f-b7e0-90754a4b6169-9c1d/screen/3db5ef63-11f0-495d-a172-bfe7b64bb33a

https://xd.adobe.com/view/c94ee522-180f-487f-b7e0-90754a4b6169-9c1d/screen/deea6623-62be-4cad-8b14-6d702eda2607

Great, thanks for confirm, so we have to change the FormInput and adapt the style

Current state:
https://dev--azordev-dasher-user.netlify.app/check

Will close this Issue and any other detail will be treated as a separate bug


Add notes about skydive deployment

Signed-off-by: Mathieu Rohon<EMAIL_ADDRESS>

Confirmed, works well, thanks! @matrohon @edwarnicke


Don't allow duplicate fields in type aliased records

Fixes #1323 by disallowing duplicate fields in type aliases of records. Includes a test.
Evan, I realize this is something you could fix fairly quickly and in your preferred style. But this was an informative exercise for me, and I thought I'd at least give you the option of merging.

@mgold, you trying to fix this in the wrong place in the compiler?
The following is also conceptually incorrect, but accepted by the current compiler version, and not touched at all by your fix:
f : { foo : String , foo : Int } -> Int
f r = r.foo

Certainly a proper fix of the underlying issue here should make sure this function (specifcally its annotation) is rejected as well.

Valid point! This should be handled when types (whether annotations or aliases) are parsed.
I'm going to poke at the parser code and decide if I want to take a second try or close the issue.

@jvoigtlaender I've added your code as a second test. Thanks again.
I've addressed the issue in the parsing code and it's a fairly small change. I can tell that the tests pass (are rejected), but I don't know enough about cabal etc to actually compile them manually and see what the error looks like, so there's that caveat.

I managed to figure out how to run the patched compiler, and while it correctly detects the errors, the message is extremely unhelpful. I'm going to figure out a better way to do this and open a clean issue.


Ability to display loading progress of an image

Fuchsia would like to be able to display the loading progress of an image that's loaded over the network.  Below is a rough proposal of how we could accomplish that.
We'd need to change NetworkImage to load using Socket directly so that it could report the chunks as they came in, and we'd have to plumb those events through ImageStreamCompleter.
Rough API proposal:
class ImageChunkEvent {
  /// The number of bytes that have been loaded thus far.
  final int bytesLoaded;

  /// The number of bytes that are expected to have been
  /// loaded when the image is fully loaded.
  ///
  /// This value will be `null` if the total number of bytes
  /// is unknown.
  final int totalBytes;
}

/// Signature for callbacks reporting that an image has reached an
/// incremental step towards being fully loaded.
///
/// Used by [ImageStream].
///
/// The `event` specifies the progress towards fully loading the image.
typedef ImageChunkListener = void Function(ImageChunkEvent event);

class ImageStream extends Diagnosticable {
  /// ...
  ///
  /// An [ImageChunkListener] can also optionally be added
  /// along with the `listener`. If the stream produces images
  /// that are loaded in chunks, then the specified listener will
  /// be notified for every chunk of data that is loaded (e.g. over
  /// the file system or the network).
  void addListener(
    ImageListener listener, {
    ImageChunkListener chunkListener,
    ImageErrorListener onError,
  });
}

/// Signature for callbacks used to build a widget to display
/// while an image is loading (e.g. from the local file system
/// or the network).
///
/// This will be called to build a new widget for every
/// [ImageChunkEvent] that fires during image loading (see
/// [ImageChunkListener]).
///
/// For single-frame images, once the image loads, the
/// image chunk events will stop firing, the image provider's
/// stream will yield a completed [ImageInfo] object, and this
/// builder will not be consulted anymore.  For these cases,
/// the `currentRawImage` parameter will be `null`.
///
/// For multi-frame images, it's possible that image chunk
/// events will continue to fire after the first image frame has
/// loaded.  In that case, the `currentRawImage` parameter
/// will be set to the widget representing the current
/// fully-loaded image frame that is about to be replaced.
/// This allows callers the ability to overlay a loading progress
/// indicator over the current frame, for instance.
typedef ImageLoadingBuilder = Widget Function(
  BuildContext context,
  ImageChunkEvent imageChunkEvent,
  Widget currentRawImage,
);

class Image {
  const Image({
    ...
    this.imageLoadingBuilder,
  });

  /// A builder that specifies the widget to display to the user
  /// before the image provider's stream has yielded its first
  /// image.
  ///
  /// If provided, this widget will be sized to match the size of
  /// the image.
  final ImageLoadingBuilder imageLoadingBuilder;
}

Proof of concept in https://github.com/flutter/flutter/pull/32465
Right now, it simulates the low-level chunk events because HttpClient doesn't support streamed responses.  To finish wiring it up, we'll have to decide if we (a) add functionality to HttpClient, (b) re-introduce a dependency on package:http (which we had previously worked hard to eliminate), or (c) deal in low-level sockets directly.
With the synthetic chunk events, here's what it looks like wired into the gallery:

This is implemented now in v1.6.7 or higher.


Add method to only get the live expansions

This gives us the opportunity to add sets to the server without making them visible in the deck editor and play server card database.
Just add a new item to the list of dev-only IDs in the private method and the public one should return the list of all other expansions.

That certainly sounds like a better idea. I suppose it would also let us set up formats for Dev for testing if any rule changes occur which could be nice. Would the code still be here in Collection, or do you think there is a more proper place for it?

That certainly sounds like a better idea. I suppose it would also let us set up formats for Dev for testing if any rule changes occur which could be nice. Would the code still be here in Collection, or do you think there is a more proper place for it?

👍 Collection should be a fine place for this


Add a README.md for Windows

This adds an initial readme file for OpenThread on Windows. It gives a basic architecture overview, build instructions and installation instructions for the driver. You can see it on my branch here:
https://github.com/nibanks/openthread/blob/pr/win-readme/examples/drivers/windows/README.md

Current coverage is 74.19% (diff: 100%)

Merging #895 into master will increase coverage by 0.09%

@@             master       #895   diff @@
==========================================
  Files           113        113
  Lines         16731      16731
  Methods        2320       2320
  Messages          0          0
  Branches       2019       2019
==========================================
+ Hits          12398      12414    +16
+ Misses         3654       3642    -12
+ Partials        679        675     -4

Powered by Codecov. Last update f0a5239...1bdb399

Minor nit - in the diagram under the external session it says "Openthread (NCP) Device." It should be OpenThread (capital T.)

Next time I update the docs, I will be sure to fix this.


Add fuwwy twanswashun

Henwo fwends ^w^! I haf made an trwanswashun fur us fuwwies~!
Pwetty pwease murrgey murrgey >w> cuties owo

Hmm Idk, this is English Furry. You also have to do French Furry... /s

Please no...

Dude literally made this account 3 days ago to make this PR. He means serious business b.b

Appwoved. Us fuwwys need to be able to use OwOpenverify

You mean OwOpenvewify

Mewge now mwaintainew dwaddy UwU


Make lib cross-compatible

Added ability to use this lib in browser.

Need to write some browser-specific tests, may be using phantom.js or something like this.

@fn-andrw Please, pull from feature/cross-compatible branch before next changes.


add some conda instructions to CONTRIBUTING.md

where do we find example code to run?

If you're looking for an actual end-to-end real-world example: the examples/ directory.
If you just want to make sure you're not breaking anything, see Step 4 in CONTRIBUTING.md.
If you want to go more in-depth, see the Overview section of the docs.

quick start to viz?

The viz doesn't exist on this branch so I'll let you add information about that to your branch, if you want.


87 collect data do the request to get the data

On va dire que c'est bon.
Je ne sais pas pourquoi je n'arrivais pas à faire le commit et push.
J'ai uniquement copier-coller data et data.dvc.

Previous tweet were not included from remote with this data.dvc file, so I added them and then  performed dvc add data and dvc push.
I also added s3-remote as default dvc remote.


how to get the visualization of the feature diagram

Thanks for your great work！but there are some issues following.
1.How to get a visualization of the feature diagram of Figure 2（a）in your paper？
2.In your code, What is the difference between mmdetection and mmdetection_custom_part  ？
3.How to use your method to train a dataset and segment instances？

Thank you for your interest!
You can normalize the feature and then use a color map (e.g., 'jet') in Matplotlib to visualize it.
To integrate the whole code with the proposed method (suggestion), 'mmdetection_custom_part' requires the installation of mmdetection as a third-party package.
You can use it in the same way as mmdetection.

May I ask which file and line in your code can provide the visualization of the feature map in Figure 2 (a) of your paper

感谢您的关注！
您可以对特征进行归一化，然后在 Matplotlib 中使用颜色贴图（例如“jet”）来可视化它。为了将整个代码与所提出的方法（建议）集成，“mmdetection_custom_part”需要将 mmdetection 作为第三方包安装。您可以采用与 mmdetection 相同的方式使用它。