NSD licence type info does not match with nsd-schema

Currently, the service descriptor exposed by the GK contains a licence_type field that does not match with the licence info showed in the NSD schema.

@srodriguezOPT
You are right, but I thought we had agreed that the licence_type field would be added, containing one of the values public, owned, licenced or to buy? This allows the BSS to build a list of services with different actions possible, while the son-schema, with its licences: [ {'type':'public'}...] only allows either public or private.
Don't you agree? Note: there's an issue with the above implementation I'll add here

Hi @jbonnet,
It's fine for the BSS but its code is currently aligned with the schemas. The son-schema needs to be changed to allow the "to buy", "owned" and "licensed" options. Do you know who is the responsible for that?
When the schemas are changed we can align the GK and BSS code with them.

Hi, @srodriguezOPT
Sorry, I disagree: son-schema defines how services and functions are described, while here we're dealing with run-time/instance and more 'commercial' information. A service that is said to be private in son-schema may have many instances, some to buy, one owned and others licensed. The BSS should follow son-schema in what the NSD/VNFD is concerned, but this is not information that son-schema needs to describe.
Don't you agree?

@jbonnet
ah, ok. I misunderstood you. So, the nsd will contain public/private types and, for the private ones, we will internally consider the owned, licensed and to buy options in the licences.
Anyway, to generate the list of available licences per service, the BSS checks the public/private licence type in the NSD contained in the GK's response (https://github.com/sonata-nfv/son-schema/blob/master/service-descriptor/nsd-schema.yml#L48) but currently the GK responses with no licences field in the NSD section and sends a "licence_type" at root level.

Why the GK is not sending the licences field in the NSD? I think that we don't need to "duplicate" this info with another field in the GK's response at root level.
What do you think?

Hi, @srodriguezOPT
The GK sends whatever is in the NSD. Since the licences field is optional, no currently defined service has it, so there's none.
Please mind that there's no duplication: the owned, etc., is a run-time information, and it shouldn't even be mixed with the NSD. I've tried to keep it simple (but maybe I'm wrong! Is this the list where such information should be?), so together with the service descriptor the GK is sending if it is owned, ... etc.

Hi, @jbonnet
mmm... maybe the licence_type name was confusing for me. Really this field contains the user info related to that service and how to deal with licences:

public: no licence is required
owned: no licence is required because the user is the owner of the service
licenced: licence already acquired by the user
to buy: a licence request is required for that user

doesn't it?
The BSS was building something similar with the NSD's licences field but this is not needed because the GK is currently doing it with the licence_type.
Ok, I'll adapt it.

Cool, @srodriguezOPT ! B-)
I can change the name... what's your suggestion?

what about "user_licence"?

:+1:

Closed by #823

Sorry, @srodriguezOPT , I had closed the issue without first letting you know. Please test from the BSS and let me know if everything is as expected...

Hi @jbonnet ,
don't worry, I was updating the BSS code. The new code is deployed and seems to work fine with the user_licence field, but we need to test the licence BSS<->GK interaction because currently, the unique NSD deployed is public.

Hi @jbonnet,
The GK is setting the user_licence field as public even when the licences field contains a private licence:

Hi, @srodriguezOPT
there's an extra 0 under the licences... is this the way it should be? We also need an example with more than one licence, to test...
Thanks,

Hi @jbonnet,
This is only a BSS's way to represent the first element of the array. The used NSD is this: https://github.com/sonata-nfv/son-examples/blob/master/service-projects/sonata-vtc-private-service-sp/sources/nsd/sonata-demo.yml#L21
To include more licences:
Licences
licences:

type: "private"
url: "https://sp.int3.sonata-nfv.eu/api/v2/licences"
type: "private"
url: "..."
type...

But we talked about to use only one licence, right?

Hi, @srodriguezOPT
Yes, we had agreed that only one licence (the 'first' in the array) would be processed, but the code is prepared to accept many licences, I just wanted to test it. But let's make it work with one licence only first.

@srodriguezOPT
Can you please send me the (link) package with the licence set, for testing?

Hi @jbonnet ,
the private package is currently uploaded to the sp.int3 environment. You can see the schema in https://github.com/sonata-nfv/son-examples/blob/master/service-projects/sonata-vtc-private-service-sp/sources/nsd/sonata-demo.yml

@srodriguezOPT
I know the schema, but I needed the package... :-D

@jbonnet
you can download all packages generated in the son-examples. In this case:
https://jenkins.sonata-nfv.eu/view/DEVELOPMENT/job/son-examples/ws/service-projects/sonata-vtc-private-service-sp.son

Ok, @srodriguezOPT
I've made a few tweaks (PR #842), can you please check again?
I'm not happy with the current design, though: we're mixing 'services' with 'service instances', which isn't right.

Hi @jbonnet
Same result:

Hi, @srodriguezOPT
On which environment are you getting those values from, INT3? 'Cause I can not find NSD with UUID 23224da8...cde2 in the logs...
Thanks

Hi, @jbonnet
Yes, INT3. But currently, this is only an NSD deployed, the public one.
Every time that the int-9-environment-deploy is executed, the uuids change.

Hi, @srodriguezOPT
I think PR #852 fixed the bug. Can you please re-test and let me know?
Thanks,

Hi @jbonnet:
GET https://sp.int3.sonata-nfv.eu/api/v2/services?status=active&limit=10&offset=0
responses with
{
	"error": {
		"code": 500,
		"message": "#<NameError: undefined local variable or method `licensed_element' for #GtkApi:0x0055d0a54b34f0>"
	}
}

Yes... :-1:
Just PR'ing the fix right now, sorry...

@srodriguezOPT , again please?

@jbonnet
now there are no "user_licence" field:

We're so near, @srodriguezOPT, we're so near!
More logging added... another try, please...?

@jbonnet
done. check the logs :)

It's working now, but I'm deleting the NSD when the user has to buy the service: if the user has the NSD, he/she has everything, why buying a licence?
Is this behaviour right for the BSS?

@jbonnet
This option doesn't work. Remember that the BSS uses the info retrieved from the gatekeeper. If the NSD section is deleted, we have no information about the service to instantiate it:

Ok...
But what parts of the NSD the BSS needs? I see name, description, vendor, service id (licence type is the user licencethat the GK injects). What else is needed? Any other field from the NSD for internal processing?

Yes, these ones, but when the NSD is deleted none of these fields are contained in the GET /services response:
       {
		"created_at": "2017-08-30T14:26:21.046+00:00",
		"md5": "8f734a052d8dbb405e0fe0badd314e33",
		"signature": null,
		"status": "active",
		"updated_at": "2017-08-30T14:26:21.046+00:00",
		"username": "sonata-1504103174",
		"uuid": "fd9bec9b-6a90-4ca8-8d68-79181aa7c46b",
		"user_licence": "to buy"
	}

And the BSS has no info about the name, description, version... How can the user know what service is licencing for? and how can the user select for instantiation a service if he doesn't know the name and description?

I'll keep the needed fields within the nsd object, but delete the other fields, is that ok?
So the BSS will be able, without any change, to show what it has been showing (except in the details window).
Agreed?

yes, this should work.
We only lose the NSD details.
After this, we can try the get /licences api

@srodriguezOPT
Done!

Closed by PR #858


Fixed login/register issue #719

Fixed login/register issue #719
Before:

After:

Resolve the conflicts in the mentioned files. Ensure you pull all the latest changes before pushing your feature/bug fixes to the main branch. After resolving the conflicts, please open a new PR for review.
Thank you!

Resolve the conflicts in the mentioned files. Ensure you pull all the latest changes before pushing your feature/bug fixes to the main branch. After resolving the conflicts, please open a new PR for review.
Thank you!

Please see the conflicts highlighted in the image above. Resolve the conflicts in the mentioned files. Ensure you pull all the latest changes before pushing your feature/bug fixes to the main branch. After resolving the conflicts, please open a new PR for review.
Thank you!


modules: mbedtls: use proper memory alignment on 64-bit platforms

This commit instructs mbedtls to use 64-bit alignment in its internal memory allocation routines when targeting 64-bit platforms. By default mbedtls uses 32-bit alignment regardless the platform, what may result in misaligned memory accesses, possibly inducing access time overhead or exceptions

@d3zd3z, please have a look

@d3zd3z, please review

@d3zd3z, ping

@d3zd3z, did you have a chance to have a look?

@d3zd3z, please review

@ceolin, could you please remove stale label and maybe ping @d3zd3z?

Wouldn't using __alignof__ be more appropriate?

@kartben, that's not really obvious alignment of which type to use. To be completely safe, it should be something like __alignof__(unsigned long long), but it's an overkill for 32-bit platforms - 4 byte alignment seems to suffice. So the idea of sizeof(void *) is to explicitly set 4-byte alignment for 32-bit platforms and 8-byte for 64-bit ones. This should be enough for any real board. However, if necessary, alignment can be set to any desired value in custom config

@d3zd3z, please review

@d3zd3z, please review

Thanks!


Android Basics: display-list-cards

URL of codelab
https://developer.android.com/codelabs/basic-android-kotlin-training-display-list-cards?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-2-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-display-list-cards#1
In which task and step of the codelab can this issue be found?
"Adding images to the list items" step 2
https://github.com/google-developer-training/android-basics-kotlin-affirmations-app-solution/raw/main/images.zip
Describe the problem
The zipped folder of example images to be used within the project contained some sort of MacOS hidden folder. It was called "__MACOSX".
Steps to reproduce?

Download the zipped folder
Extract it
in addition to the image files there is also some sort of MacOS file.

Obviously not a big deal, and it may not even be worth fixing. I just wanted to let it be known. People may appreciate the only files in the archive being image files.
I don't mean to be a complainer, and I'm grateful for these guides!
Additional information
Include screenshots if they would be useful in clarifying the problem.

@MattBrooks95
Thank you for reaching out to us.
since this is a not a major blocker, we will leave this as it is for now.

@MattBrooks95
Thank you for reaching out to us.
since this is a not a major blocker, we will leave this as it is for now.


Display hostname on recently opened SSH locations

Under the File | Open Recent menu, SSH locations are only identified by the suffix [SSH].
If two directories with the same path are opened on two different machines, it's impossible to tell which one is which.  It would be helpful if the suffix could be [SSH: host] instead.

VS Code version: 1.41.1
OS: MacOS 10.15.2
I searched for: open recent ssh

If you successfully connected to that workspace, it should already do that. When you open that workspace, what do you see in the lower left corner?

When you open that workspace, what do you see in the lower left corner?

I see SSH: host, exactly what I'd also like to see in the Open Recent menu.

@aeschli do you know what could be going wrong here?

More info:  I just noticed I do actually have one entry in the menu that shows the hostname, so it seems to be working sometimes but not most of the time (for me, anyway).   The entry that does show the hostname is for a workspace (it has the (Workspace) suffix before [SSH: host]).  Of the rest of the entries, one is for a workspace and the rest are for directories, and none of them show a hostname.

If you had tried to connect to those folders without the full label, and it failed to connect, then the label is missing. But you have tried to open those exact folders and it still doesn't show the label?

you have tried to open those exact folders and it still doesn't show the label?

Yes, I closed the editor, then reopened the folder from the Recent menu and there is no change to the label.  Everything opened successfully.

Sorry, I really have no idea. Is this still an issue?

I mean, it's a very minor issue, I'm not exactly bothered by it on a daily basis, but it's still there.

I mean, it's a very minor issue, I'm not exactly bothered by it on a daily basis, but it's still there.

Ok, gonna close this then.


We add all connection to the bootstrap list

It looks like we unconditionally add peer TCP endpoints to the bootstrap list, even though the remote end may not be a TCP listening endpoint and will be unable to accept new connections.

Ah that's not good.

that might explain #85 to some extent?

Now we have a custom Crust handshake and we already have some "filters" to bootstrap list (given the issue description) for some time. Can I mark the issue as closed?

If the filtering means we're now only adding contacts who we'd be able to bootstrap off (assuming their endpoints don't change), then yes, please close this.


Not compatible with laravel ^11.3.1

Realoquent Version
0.4.0
Laravel Version
11.3.1
PHP Version
8.2
Operating System & Version
Windows 10 Build 19045
Database Type & Version
MySQL 5.7.33x64 windows
Description
Step to reproduce

Install clean laravel with composer create-project
Setup .env
add "roave/security-advisories" : "dev-latest", to composer.json
run composer update.
Run composer require --dev nova-horizons/realoquent.

The problem is just dependency version miss match. The nikic/php-parser in my project is locked to 5.0.2 but realoquent require which one ^4.18.0.
Here is screenshot. See for more detail

Close cuz i saw #108.

Just published v0.5.0, give that a try

Just published v0.5.0, give that a try

just see the pull. i known it's will work ;)


[AutoDiff] Prevent crash when using @differentiable without importing _Differentiation

The above referenced issue was causing a compiler crash when writing differentiable protocols and corresponding implementers, without importing the _Differentiation module.
Changes in this CR fix the issue by marking any @differentiable attributes as invalid, if the _Differentiation module has not been imported. This ignores the @differentiable attributes when the protocol witnesses are being verified. Witness verification was previously leading to an error (due to missing @differentiable attribute on the protocol requirement implementer), and the corresponding diagnostic emission code was then leading to a crash, because it was expecting the _Differentiation module to be present.
Fixes #59100

@BradLarson could you invoke the CI bot for me?

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test


Enhance javascript fallback-test

If there is error while evaluating the test then use the fallback source instead of throwing error.

Hi @nguymin4, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla2.dotnetfoundation.org.

TTYL, DNFBOT;

@nguymin4, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, DNFBOT;

Why not make the try-catch part of the evaluation? Or create an expression that doesn't throw? This seems unnecessary.

At the moment I did it like this
				asp-fallback-src="~/js/site.js"
				asp-fallback-test="(function(){try {return angular.module('myApp')} catch(e) {return false}}())">```
But then it's repetitive and not easy to read. But ok I understand your point.

cc @DamianEdwards

Yeah I don't think we want the framework to hide "bad code". Bad code should produce errors.


Can't install

I'm trying to install azure-devops in a Windows 10 x64 VM.
I'm using:

python 3.10.9
pip 22.3.1

but pip install azure-devops always fails, even if I purge the pip cache
PS C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages> pip install azure-devops
Collecting azure-devops
  Downloading azure-devops-6.0.0b4.tar.gz (1.2 MB)
     ---------------------------------------- 1.2/1.2 MB 12.9 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Requirement already satisfied: msrest<0.7.0,>=0.6.0 in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from azure-devops) (0.6.21)
Requirement already satisfied: requests-oauthlib>=0.5.0 in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from msrest<0.7.0,>=0.6.0->azure-devops) (1.3.1)
Requirement already satisfied: requests~=2.16 in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from msrest<0.7.0,>=0.6.0->azure-devops) (2.20.1)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from msrest<0.7.0,>=0.6.0->azure-devops) (2022.12.7)
Requirement already satisfied: isodate>=0.6.0 in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from msrest<0.7.0,>=0.6.0->azure-devops) (0.6.1)
Requirement already satisfied: six in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from isodate>=0.6.0->msrest<0.7.0,>=0.6.0->azure-devops) (1.16.0)
Requirement already satisfied: idna<2.8,>=2.5 in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from requests~=2.16->msrest<0.7.0,>=0.6.0->azure-devops) (2.7)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from requests~=2.16->msrest<0.7.0,>=0.6.0->azure-devops) (3.0.4)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from requests~=2.16->msrest<0.7.0,>=0.6.0->azure-devops) (1.24.3)
Requirement already satisfied: oauthlib>=3.0.0 in c:\users\320121876\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages (from requests-oauthlib>=0.5.0->msrest<0.7.0,>=0.6.0->azure-devops) (3.2.2)
Installing collected packages: azure-devops
  DEPRECATION: azure-devops is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
  Running setup.py install for azure-devops ... error
  error: subprocess-exited-with-error

  × Running setup.py install for azure-devops did not run successfully.
  │ exit code: 1
  ╰─> [1246 lines of output]
      running install
      C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build\lib
      creating build\lib\azure
      copying azure\__init__.py -> build\lib\azure
      creating build\lib\azure\devops
      copying azure\devops\client.py -> build\lib\azure\devops
      copying azure\devops\client_configuration.py -> build\lib\azure\devops
      copying azure\devops\connection.py -> build\lib\azure\devops
      copying azure\devops\credentials.py -> build\lib\azure\devops

<Truncated because of GitHub character limit>

C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\azure\devops\v5_1\licensing\__init__.py to __init__.cpython-310.pyc
      byte-compiling C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\azure\devops\v5_1\location\location_client.py to location_client.cpython-310.pyc
      byte-compiling C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\azure\devops\v5_1\location\models.py to models.cpython-310.pyc
      byte-compiling C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\azure\devops\v5_1\location\__init__.py to __init__.cpython-310.pyc
      byte-compiling C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\azure\devops\v5_1\maven\maven_client.py to maven_client.cpython-310.pyc
      byte-compiling C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\azure\devops\v5_1\maven\models.py to models.cpython-310.pyc
      byte-compiling C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\azure\devops\v5_1\maven\__init__.py to __init__.cpython-310.pyc
      byte-compiling C:\Users\320121876\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\azure\devops\v5_1\member_entitlement_management\member_entitlement_management_client.py to member_entitlement_management_client.cpython-310.pyc
      error: [Errno 2] No such file or directory: 'C:\\Users\\320121876\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\azure\\devops\\v5_1\\member_entitlement_management\\__pycache__\\member_entitlement_management_client.cpython-310.pyc.2159533915632'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> azure-devops

note: This is an issue with the package mentioned above, not pip.

As the error message suggests: pip install azure-devops --use-pep517 should work.

works like a charm, thx.

We need to move away from the legacy setup, glad your issue has been resolved.


Fix typos

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 63.15%. Comparing base (2f846a9) to head (82ed0ce).
Report is 4 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   63.50%   63.15%   -0.35%
==========================================
  Files           5        5
  Lines         474      475       +1
==========================================
- Hits          301      300       -1
- Misses        173      175       +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Thank you @abhro !


There is a bug where this repo uses some weird language instead of javascript

@g-harel
import gc
gc.collect()


Repository.save discussion

Hello guys, I was using artemis and saw that repository is using save() method to insert entities.
I was wondering that save can be either a insertion or an update. So I think would be more appropriate to use:
repository.insert for insertions
repository.update for updates
What do you think?

That's a good point discussion.
Right now, the best NoSQL mapper reference is Spring Data and they're using the save

http://docs.spring.io/spring-data/cassandra/docs/2.0.0.M2/reference/html/#repositories.core-concepts

tl;dr — according to DDD, a repository is basically an abstraction of a collection of aggregates, which you can add aggregates to, look them up (either by id, all or in a filtered way). Thus, in general, it must not (should not) expose store or persistence specific operations.
I'd als raise the question, why it should be the repository client's responsibility to distinguish between the two operations. It imposes a state change on an aggregate (which might actually be its creation) and asks the repository to persist this state change, that's it.
I gave a more detailed answer in this StackOverflow question.

Makes sense @olivergierke, then I think we need to remove "update" from the repository and just keep save for insert and update. Currently we have save and update which makes a little confusing.
What do you think?

A proper nomenclature could be renamed:

select
update
insert
delete

WDYT?

I agree with @olivergierke, the abstraction should only provide save method, not update/insert. The repository should have enough data to find out if the entity exists in the store and update it, or if it doesn't and insert it. If there's no
Therefore the following methods make sense:

select / find
save (instead of update/insert)
delete

Since the API doesn't put any requirements on the entity, it's not clear whether it contains ID or some other metadata to find a matching record in the DB to updated it. In this case, I would define that if the repository can update an entity, a call to save means update. If it can't update the entity, it would mean insert.

One more thought: we're going to ship a significantly renamed set of CrudRepository method names in Spring Data 2.0 as the previous ones have proven to cause problems when it comes to the proxy implementation and the detection which method actually needs to be called on the target repository instance. That has mostly been due to generics resolution and method overloads ending up with the same signature in corner cases. Not sure that this is an issue to you guys already but we now move to a naming scheme where method name + raw parameter type uniquely identify CRUD methods.
I can go into details if you want / need more information about this, but thought I just leave you with the gist of it for now.

Ok, based either Spring Data 2.0 and this suggestion, we can create an ID annotation and refactor the API to something like that:
public interface Repository<T, ID> {

    T save(T entity) throws NullPointerException;

    T save(T entity, Duration ttl);

    Iterable<T> save(Iterable<T> entities) throws NullPointerException;

    Iterable<T> save(Iterable<T> entities, Duration ttl) throws NullPointerException;

    void deleteById(ID id) throws NullPointerException;

    void delete(Iterable<T> entities) throws NullPointerException;

    void delete(T entity) throws NullPointerException;

    Optional<T> findById(ID id) throws NullPointerException;

    Iterable<T> findById(Iterable<ID> ids) throws NullPointerException;

    boolean existsById(ID id) throws NullPointerException;

}

Just a final comment. The reason Spring Data moved away from delete(Iterable) and delete(T) is that it might create ambiguities in bridge methods if T implements Iterable as well. The reason we need to be so picky about this is because we allow users to define a plain interface that only has matching method signatures and doesn't even extent the equivalent to your Repository in the first place.
A second thing: I'd change the save(…) method signatures to <S extends T> S save(S entity) as this allows callers to get the same type returned if they hand in a subclass of T. Imagine a class Contact with subtypes Person and Company. With your signature, I'd get a Contact returned even if I hand in a Person.
Final note. I don't think exposing overloads with a Duration is a good idea on the repository level as it's basically leaky abstraction as a repository client now has to be aware of TTLs. I'd argue, that's something that should be hidden by the repository, not exposed.

Thanks @olivergierke updated


[documentation] generating scripts used to run Jasper Gold

Description
I'm attempting to get Siemens property-checker running.
My first step would be to see what commands are being executed to run Jasper Gold
util/dvsim/dvsim.py /opentitan_org/hw/top_earlgrey/formal/top_earlgrey_fpv_prim_cfgs.hjson --verbose --select-cfgs prim_arbiter_fixed_fpv
runs, and I do get verbosity, but I just get this, not something showing me what arguments were passed to Jasper.
How do I get the information needed so I can get Questa property checker to run?
VERBOSE: [FlowCfg] Deleting temp cfg file:
/opentitan_org/scratch/.master__prim_sum_tree_cfg.hjson
INFO: [StatusPrinter]           [   legend    ]: [Q: queued, D: dispatched, P: passed, F: failed, K: killed, T: total]
VERBOSE: [Scheduler] [00:00:00]: [build]: [dispatch]:
prim_arbiter_fixed_fpv:default
INFO: [StatusPrinter] 00:00:00  [    build    ]: [Q: 0, D: 1, P: 0, F: 0, K: 0, T: 1]   0%  prim_arbiter_fixed_fpv:defau..
INFO: [StatusPrinter] 00:00:01  [    build    ]: [Q: 0, D: 1, P: 0, F: 0, K: 0, T: 1]   0%  prim_arbiter_fixed_fpv:defau..
WARNING: [Deploy] prim_arbiter_fixed_fpv:default: jaspergold is unsupported for job runtime extraction. Using dvsim-maintained job_runtime instead.
VERBOSE: [Launcher] Job returned non-zero exit code
ERROR: [Scheduler] [00:00:06]: [build]: [status] [prim_arbiter_fixed_fpv:default: F]
INFO: [StatusPrinter] 00:00:06  [    build    ]: [Q: 0, D: 0, P: 0, F: 1, K: 0, T: 1] 100%
INFO: [FlowCfg] [results]: [prim_arbiter_fixed_fpv]:
PRIM_ARBITER_FIXED_FPV Formal FPV Results
Thursday May 23 2024 00:41:26 UTC
GitHub Revision: 32a11c2ff3
Branch: master
Tool: JASPERGOLD
Formal FPV Results
No summary information found

It's not all that obvious, but you can find the command by looking at build.log in the scratch directory. The command line is pretty trivial though: the interesting stuff is really in hw/formal/tools/jaspergold/fpv.tcl (which gets loaded with the -batch argument).

Thanks!  A couple of thoughts

Has opentitan looked at IP-XACT?  It's a great way to capture IP metadata (clocks, resets, IO pins, legal combinations of parameter values, etc.), so that you can enable correct-by-construction.  Both Xilinx and Altera use it for all their IP - they just changed the names a little.  That way the scripts can be more IP-generic like "for {each clock}" rather than a case-statement for each IP in opentitan.    I've found it really useful.
it would be really nice if the opentitan environment took the approach of generating the list of files and +define+ needed into a generic .f file.  Right now, since I don't have a Jasper license, I can't really tell what it's doing or what it's reading in.  The env_vars is a really great start in the direction I'm talking about.  This is also where IP-XACT is so handy - you can capture what needs to be done once, in a vendor-agnostic way.  Then you don't have to rerun regressions every time a vendor does a new tool release or a new vendor shows up.

Again, these are things that really reduced my headaches in the past - I've managed multiple ASIC projects at prior companies, and I want to make things easier for you all.  You're doing some really nice work!


MB-1808 Alerts

Description
This branch imports the Alert component from react-uswds and slightly tweaks the styling to comply with our differing font environment.
Reviewer Notes
it does look like somehow all my commits got squashed into my last one? weird. I promise I had at least 3 commits for this one!!
Setup
Make sure docker is running
yarn install
make storybook

Code Review Verification Steps

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change
Abstract spec

Screenshots

Slim alert here is 69px tall (height is 33px, with 8px top and bottom padding).
On USWDS it is 49px tall (height is 33px, with 20px top and 16px bottom padding).

this is true. It is resolved if I can get the class usa-alert--slim applied and I have reached out to the react uswds team to ask how that can be done as this is an imported component from there.

Warnings

:warning:
This PR does not include changes to unit tests, even though it affects app code.

  Generated by :no_entry_sign: dangerJS against 2f8046f86517ceb3f53426c6432f67febbf0ca20


BUG: Webpack3 can't handle "" (empty) resolve.extensions

Example:
$  builder run check
[builder:proc:start] Command: karma start /Users/rye/scm/fmd/builder-victory-component/config/karma/karma.conf.js
WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.resolve.extensions[0] should not be empty.

Notes:

Can't just put resolve.extensions = [".js"] in webpack configs because other dependencies break.
But it looks like we can manually hack [".js"] (removing "") directly in the karma configs.

Research:

https://github.com/webpack/webpack/issues/3043
https://github.com/AngularClass/angular-starter/issues/1036
https://stackoverflow.com/questions/42060243/invalid-configuration-object-webpack-has-been-initialised-using-a-configuration

Was conflicting versions of webpack1 + webpack3. Switched everything to webpack3 and all problems fixed.


Custom Transformation and animation example

Can you add some example for custom transformation and animation?

Hi, @sandeshlasnapure,
Sorry for late answer and thank you for using our library.
Can you give us some description of your meaning of custom animation?
With best regards, Cleveroad team.

I need to add custom animation for each element like alpha and more, so how can I add that .
And one another bug I found in library is when we scroll the page and left it in half way, it will scroll back reverse +1 position.
lets say am on page 1, I am scrolling to 2 and 3, while scrolling from page 3 to 4, lift the touch and page will be reversed to 1, but should go to page 2.
Let me know if you need more info on this. Thanks
1=>2=>3(3 reached at 50% of screen)=>4
1<=3(reverse scroll)


refactor sql authorization to get resource type from schema, resource type to be string

Description
This PR introduces the refactor detailed in proposal #11690, which consists of two main changes.
The first is that ResourceType enum is no longer used by Resource in favor of using a string. ResourceType has been repurposed into a registry of built-in types (and the set of known types can be extended by registering custom types with this registry).
The second is that NamedSchema has been expanded to include a new method, getSchemaResourceType which returns the newly string resource type that should be used to authorize queries against that schema, and this mapping is pushed down into SqlResourceCollectorShuttle, which has been modified to construct the set of Resource to authorize by checking for table schemas which have a non-null type instead of explicitly only looking for the 'druid' and 'view' schema. Currently only NamedDruidSchema and NamedViewSchema implement this method with a non-null return value, so the behavior should be all-around unchanged at this time.
A follow-up PR will add NamedSystemSchema to this list so that the system schema tables can be directly authorized (on top of the per row filtering that occurs based on the other permissions of the user), and NamedLookupSchema could similarly be added in the future to provide authorization against lookup queries (though additional work would need to be done to fully authorize lookups used via expressions or extraction functions).

This PR has:

[x] been self-reviewed.

[x] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[x] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[x] been tested in a test Druid cluster.

Looks good overall, just a few questions in comments left. Also, does this framework allow authorization for only SQL based queries, or also native queries too? Also will it work with JDBC?

Also, does this framework allow authorization for only SQL based queries, or also native queries too? Also will it work with JDBC?

Yeah, this only impacts how the set of Resource for SQL queries are computed (including JDBC), native queries still compute this from the DataSource.
It doesn't actually change anything about the Druid authorization model though, so SQL and JSON queries should still require the same set of permissions for the same query, though SQL has some additional things like system tables and views that don't have a native equivalent (yet at least).
Any additional authorization we add in the future will need to be sure to be hooked into both SQL and native queries however, since they compute their Resource sets to check differently - SqlLifecycle.validateAndAuthorize vs QueryLifecycle.authorize  (SqlLifecycle actually has one or more QueryLifecycle to run the native queries that the SQL planned to, but since they have already been authorized when validating the SQL, they use a pre-authorized path through QueryLifecycle)

thanks for review @zachjsh and @jihoonson!


docs: URL can be clicked

as of now

@albertmink can you open this PR in https://github.com/abapGit/docs.abapgit.org instead, thanks
closing


Not possible to add new MFA providers

Please clarify your position on:
> If your organization uses Azure MFA on a per-consumption model (no licenses), then review the Create a Multifactor Authentication Provider section to create an Azure MFA Authentication provider and associate it with your Azure tenant.
https://docs.microsoft.com/en-us/windows/security/identity-protection/hello-for-business/hello-hybrid-key-new-install#azure-mfa-provider
This was disabled in 01/09/2018.
TIA

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

ID: b4784e8f-6d35-78d8-9160-7b39832a58d8
Version Independent ID: 7f79559a-3a6d-473b-1ec1-66746c461318
Content: Windows Hello for Business Key Trust New Installation - Microsoft 365 Security
Content Source: windows/security/identity-protection/hello-for-business/hello-hybrid-key-new-install.md
Product: w10
Technology: windows
GitHub Login: @mapalko
Microsoft Alias: mapalko

Addressed via https://github.com/MicrosoftDocs/windows-itpro-docs/commit/95a3cfe486f29d7d8439c25150b4435d1e1bc9bc#diff-59741a45c92ac2c1d148832941b0334d24ec841b519c4a0fc37b75fa0b8feb04 Thanks.

Addressed via https://github.com/MicrosoftDocs/windows-itpro-docs/commit/95a3cfe486f29d7d8439c25150b4435d1e1bc9bc#diff-59741a45c92ac2c1d148832941b0334d24ec841b519c4a0fc37b75fa0b8feb04 Thanks.

( commit https://github.com/MicrosoftDocs/windows-itpro-docs/commit/95a3cfe486f29d7d8439c25150b4435d1e1bc9bc )

( commit https://github.com/MicrosoftDocs/windows-itpro-docs/commit/95a3cfe486f29d7d8439c25150b4435d1e1bc9bc )


Use channel references in response to !spellbot channels command

Describe the solution you'd like
We should reply with
This bot is now authorized to respond only in: #spellbot-commands, #admin-spellbot-commands, #looking-for-game

Where the "#chan" parts are actually references like <#123123213>. This will actually make it so we have to do one less network call per channel in some cases.

Actually on second thought I guess it's fine like it is. The network call also ensures that the channel actually exists so it's not so bad.


%3A in url

hi, Kay:
I am using dbwr, it works well. There is a small problem. when I use a button widget in bob file to jump to another link, the ":" will be convert to "%3A", such as followings:
http://hostip:8100/dbwr/view.jsp?display=http%3A//hostip%3A8888/bob/main.bob&macros={%26quot%3BDID%26quot%3B%3A%26quot%3BDID306%26quot%3B}
I think the reason is java url encode/decode problem, how to solve it?
Thanks a lot in advance.

How do you get a ":" into the button's link in the first place?
What is the complete path of the original display, the one that contains the button,
and what is the path of the file that you want to open via the button?

hi, kay:
sorry, I checked the my bob file and found a stupid mistake(I give the wrong bob file name).  please close the issue.
Best wishes
Geyang 2021-09-16
##############on 2021-09-16, @.*** wrote:###############
How do you get a ":" into the button's link in the first place?
What is the complete path of the original display, the one that contains the button,
and what is the path of the file that you want to open via the button?
―
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.


fix(SharedMethods): Unused in FindEvenInactiveComponentsInScenes

Fixes Warning of Unused Variable in FindEvenInactiveComponentsInLoadedScenes
Looks like the intent was to loop over rootObjects array which is
a copy of scene.GetRootGameObjects() but was calling
scene.GetRootGameObjects() again anyway in the foreach loop. It is
unecessary to make a copy though according to a post on
stackexchange.
Console warning:
Assets/VRTK/Source/Scripts/Utilities/VRTK_SharedMethods.cs(637,34): warning CS0219: The variable 'rootObjects' is assigned but its value is never used

There were the following issues with your Pull Request

Commit: c3447b92e789bbb95931c9f3094219ef1d19a4e8
Invalid type. Valid types are feat, fix, docs, style, refactor, perf, test, chore, revert

Guidelines are available at https://github.com/thestonefox/SteamVR_Unity_Toolkit

This message was auto-generated by https://gitcop.com

Already done by #1732.

@bddckr Thanks. Closing.


Lit is in dev mode warning message shows up on localhost

Which package(s) are affected?
Lit Core (lit / lit-html / lit-element / reactive-element)
Description
I am indirectly using lit through some other package and always get the 'Lit is running in dev mode' console warning, which is rather distracting.
It would be fantastic if you would NOT show this message when window.location.hostname is localhost.
Reproduction
See above.
Workaround
I have not found a workaround
Is this a regression?
No or unsure. This never worked, or I haven't tried before.
Affected versions
all
Browser/OS/Node environment
all

Yeah, that can be annoying, but I'm not sure we can say it's always right to not show the warning on localhost.
Here's a workaround. Put this script before loading anything that contains Lit:
<script>
  const c = `Lit is in dev mode. Not recommended for production! See https://lit.dev/msg/dev-mode for more information.`
  window.litIssuedWarnings = new Set();
  litIssuedWarnings.add(c);
</script>

If I were on a team I would want that snippet to issue it's own warning so it's not shipped to production.


memory leak in grpc async server cq write

What version of gRPC and what language are you using?
1.44.0
What operating system (Linux, Windows,...) and version?
linux
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
Linux 5.10.75-79.358.amzn2.x86_64 #1 SMP Thu Nov 4 21:08:30 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
What runtime / compiler are you using (e.g. python version or version of gcc)
gcc version 8.5.0 (GCC)
What did you do?
Please provide either 1) A unit test for reproducing the bug or 2) Specific steps for us to follow to reproduce the bug. If there’s not enough information to debug the problem, gRPC team may close the issue at their discretion. You’re welcome to re-open the issue once you have a reproduction.
I started a async_server and async_client processes which are both based on cq.
async_client is dead loop and sends requests to async_server
some client codes:

some server codes:

When the requests tps of async_client exceeds the ability of async_server's cq or channel, the async_server's unary Finish() that writes response bytes or unary read channel bytes will heap up in memory. Like the picture:

However when I stop the async_client, the memory in async_server still not released forever. As the picture:
This memory leak is only in the linux system, while mac OS is ok.

What did you expect to see?
grpc async server memory can be released
What did you see instead?
grpc async server memory can not released
Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).
See TROUBLESHOOTING.md for how to diagnose problems better.
Anything else we should know about your project / environment?

I have used valgrind to test the async_server, which no memory leak has been found and all response written in async_server are used with shared_prt. So I think that it may be memory leak underneath the grpc core or c++ codes.

There are some channel of grpc trace log:

Especially given that this is not happening in your Mac OS environment using the same code, this may just be the way your platform/malloc implementation manages memory. Often times, freed memory is not immediately returned to the OS. See https://stackoverflow.com/questions/45538993/why-dont-memory-allocators-actively-return-freed-memory-to-the-os. If valgrind is happy, I'm guessing there's no leak.

Especially given that this is not happening in your Mac OS environment using the same code, this may just be the way your platform/malloc implementation manages memory. Often times, freed memory is not immediately returned to the OS. See https://stackoverflow.com/questions/45538993/why-dont-memory-allocators-actively-return-freed-memory-to-the-os. If valgrind is happy, I'm guessing there's no leak.

I think that it is not related to OS origin malloc, because when I replace it with tcmalloc, the result on linux is same.
Futhermore, as I mentioned above, the RES memory of async_server is not released forever, after the async_client was stopped or killed.

It's difficult to determine what exactly is happening here. Parroting @yashykt 's request on that other thread:

Could I ask you to collect some memory profiles (for example, with the google heap profiler tool) to see where the memory increase is coming from?

I used gdb to dump these ~21g heap memory
and use strings -10  to show the content of it:
I found:

@drfloob @yashykt

@drfloob Hi, I have given my process's profile and log partially, and it seems like it leaks memory when watch dog fired, and its channel write buffer is not released correctly. Could you help to analyze it?

update more profile for memory that grpc not released:

If this last profile the result of pprof? If so, I think you'll want to exclude pprof's own use of tcmalloc from the heap results, see https://gperftools.github.io/gperftools/heapprofile.html. And it may be useful to use gv to see which objects are actually taking up the bulk of the space.
Again, on linux, freed memory may not show up in RSS in a timely manner, so being concerned about RSS alone may be a red herring. I don't see anything obvious here that would differ between platforms, but you could try running your process using GRPC_POLL_STRATEGY=poll on Linux to rule that difference out. It will be slower, and I doubt that will fix anything.
We may be able to help further if you could produce a runnable minrepro.

If this last profile the result of pprof? If so, I think you'll want to exclude pprof's own use of tcmalloc from the heap results, see https://gperftools.github.io/gperftools/heapprofile.html. And it may be useful to use gv to see which objects are actually taking up the bulk of the space.
Again, on linux, freed memory may not show up in RSS in a timely manner, so being concerned about RSS alone may be a red herring. I don't see anything obvious here that would differ between platforms, but you could try running your process using GRPC_POLL_STRATEGY=poll on Linux to rule that difference out. It will be slower, and I doubt that will fix anything.
We may be able to help further if you could produce a runnable minrepro.

First of all, I've tried changing GRPC_POLL_STRATEGY but not take effect, and I've tried using tcmalloc instead of ptmalloc which have the same problem.
Whats more, I consider it is ordinary, as you said, that malloc system can retain the real physic memory(rss) immediately(not give back to system), when I call free() in my code, however, is it normal that it does not give back memory to system when it has occupied almost 35% percent physical memory of linux? As I mentioned above, I have freed all my memory in my codes in user space, but the server always retains its physical memory more and more to OOM not released. I think that you may explain what may have happened underneath the grpc codes? Is it a bug or a optimized point for grpc?


Configurable number of data nodes with scale up functionality

Datanodes now have a numeric ID in the task names like journalnodes and namenodes. A new 'ACTIVE' acquisition phase was introduced.
Similar to Myriad, the number of datanodes is configurable at runtime via REST API (only scale up for now). This newly-introduced configuration mutability presents a new challenge not yet accounted for. Now that in-memory configuration may deviate from file configuration, we will need to re-generate that file (mesos-site.xml) to prevent the cluster from reaching an inconsistent state if the scheduler were to restart. Alternatively, the configuration could be tracked in Zookeeper via persistent state. Whichever pattern we choose, we should try and follow it for any other config mutations at runtime.
Scale down functionality is not yet implemented, it is going to require a sizable amount of work to be done right and I would like to engage the community on its design. There are a few approaches we could take to ensure nodes are decommissioned and eventually stopped without risking data corruption or under-replicated blocks. Maybe this would be best as a new issue.
I refactored the JRE to be packaged in the distribution and served via the scheduler Jetty server instead of being downloaded from mesosphere's servers for each task. This made development without an internet connection feasible.
Also, in order to get valuable task states for data nodes, the infinite execution loop was removed from hdfs-mesos-datanode. This will also help to expose issues where a datanode is failing to start over and over, but the task still appears healthy indefinitely.
Fixes #112

A major issue here is that we still need to distribute the binaries on slaves where the datanodes are not running. To do this we need to launch a simple task with few resources, which distributes the binaries there. If not, people running say Spark on HDFS will encounter errors because they cannot fetch files on the slaves where the binaries are not distributed.

Thanks for the great work @LLParse! I listed my concerns that need to be resolved above. Also, the code needs to compile (it is failing the build). It also needs to be tested on Mesos and DCOS to make sure there are no regressions introduced.

A few notes:

Looks great! Thanks for the patch.
Unit tests would be a great addition.
Please include a description of how you tested/validate the change.

I left one response to your comment above. Please let me know when you are ready for me to take a second look, @LLParse, and I will review again ASAP.

@brndnmtthws I added some unit tests to cover the new phase and persistent state storage. In testing, I found a bug where submitting a scale-up request before the scheduler reaches ACTIVE state would cause things to break. I've committed a fix for that too. As for testing, I've run tests locally inside a virtual machine comprised of a 6-slave Mesos cluster (running inside of docker). Scale up requests appear to work fine and, additionally, using the dfsadmin tool to print the HDFS topology/status provided me with conclusive evidence that the added nodes are working correctly. Down the road, we might consider initiating a rebalance after scaleup (but I don't think that belongs in this PR), but to date that remains an exercise for the operator.
@elingg ready for another review. I've added code to update mesos-site.xml and things appear to be working well in the face of scheduler failover.

Thanks @LLParse for your quick responses and excellent work, I'll take a look ASAP. A couple of things in the meantime:

Was this comment addressed? This is very important, because we need to make sure even if we don't have datanodes everywhere we still have the client binaries on all nodes. Otherwise, we launch Spark running on top of HDFS and Spark jobs start failing. A major issue here is that we still need to distribute the binaries on slaves where the datanodes are not running. To do this we need to launch a simple task with few resources, which distributes the binaries there. If not, people running say Spark on HDFS will encounter errors because they cannot fetch files on the slaves where the binaries are not distributed.

We need to be sure to test all changes on Mesos, but also on DCOS before merging.

This is a minor change, but we need to update the README to let users know that they configure mesos-site.xml and hdfs-site.xml at runtime (doesn't need to be at compile time anymore) although that is an option.

@LLParse. Did another review pass and left some more comments. Also, points 1) and 2) I made above still need to be addressed.

Another issue I realized is with this change is that if the binaries are pre-distributed, our configuration does become inconsistent. This change requires more complicated logic than I thought, so maybe an easier alternative is to allow the user to configure the size each datanodes. Scale up would then involve adding more nodes to the cluster.
After we improve our configuration logic and also introduce storage drivers in Mesos, which we are working on (the ability to distribute hadoop binaries using Mesos), then this implementation may be simpler.
Please let me know if you would like to set up a meeting and discuss further.

This PR seem a really good idea why not pushing this up ?

Please note that this repository is now deprecated.  See this issue for a more detailed explanation.


Failed package builds should stick to same release #

A failing concourse build at package stage currently requests a new github-release.
Failing package builds will now use the same release until they go green.

Copied to #240


Added UNDO option after delete action

Whenever folder(s) are deleted in Notes/Starred section of app, an UNDO Snackbar appears
Fixes #27  🔐
Are you a part of GSSOC' 21 ❓

[x] Yes ✔
[ ] No ✖

Describe the changes you've made 🏆
Deletion of folder(s) in the Notes and Starred section of the app is a major task, and users should get an option to reconsider their delete action. So, when folder(s) are deleted in Notes/Starred section of app, an UNDO Snackbar appears for 3 seconds. If user clicks on UNDO, deleted folder(s)/files(s) get restored.
Type of change 🖇
Please delete options that are not relevant.

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

Checklist: 📋

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

Screenshots (if required) 📷

Resolve the merge conflicts @neha-b2001

Yes, just working on it.

@neha-b2001 add the undo option for files as well in FileFragment.java

Added undo option for files in FileFragment.java.


Selected text hard to read on search

select a search result for a search in light+ theme
Re-perform the search
The selected result is hard to read.

I don't see this repro on stable and I don't think I've made changes to focus or styling since. @joaomoreno would you have any idea on what could have caused this regression?

Fixed by https://github.com/microsoft/vscode/pull/173832


update flake.nix to version 0.9.0beta

Describe your PR, what does it fix/add?
update to the newest version
Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
not tested
Is it ready for merging, or does it need work?
if ci passes?

Thanks!


fix: add branch that triggers workflows and fix keyword usage

:tada: This PR is included in version 1.6.13 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


TEST PR 2 – DO NOT REVIEW

Summary
Motivation

Technical

Testing
Test Types

[ ] Unit tests
[ ] Manual tests

Unit Test Coverage

Other Test Details

Screenshots

PR Metrics
✔ Thanks for keeping your pull request small.
✔ Thanks for adding tests.

Lines

Product Code
0

Test Code
0

Subtotal
0

Ignored Code
1

Total
1

Metrics computed by PR Metrics. Add it to your Azure DevOps and GitHub PRs!


[BUG] Graph coloring unstable for directed graphs

Issue
While investigating the failing tests of #118, I noticed a more fundamental issue that breaks both this PRs tests as well as the greedy graph coloring introduced in #94:
For directed graphs, the tests only succeed if the vertices are added in a certain order, i.e. the reversed order they are subsequently iterated over.
Steps to reproduce
In the BasicGraphColoring test in greedy_graph_coloring_test.cpp, reverse the order in which the nodes are added:
  const auto vertex_3{graph.add_vertex(30)};
  const auto vertex_2{graph.add_vertex(20)};
  const auto vertex_1{graph.add_vertex(10)};

This will fail the test.
Root Cause
Both the greedy graph coloring and the Welsh-Powell iterate over the neighbors and increment the color if the neighbor is already colored in the same color:
  // Iterate through each vertex
  for (const auto& [current_vertex_id, _] : vertices) {
    // Iterate through neighboring vertices
    // Find the smallest available color for the current vertex
    int available_color{0};
    for (const auto neighbor_id : graph.get_neighbors(current_vertex_id)) {
      if (coloring.contains(neighbor_id)) {
        const auto neighbor_color{coloring.at(neighbor_id)};
        if (neighbor_color >= available_color) {
          available_color = neighbor_color + 1;
        }
      }
    }

However, for directed graphs, get_neighbors will only return the succeeding vertices.
For the following directed graph, the coloring will be successful if  the nodes are visited in the order C-B-A, and fails otherwise. The order of the iteration depends on the order the vertices are added to the graph, thus the algorithm is unstable.
flowchart LR
    A --> B
    B --> C

Fix Ideas
get_neighbors accesses adjacency_list_ that does not have predecessor vertices for directed graphs. We could think of extending it by this and provide something like get_predecessors for directed graphs. Well-knowing this will have impact on memory consumption of directed graphs, there might be more elegant solutions. Curious what you guys think @bobluppes @ndcroos :thinking:

Hey There. I would like to contribute for it so kindly grant me permission to do so


Evaluation

Do you release the quantitative evaluation code?

hello , would you show me the projects request.txt? what is the tfs version?


Remove fixation of gem vcr

In #6 the gem vcr is fixed to a commit to prevent build failures. This issue is to remove this fixation once the gem works properly again.
We don't want the fixation because the tests should work with the released gems, not a particular commit.

waiting for https://github.com/vcr/vcr/releases release

Asked question about next release https://github.com/vcr/vcr/issues/745

Done in #12


delay not working in 2.0.0

Hey, I've noticed that after updating to 2.0.0 my computed-async with delay stopped working. I've run through the new code and I can see that the delay variable is not used anywhere.
After going back to 1.2.0 everything works fine again.

Oh man. Got so excited by the new simple implementation I didn’t notice that, also not tested for.
Please stay on 1.2 and I’ll post more to this issue ASAP.

Apologies for the delay, I got struck down by a horrible virus (the biological kind).
I have restructured the library in 3.0.0 so it has a cleaner, simpler API and it now supports (and includes test for) the delay functionality. The old API is still there too but is harder to test so prefer the new one.

Great, thank you. I'll update to newest on monday.
Hope you'll get better soon :)


Complexity squash below C

Though complexity is now squashed, not really fond of how it looks now, lets just PR to share thoughts.

Looking good in general!
Indeed, the complexity has become less but the structure has become less clear.
On the other hand, we'll get used to that :)

One more thing:
    def appliance_class_finder(self, appliance, appl):
        """Determine class per appliance."""

Please change to something like:
    def appliance_info_finder(self, appliance, appl):
        """Collect device info: firmware, model and vendor name."""

Apparently rebased shizzled the legacy around and it ended back in it's old position (increasing complexity). Bumped alpha to 6


installing Marzipano

HI, I'm not a programmer but a 3Ddesigner, i found Marzipano really nice but i have a problem installing the exported file.
I'm strugling to understand how to install it in the browser,
I've downloaded the latest version, but what am i supposed to do to Include the marzipano.js file in body section of your HTML code? there is any video explaining this?
I've created my 360 panorama scena and exported but there is no .exe file. only licese, app-files-read me, i guess that is realated not having installed it correctly before.
I would apreciate if someone could explain me how to solve this issue. thanks

There is no executable. The tool produces a full web application (the contents of the app-files folder) which must be uploaded into a web hosting service.


payload does not work with binary data

I'm using one of the examples in test, running one version on a Linux desktop and the other on a Raspberry Pi and the mqtt_publish in the Rpi sends a selected file to the mqtt_subscribe on the Linux desktop. If I select a text file, it works just fine.  I'm going to post a boiled-down version of the code soon.

my repo is:
https://github.com/sunbelt56/mqtt

generally speaking, there is not much difference between string and binary data, but the way of displaying (printing) is different, you can use dump to print them(jpg / png)


claimlist autocompletion issue

I noticed this error when somesone trying to use /claimlist with tab with invalid values
https://gist.github.com/xion87/f6d82f61df82ffbcdab5c3257aee50d6
Using:
griefprevention-1.12.2-<IP_ADDRESS>6
spongeforge-1.12.2-2768-7.1.6-RC3616

This is a sponge bug with the user command element. Report it on SpongeCommon.


Electricity dispatch integration with IO framework

As a user interested in the impact of deeply decarbonized energy systems on electricity
I want the electricity dispatch hooked up to the input-output framework on the supply side so that the dispatch is run for each modeled year and informs both capacity requirements and fuel use.
AC

Electricity dispatch is called seamlessly within the process of solving the supply side in each year
The user has some ability to control this dispatch from the database or config file
The user is prompted with status updates on the dispatch while it is being solved
Auxiliary outputs from the electricity sector dispatch are compiled and available for output. These might include (dispatch shapes, annual renewable curtailment, storage mileage, market prices, transmission flows, maximum peak load, impacts from flexible load, etc.)

Depends on #5.

@BenHaleyEvolvedEnergyResearch and @ryandrewjones agree that all work described in this ticket is actually being worked on other tickets, so it's not necessary. Closing.


Use "ready" text button on smartphone keyboard

All the tester thought they could use the "ready" text button on the smartphone keyboard (iPhone) to send notes. Is it possible that we could set it that way?


MSBuild@1 task is not updated to support VS2022

Build pipeline uses VSBuild@1.

task: MSBuild@1
displayName: 'Build solution ${{ parameters.solution }}'
inputs:
solution: ${{ parameters.solution }}
msbuildVersion: '<IP_ADDRESS>104'
msbuildArchitecture: 'x64'

The build fails and there are multiple warnings with: NETSDK1182: Targeting .NET 6.0 in Visual Studio 2019 is not supported.
The Agent downloaded this task H:\Agent_work_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824\1.179.0
Trace from the task:
"H:\Agent_work_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824\1.179.0\ps_modules\MSBuildHelpers\vswhere.exe" -version [16.0,17.0) -latest -format json
##[warning]Unable to find MSBuild version '<IP_ADDRESS>104' for architecture 'x64'. Falling back to version '16.0'.
Same result without parameter msbuildArchitecture and the default settings for msbuildArchitecture.
Tested with v2.195.0, v2.195.1, v2.196.0.
Agent is installed on premise on Windows Server 2012 R2 and connected with Azure DevOps Server.
Visual Studio 2022 is also installed.

@juergenB234 you use task version 1.179.0 which doesn't support VS2022.
Which version of Azure DevOps Server do you use?

The Version is Azure DevOps Server Update 1.1 2020. There is a Patch 2. Is the updated task integrated in this patch?

@juergenB234 , no, this task update is not integrated to Azure DevOps Server yet

Is there a way to manually update the task?

Yes, I will help you with it. Do you need only VSBuild and MSBuild tasks?

Thanks. Yes, VSBuild and MSBuild.

I just checked that my DevOps server is also using MSBuild v16 2019.
I tried updating the agent manually 2.195.1, but it reverted to 2.181.2 (from february).
I am surprised the agent version is lagging so much behind the latest. Is it expected ?

@juergenB234 , Here are zip achieves with latest versions of the tasks:
MSBuildV1.zip
VSBuildV1.zip
To update these tasks in your organization please follow the instruction:

Unpack achieves to any location.
Install Node.js
Install tfx-cli :
For Linux/OSX: sudo npm install -g tfx-cli
For Windows: npm install -g tfx-cli
Sign in with your account to Azure DevOps.
Create a personal access token or use existing one.
To create new token:
a. Click on “User Settings” in the upper right corner of the page;
b. Select “Personal access tokens”;
c. In the opened window, click on the “+ New Token” button;
d. Enter any name for your access token and choose “Full Access”;
e. Copy and save your token!
Run command from a command line - tfx build tasks upload -u https://<YOUR_ORGANISATION>.visualstudio.com/DefaultCollection -t <YOUR_PERSONAL_ACCESS_TOKEN> --task-path <PATH_TO_UPDATED_TASK>
PATH_TO_UPDATED_TASK - path to folder of unpacked task

@tbolon, yes it is expected that Azure DevOps Server downgrades version of the agent to the version that is set up in the server.
In most cases it should be safe to update version of the agent manually and turn off downgrading by using AZP_AGENT_DOWNGRADE_DISABLED environment variable.
You can follow the guide above to update your tasks also.

You can follow the guide above to update your tasks also.

I note your workaround, but I have instead updated each task individually. Nice timing here are this issue is only a few hours old.
Thank you for your help :)

Thank you. I was able to update the tasks and VS2022 is now detected.

Thank you for reply. Closing this ticket

For future cases where the task in Azure DevOps Server needs to be upgraded, I've created a workflow on GitHub that makes the latest versions of each task available:
https://github.com/jessehouwing/azure-pipelines-tasks-zips
I've also added a script to generate a side-by-side version so you can install those alongside the older version of the task for testing or when backwards compatibility is something you want to keep in mind.

For future cases where the task in Azure DevOps Server needs to be upgraded, I've created a workflow on GitHub that makes the latest versions of each task available:
https://github.com/jessehouwing/azure-pipelines-tasks-zips
I've also added a script to generate a side-by-side version so you can install those alongside the older version of the task for testing or when backwards compatibility is something you want to keep in mind.

Thanks Jesse, we will try your extension.
One thing i noticed when using the classic pipeline editor is that you have not updated the icon or company name, making it more difficult to figure out which task to pick.

The selected one is yours and has MSBuild 17.0 available

@tatyana-kostromskaya Could you provide VSTestV2 update? Or tell us how to compile other tasks ourselves?

Thank you for reply. Closing this ticket

The latest version of Azure DevOps Servies still doesn't seemt to have updated tasks. Why is this issue closed?

This bug hasn't been fixed!
For an enterprise organization it's hardly feasible with a workaround that requires manual fiddling.
Can this bug please be reopened?

Hi. Can we get support here?

@tatyana-kostromskaya Could you provide VSTestV2 update? Or tell us how to compile other tasks ourselves?

See:
https://github.com/jessehouwing/azure-pipelines-tasks-zips
And for background:
https://jessehouwing.net/adding-visual-studio-2022-to-azure-devops-server-2020/

VS2022 support added as of Azure DevOps Server 2022 Update 0.1 RC Release Date: April 11, 2023.


"firebase_messaging_auto_init_enabled" flag does not work

Step 1: Describe your environment

Android device: Samsung S9
Android OS version: 8.0.0
Google Play Services version: 17.4.55
Play Services Base SDK version: 16.1.0
Firebase Core version: 16.0.7
Firebase Messaging version: 17.4.0

Step 2: Describe the problem:
As mentioned in the docs to prevent auto-initialization of FCM tokens we may add
<meta-data android:name="firebase_messaging_auto_init_enabled" android:value="false"/>
<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />

in AndroidManifest.xml. Bt this does not seem to work as token is still being generated automatically when the app starts.
This issue (https://github.com/firebase/quickstart-android/issues/467) already exist but it was closed. It strange because it wasn't solved
Steps to reproduce:

Add this to manifest.xml
Run the App

Observed Results:

Token would still generate without even initializing the firebase messaging again at runtime.

Expected Results:

Token wouldn't generate before the call FirebaseMessaging.getInstance().setAutoInitEnabled(true);

@UserSty thanks for raising this again.  Let me move this issue over to the Android SDK repo, since it's a real product bug and not a quickstart issue.


hydrogen bonding energy

Hi, thanks for the great work!
I read your code and found the formula for calculating hydrogen bonding energy (SelfEnergy.cpp line 194 : float fdist=5.*pow(OPT_HBOND_DIST/dist,12)-6.*pow(OPT_HBOND_DIST/dist,10)) is different from the eq (3) in the FASPR paper. Could you please tell me which one should i use to calculate hydrogen bonding energy? Many thanks...
Xu Gang

font{
    line-height: 1.6;
}
ul,ol{
    padding-left: 20px;
    list-style-position: inside;
}

Hello Gang,
    Thanks for pointing out the problem. The power 6 in the FASPR paper is a typo and it should be 10 as in the source code.Best wishes,Xiaoqiang

    font{
        line-height: 1.6;
    }

Xiaoqiang Huang, PhDResearch InvestigatorYang Zhang LabUniv. of Michigan Medical SchoolEmail: @.***
On 3/18/2021<EMAIL_ADDRESS>wrote：

Hi, thanks for the great work!
I read your code and found the formula for calculating hydrogen bonding energy (SelfEnergy.cpp line 194 : float fdist=5.*pow(OPT_HBOND_DIST/dist,12)-6.*pow(OPT_HBOND_DIST/dist,10)) is different from the eq (3) in the FASPR paper. Could you please tell me which one should i use to calculate hydrogen bonding energy? Many thanks...
Xu Gang
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks!
Another thing is, according to the code, fdist ∝ (5pow(dist, -12)-6pow(dist, -10)). But the eq (3) shows fdist ∝ (5pow(dist, 12)-6pow(dist, 10). Which one is correct...
Best,
Xu Gang

font{
    line-height: 1.6;
}
ul,ol{
    padding-left: 20px;
    list-style-position: inside;
}

    The code is correct. Basically the hbond energy takes the form of a lennard-jones potential but the pows are 12 and 10. You can see the vdw potential at eq. 2, row 3 as a reference; they are similar.
    Thanks,Xiaoqiang

    font{
        line-height: 1.6;
    }

Xiaoqiang Huang, PhDResearch InvestigatorYang Zhang LabUniv. of Michigan Medical SchoolEmail: @.***
On 3/18/2021<EMAIL_ADDRESS>wrote：

Thanks!
Another thing is, according to the code, fdist ∝ (5pow(dist, -12)-6pow(dist, -10)). But the eq (3) shows fdist ∝ (5pow(dist, 12)-6pow(dist, 10). Which one is correct...
Best,
Xu Gang
—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks for the help!


PILOT_ENABLE_ISTIO_TAGS doesn't seem to work

Bug Description
We se PILOT_ENABLE_ISTIO_TAGS=false on istiod, but I still see istio related tags in spans, for example:

So I don't believe this is working as expected?
Version
1.11 + 1.12

Additional Information
No response

Ahh this looks to just be for istio. tags https://github.com/istio/istio/pull/28801
Is there any way to remove the envoy ones?

@Stono we don't have a way to strip the envoy tags at the moment. as i understand it, we'd need to add that functionality into envoy itself: https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/tracing#what-data-each-trace-contains.


Add ping monitor to NMAP

Since NMAP is scanning already, it would be handy to allow it to track certain home components (hue hubs, wink hub, Echo, etc...)
Just simple online & offline results.  (Good candidate for a Badge maybe)
Use case: auto power cycle a smart outlet with your Wink hub if it falls offline. (it happened more than you think).
I hacked my way into this by tracking them in Device tracker - it's just not as nice.
also ruins the use of group.all_devices but I have made sub groups to compensate.

Sort of a self healing Home Assistant network. :)

NMap is already based on ping, this is exactly how the home, not_home states are derived. Your way of using the device tracker is the way to do this.

Yeah .. this was more of a request for a separate designation that would display ONLINE / OFFLINE.
I like the idea of using the device_tracker but it would be great to be able to add a label like Infrastructure to the known_devices.yaml so that they would represent in the UI different and possibly not be part of group.all_devices since they should never be used for presence detection.

The trick with software design is to keep it simple and there should be, preferably, only one way to do anything. Since the functionality can already be achieved with the current functionality, there is no need to add extra paths to the code. Paths in the code have to be tested and maintained, potentially reducing future functionality because they have to take this into account. There can be no shortcuts when it comes to software architecture if we want Home Assistant to be able to quickly iterate and improve in the future as we do now.

@balloob Fair points on the NMAP discussion.
I like to put the ideas on the table even if they get shot down to make sure they are thought of.
Here' a different take on it: How about a hide_if_home variable (opposite of the existing hide_if_away) in known_devices.yaml?
use case: create a devices group called _OFFLINE DEVICES that will spring to the top of the dashboard if one of the members of it enters an away status. (and of course you could still have corrective automations in place to cycle the device)
Just putting it out there for discussion.  I realize it's a niche request.

Sorry to necromance this, but I strongly second CCOSTAN's later suggestion.  A 'hide_if_online' would be a super easy way to let HA do inventory control and health monitoring on the whole network, as opposed to only things that are expected to come and go.  There are lots of things in my house that are always online, so I don't care about them until they drop offline, and then I need to know.  Something like being able to flash a light or have the system tell me out loud "hue hub offline" would have so much utility.

I personally don't think "networking inventory and health monitoring" is in the domain of home automation.  For that , there are a number of solutions out there.   However, if you need to monitor stuff that has no modules, it's very easy to do this via command line sensors.  Like @balloob said, keep it simple (else it gets ugly fairly quickly).

@static418, I was able to put something together that might work for you.  This adds a dedicated card to track network devices that I care about (infrastructure stuff).  When there is a status change, I get a text message via IFTTT.
http://pastebin.com/5RCmhDLu

I just wanted to say thank you for this :) It works great.


i am stuck

@kbacha I've been playing at trying to get at this 100 different ways.  For the life of me, I can't extract the asset mod.  Can we discuss tomorrow.?

ha this was an old master.  Should have pulled earlier :)  Oh well sandbox code anyhow.  Still curious how to navigate this ownership and pointer issue and would love to discuss.


[zh] Change sig-docs-xx-reviewers to -reviews

en PR https://github.com/kubernetes/website/pull/35587/files

Thanks.
/lgtm

There are some other changes, please check with local diff tool.
vimdiff content/en/docs/contribute/participate/_index.md content/zh-cn/docs/contribute/participate/_index.md

/hold

There are some other changes, please check with local diff tool.
vimdiff content/en/docs/contribute/participate/_index.md content/zh-cn/docs/contribute/participate/_index.md

/hold

Looked, only these changes that I made in this file are changed.
there are no other changes with the main file on the en version

Please check through the whole file.
https://github.com/kubernetes/website/blob/main/content/zh-cn/docs/contribute/participate/_index.md?plain=1#L42-L47

Ok, I'm looking at the file according to the script ./scripts/lsync.sh
it says is still in sync after my change

/lgtm
/approve

/unhold


Static Analysis Results

I've ran a static analyzer on the code, and tried to annotate the problematic lines in their corresponding commits, so there is a bit of context where it actually came from.
This issue just collects those comments, and where it wasn't possible just mentions them.
Not-Inline-Commentables
https://github.com/deeplearning4j/libnd4j/blame/master/include/shape.h#L3536
 retOffset = info->offset + sliceIdx;

This unconditionally overwrites the retOffset that was set earlier in that function.

https://github.com/deeplearning4j/libnd4j/blame/master/include/shape.h#L4222
Both branches of this if are identical. Is that meant to be like that?

https://github.com/deeplearning4j/libnd4j/blame/master/include/pairwise_transform.h#L1602
return d2 - d2;

This will always return 0. I guess this is meant to be d2 - d1?

https://github.com/deeplearning4j/libnd4j/blob/master/include/summarystatsreduce.h#L998
Both branches are identical. And I don't think this use of OpenMP is performant.

https://github.com/deeplearning4j/libnd4j/blob/master/include/summarystatsreduce.h#L1169
Both branches are identical.

https://github.com/deeplearning4j/libnd4j/blame/master/include/shape.h#L4201
The body of prod and prodLong are exactly the same. I would guess that prodLong should actually return long?
Inline Comments
https://github.com/deeplearning4j/libnd4j/commit/71a706cacb2046e5687ea2e9f4a1250ef8d81ccf#commitcomment-17141719
https://github.com/deeplearning4j/libnd4j/commit/71a706cacb2046e5687ea2e9f4a1250ef8d81ccf#commitcomment-17141759
https://github.com/deeplearning4j/libnd4j/commit/71a706cacb2046e5687ea2e9f4a1250ef8d81ccf#commitcomment-17141767
https://github.com/deeplearning4j/libnd4j/commit/2b2d264f04e0cd68f079757a74f9246acbbf2252#commitcomment-17141804
https://github.com/deeplearning4j/libnd4j/commit/ef2b2a8ed974fca3baef874660be12e7f663decd#commitcomment-17141917
https://github.com/deeplearning4j/libnd4j/commit/bbde680a057fb7e28f298bccc096b7f357d0e81d#commitcomment-17142017
https://github.com/deeplearning4j/libnd4j/commit/653b6bbde350819cd29a1708089f8d0dcf4dab00#commitcomment-17142065
https://github.com/deeplearning4j/libnd4j/commit/e0e2560b77e9964a7d07b1cc2726303ed01600b4#commitcomment-17142476
https://github.com/deeplearning4j/libnd4j/commit/e0e2560b77e9964a7d07b1cc2726303ed01600b4#commitcomment-17142480
https://github.com/deeplearning4j/libnd4j/commit/b585c5ade1ed9cb8f2d3eaf7d3f7d2d4dda94a89#commitcomment-17142593

Re run this?

Most of this is fixed in https://github.com/deeplearning4j/libnd4j/pull/148 everything else (that seems to be actually important) has its own issue now.


[6.5] Removed reliance on internal polyfill code

Pinning the version is going to be a pain. I think the best course of action is just to copy over the code we need, so we control it. // @nicolas-grekas, @stof, @gmponos, @Nyholm

Copying in any amount of other peoples code like this always feels against the spirit of using composer and library management...

Copying in any amount of other peoples code like this always feels against the spirit of using composer and library management...

Symfony already copied the code...

Copying in any amount of other peoples code like this always feels against the spirit of using composer and library management...

@reedy I don't think you understand the issue here?

Symfony already directly copied the code
Symfony made the class internal so actually we can't use their code a dependency, which is why we had to pin the version!
We have retained the license, and this is in spirit of open source.

All we are doing is copying it again, and removing the issue that Symfony's version is marked as internal so as no BC promise. Moreover, their internal marker says Guzzle is not allowed to call the code as it is in their package.

We have retained the license, and this is in spirit of open source.

Oh come on. I in no way suggested you were violating licenses or the spirit of open source.

Symfony already directly copied the code from somewhere else

Sure. However, it looks like they forked it from a library that seems to have mostly been abandoned; not touched for 4 years, and symfony did this two years after the last commit to it.
When something isn't maintained, I understand it completely. That isn't the only reason to fork though, indeed

What do you suggest we do then? I already asked Symfony if they wanted to maintain a package with that class in, or make this class non-internal. They declined to do either, so either we copy the code, or we leave the polyfill version pinned. You said you didn't want the version pinned, so what else can we do...

@reedy Do you understand why your PR to change the version constraint can never be merged, because the Idn class is internal, and so could be deleted in a 1.17.1 if Symfony wanted to.

The class won't disappear in the Symfony polyfill. If you want to guard against this theoretical possibility, you could add tests to spot it early.
The real-world risk is someone using "replace": "intl". This will happen.
To guard against this risk, you can copy/paste the code as you do. But this also means it'll be yours to maintain. E.g; the day we'll fix https://github.com/symfony/polyfill/issues/159 (if we do), you'll have to sync.
For the record, my recommendant is still the same: 1.unpin 2.throw a LogicException when an outdated intl is found and the polyfill is not found (which means it's been "replace"d.)
@GrahamCampbell looking at the way you word your message, it seems like you feel pretty strong about how things should be. Since I don't maintain this package (and don't want to :) ), I'm going to opt-out from the topic after this very message.
Thanks for caring.

I don't think anyone wants it pinned. Cause if you have another library that uses it (or even need a newer version yourself), and a newer release comes out... Conflicts ahoy!
Maybe as part of your justification for doing this, include links to the conversation with "upstream", or tasks here? Rather than just doing something without any apparent justification as is currently occuring. People shouldn't have to dig through loads of commits to find out why you're doing it, especially as it seems odd you add a new library in one patch release, then plan to remove it in the next. Never mind you're pointing out it's internal, but you've released code in guzzle that uses that internal code anyway. Then are looking to remove it. It was good enough for the last release, but not now? You have to question whether that release needed making etc.
I didn't say "you should absolutely not do this", but from this task, can a random third party (ie me) work out why you're doing it? Probably not.
Sure, it may be crappy to duplicate and modify someone elses code (and taking on a maintenance burden and an amount of technical debt for it yourself), but if that's the only real way forward as is, then so be it.

We already discussed this issue in great detail on Slack for a number of days. This PR was just a follow up to that discussion. It is still not decided which is the final approach. That is, the other option we have is to disable idn by default and require the extension to enable it.

We already discussed this issue in great detail on Slack for a number of days.

Great, a walled garden.
This doesn't help someone that doesn't have access or isn't privy to those discussions (irrelevant of whether I can get access or not, or if I even want it).
Nor does the task say this is just a POC or similar.

Actually, the Slack is a public channel. Anyone can read it. There should be a link somewhere in the docs.

Actually, the Slack is a public channel. Anyone can read it. There should be a link somewhere in the docs.

Fair enough.
But how would I know to look there? Does your issue say "Per discussion in slack"? No.
Depending on your POV, Slack is still a walled garden as it's not FOSS software etc. While I'm not so strongly opinioned on things like this, other people are.

Depending on what you mean by docs, it's certainly not mentioned in this repo
https://github.com/guzzle/guzzle/search?q=slack&unscoped_q=slack

Sadly, I haven't followed the discussions either, so I don't know the details, but I do know this intl issue is with us for quite some time now. I'd focus on finding an acceptable solution for the short term, even if it's not perfect.
Maintaining an internal copy of some code does not feel like a huge issue to me, given it doesn't change frequently. The polyfill is an internal detail in this case IMHO, not something that we want users to control.
That being said, we can't protect everyone, but we can fail early in an environment without the appropriate dependencies. I doubt that a class will disappear in a minor version, so even if it's marked as internal. And we can always duplicate, if something happens.
Ultimately, I can work with both solutions, both have pros and cons.

Actually, the Slack is a public channel. Anyone can read it. There should be a link somewhere in the docs.

That's fair, it's kind of an unofficial channel on the PHP HTTP Slack, but I think it helped a lot in the past, so definitely should be added to the repo: #2674

My PoV is the class exists chech. Live with that for v6.
Get moving with version 7 and on v7

Remove the polifil and every bad patch we did...
convert the idn option to default false for every consumer and let consumers manually enable idn convertion... if they have a deprecation it will be their issue to handle...

@Nyholm and @sagikazarmark I would be willing to accept this if we accept this https://github.com/guzzle/guzzle/pull/2675
Since this code will only live from 6.5.5 to 7.0.0 which seems like a short term.. and we can always revert back to the polyfill if needed.

Slack is still a walled garden as it's not FOSS software etc

Same as GitHub...

Slack is still a walled garden as it's not FOSS software etc

Same as GitHub...

Indeed. While you need an account to contribute on github, you need an account to even read anything on slack... So it's a different kind of walled garden.

Fair enough. :)

If this gets merged let's update the version constant here.. to be safe...

Closed by #2678


esc2text output error

Hi,
I'm trying to capture the output send by an Epson tm-t20ii printer and converting that to text.
I am able to capture data with nc (or as i prefer a perl script).
When i try to print that file using "cat tmp.bin > /dev/usb/lp0" i get a correct looking receipt.

  WARNING: Unknown command ? WARNING: Unknown command  WARNING: Unknown command ? WARNING: Unknown command  WARNING: Unknown command ?   WARNING: Unknown command
WARNING: Unknown command ?
WARNING: Unknown command
WARNING: Unknown command @
WARNING: Unknown command ?
WARNING: Unknown command ?
WARNING: Unknown command
WARNING: Unknown command ?
WARNING: Unknown command ?
WARNING: Unknown command
WARNING: Unknown command ?
WARNING: Unknown command ?

WARNING: Unknown command
WARNING: Unknown command
WARNING: Unknown command ?
WARNING: Unknown command
WARNING: Unknown command
WARNING: Unknown command ?

WARNING: Unknown command
WARNING: Unknown command ?

WARNING: Unknown command
WARNING: Unknown command
WARNING: Unknown command ?
WARNING: Unknown command
WARNING: Unknown command
WARNING: Unknown command ?

L?w0p018? @?<@? @???????B@???@??@???L?0|?????? @???@?8p@??????D???B??????|??????p  ?,A????PcP??@@0???0B??  ??@@@<0@?  ??@@@?0 ?? B????@@@?? ? B@@@?@ ? $@@@P@ @  $?? 0B@@p@ @ ???B@@?_???~??|?????? ????? @@@?@?@???????<?@????  D"A??   @????  @B??q???????? @BD???? ?@@BD??????@?D???0 @A(????00 ~(????0???@???0@@???   @ p?  @??A?? @ ? 0?@???????>???? ???? ?????????@?@?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????>???????? @C?0@ @?? @B????@ @@? @B??B@ @@? @D?B@ @@BD? ?@ @@BD? P@ @?~(?  ?@ B(?   @ @?B   @ @B?@  @ @B?@   @ @B???   @ @B?A 8 0?@@?????σ?>??/???> ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????@???>??????????????8 ? A?  A@@ ?@@ ???    @?@@ @@??  @?    @?@@  @@@?  @?   @?@@  @@@ ?   @?@@  @@@ ?  @?@@  @@@ ??????A@  @@@ ???@  ~@  @@@" ?   B@  @@@?  !@??   A@?  @@?  !@??@   @?@@ @@?@@  ????@   @?@@?   ?  A???p@  @@@????>??????????p????@??|??>??????????}??????  ??A ?? ? ? @?@????   @@? ??@????    @@!? ???    @@"? ??@? ?@
?  @@$? P@E ? ?@  @@(?  ?@E <??  @@6?  @I ?? ??  @@!? ? @I  ?  @@ ?? ? H??  @@ @?A? P? ? @@? @?A? P? ?@? ?  ??? P?? ?@??8??~????? @????????????@?????>???|???????????????   A??@? ?  ??  @? @@?  ???  @?!  @@ ? @?!  @@!B0 @? @  @@!B0@? @   @@"??? @@  @@?0?@@? @?  @@?0 @? @  @@  ?
@? @  @@ !?
@ @? @ @@? !?@ @? ? ? ` !??p@@?? ?????~??~???????????????
L,90p018???????????????????????????????????????????????????????????????????????????????????????????????????8|??>@ ??? ? ? @@@ ?  @@?????? ?  @@
?? ?  @@?@ ?  @@ @ ?  @ ?? ?  @ @ ?  @ ?@??  @ ?@ ? @@????@ ??0A@?? ???9????>p??>??????|  ??@0@@@?G?  ? H@ @!P@?
??! 0 ! @ ? @  ?  @@@? @ ?? ??9??|????????????????????????????????????????????????????????????????????????????????????????????????????|????>@  ???  @  ???? @0@?  G??  ?H@?    !P@? ?? ! ? 0 ! ? @ ? ? @   ?@?@ ? @0 ??? 0???8??>????????|? ??? ? @  ?|  0@?  @  @   @@??  @0  @@  @@  @@@???  ???????8??|?|??????|?   ?? ?   ?   ??> @@@A?  G?@@?? ?H@@A@  !P@@A@? ! @A??! @A? A   @?@? ? @!?@?? 0??p?|???

The file in question, comes from a working windows POS, setup using correct epson drivers.
When i compare the file to the receipt-with-logo.bin demo file, they seem to be totally different.
Making me think i need to convert this more before running it through esc2text ?
Any idea's ?
tmp.bin.zip

This is quite an interesting test file, thanks for posting it. It definitely shows some buggy behaviour.
I'll work a bit with this file and get back to you. It looks like it's mostly raster data, which we can't extract yet, but I can certainly make some improvements based on what you've posted here.

So perhaps the printer driver is rastering it.
Is this known behavior for Epson printers ?
I will try using generic text driver in an hour and update.
Op 22 mei 2017 om 09:06 heeft Michael Billington <notifications<EMAIL_ADDRESS>het volgende geschreven:
This is quite an interesting test file, thanks for posting it. It definitely shows some buggy behaviour.
I'll work a bit with this file and get back to you. It looks like it's mostly raster data, which we can't extract yet, but I can certainly make some improvements based on what you've posted here.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/receipt-print-hq/escpos-tools/issues/20#issuecomment-303016499, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AEU69W-_RiM2zCZvvKb8TTX8nmnM6kx7ks5r8TQBgaJpZM4NhnBe.

I seem to pretty much the same output get using generic text driver

Working on this in a branch called 'bugfix/unrecognised-commands', should be more like this-
[DEBUG] SelectPeripheralDeviceCmd
[DEBUG] UnknownDataCmd
[DEBUG] UnknownDataCmd
[DEBUG] UnknownDataCmd
[DEBUG] UnknownCommandOneArg
[DEBUG] UnknownCommandOneArg
[DEBUG] SelectPaperEndSensorsCmd
[DEBUG] SelectDefaultLineSpacingCmd
[DEBUG] SelectInternationalCharacterSetCmd
[DEBUG] SelectCodeTableCmd
[DEBUG] EnableSmoothingCmd
[DEBUG] CommandTwoArgs
[DEBUG] PrintAndFeedCmd (LineBreak)

[DEBUG] PrintAndFeedCmd (LineBreak)

[DEBUG] SetAbsolutePrintPosCmd
[DEBUG] GraphicsLargeDataCmd
[DEBUG] GraphicsDataCmd
[DEBUG] PrintAndFeedCmd (LineBreak)

[DEBUG] PrintAndFeedCmd (LineBreak)

[DEBUG] PrintAndFeedCmd (LineBreak)

[DEBUG] SetAbsolutePrintPosCmd
[DEBUG] GraphicsLargeDataCmd
[DEBUG] GraphicsDataCmd
[DEBUG] PrintAndFeedCmd (LineBreak)

[DEBUG] FeedAndCutCmd

The receipt is certainly wrapped up as raster images, so you can't retrieve the content with this parser yet. Unpacking the content in thoseGraphicsLargeDataCmd calls (responsible for all the gibberish before) will happen as part of issue #6.

Do you know of any POS printer driver that doesn't do this ? I can always try use another driver, and see if the Epson wings it

I directly generate the receipts using mike42/escpos-php library, then use raw printing to deliver the data.
I think the issue you were having is solved in the latest master branch. Can you please try running your test file through the tools again to verify? You might just need to activate the imagick extension if you don't have it yet.
Expect text file to be created with some whitespace only, and a list of commands on the terminal:
php escimages tmp.bin > tmp.txt

Expect two images of parts of the receipt to be written in pbm format, with a copy of each in png format as well-
php esc2text.php tmp.bin -v

Expect HTML file to be written-
php esc2html.php tmp.bin > tmp.html

This output should appear visually similar to the actual receipt:

I've tried it now and have gotten the images.
Now is there any way we can go about extracting the text from those images without running each file through tesseract ?

Yes, to extract text from images, you will need an OCR tool, since there's no extra data we can recover from the ESC/POS. If you need perfect output, you will need to train tesseract for the font being used.
It sounds like you are familiar with it, but for future readers, I'll point out that the PBM files can be scooped up in alphabetical order and OCR'ed directly, no need to waste CPU cycles with PNG compression or TIFF conversion.
# tesseract
sudo apt-get install tesseract-ocr imagemagick
rm *.pbm
php escimages.php input_files/tmp.bin
convert -append *.pbm pbm:- | tesseract - -
cat out.txt

Also, am I able to include this sample file in the repository, under the MIT license, for regression testing purposes?
Note: Tried pdfsandwich as a second option, was slow and the output was poor quality.
# pdfsandwich
sudo apt-get install pdfsandwich wkhtmltopdf
php esc2html.php input_files/tmp.bin > tmp.html
wkhtmltopdf --page-size A7 tmp.html tmp.pdf
pdfsandwich tmp.pdf
pdftotext -layout tmp_ocr.pdf
cat tmp_ocr.txt

Closing this off, I believe this bug has now been resolved.

I'm sorry for the late reply, i was busy on another task.
Yes you can include the sample file, no problem.
This issue is resolved yes, thanks 👍 💯

test.zip
Sorry to jump in here, but I am having the same problem with my test file.
When I do php escpos2text.php test.bin, I get the following output:
...

When I use: php escimages test.bin > test.txt, I get:
Could not open input file: escimages

The receipt is generated with the Seiko CAPD347 Driver, so the ESC/POS format should be correct ... but it looks different to the example provided.

I used: php esc2html.php ascii.bin > output.html
and i get a blank page with any text.
so what's the problem?
this is my file:
ascii.txt


Update GitHub workflow to look at nubots.yaml for workflow changes (not horus)

Copy paste error? :stuck_out_tongue:

Wow, how long has this lurked here... :sweat_smile: