[5.4] Customer mail headers not setting

Laravel Version: 5.4.24
PHP Version: 7.0.13

Description:
When setting headers for emails using the withSwiftMessage the headers are not appearing in the email.
Steps To Reproduce:

Create a mailable
Add a custom header inside the withSwiftMessage
Send email

If I toString the headers in the callback I can see the headers appearing. But when I open the email in Outlook and Gmail and look at the headers they don't appear.

Add a custom header inside the withSwiftMessage

Please share a code snippet to test.

$this->subject($subject)
    ->withSwiftMessage(function (Swift_Message $message) use ($email, $unsubscribe) {
        $message->getHeaders()->addTextHeader('List-Unsubscribe', '<mailto:' . $email . '>, <' . $unsubscribe . '>');
    })

Can't replicate, this works fine:
    public function build()
    {
        return $this->withSwiftMessage(function ($message) {

            $message->getHeaders()->addTextHeader('List-Unsubscribe'<EMAIL_ADDRESS><Test>');

        })->view('welcome');
    }

ping @sambenne

closing for lack of activity and being unable to replicate.

I know this issue is closed for a year now but I actually have the same problem.
I'm trying to add a custom header with the ID of the email before sending it so I can retrieve it after my transactional emailing service provider notify me about the delivery.
The email is sent by this function located in my User model:
Mail::to($this)->locale($this->default_language)->send(new MatchNotification($this, $match));
My MatchNotification contains the following build function:
public function build() {
  $from = env('MAIL_FROM_ADDRESS');

   // Save email and create webhook
   $sentEmail = SentEmail::create([
      'type' => 'match_notification',
      'match_id' => $this->match->id,
      'recipient_id' => $this->user->id
   ]);

   return $this->markdown('emails.match.notification')->from($from, $this->from_name)->subject($this->subject)->withSwiftMessage(function($message) {
      $message->getHeaders()->addTextHeader('X-Mailin-SentEmailID', $sentEmail->id);
   });
}

However when I check out the email headers, there is no X-Mailin-SentEmailID. I also tried with simple values like 'test' but still no luck.
There is another post on StackOverflow about the same issue which has no answer here.
Could this be related to this line in the documentation?

"$message variable is not available in markdown messages."

I also have the same problem, I'm using "symfony/mailgun-mailer": "^6.0" and no matter what I try, I can't get the headers in the email... Has anyone also not been able to do this and resolved it?
    public function build()     {         $this->from($from_address[1], $from_name[1])                     ->replyTo($reply_to_address[1], $reply_to_name[1])                     ->subject($type->subject)                     ->withSwiftMessage(function ($message) {                         $message->getHeaders()->addTextHeader('X-Mailgun-Variables', '{"my_message_id": 123}');                     })                     ->markdown($this->markdown_file, $this->params); }

I know this issue is closed for a years now but I actually faced the same problem with Laravel 9.4, I tried Laravel official document for adding custom headers but it didn't work for me, so i came up with alternate solution.
public $details;

public function __construct($details)
{
    $this->details = $details;
}

public function build()
{
    return $this->view('emails.inboxMail');
}

//custom headers
public function headers()
{
    $headers=[];
    $data = new \stdClass();
    $data->messageId = '';
    $data->references = [];

    if (isset($this->details['headers']) and !empty($this->details['headers'])) {    // catch $details from constructor
        foreach ($headers as $key => $value) {
            $headers[$key] = $value;
        }
    }
    $data->text = $headers ;
    return $data;
}


Add auto deploy using chrome-webstore-upload-cli package

This is an alternative to #25 that uses chrome-webstore-upload-cli to auto-deploy the extension to the chrome webstore for tagged releases.
To get this working we need to set some environment variables for Travis CI. You can do this by adding encrypted credentials to the .travis.yml file, or through the Travis CI website. I documented it a bit here https://github.com/paulmolluzzo/test-deploy-chrome
H/T to @DrewML for the deployment package and helping me get this figured out.

Are we OK for getting this into master? Were the Google keys added to Travis CI?

@sindresorhus both fixed.

Alright. Let's try this out.

Auto-deploy is working fine :)


The time is totally wrong

My specs run in under 2 seconds and the timer shows:

I'm using Jasmine + Cucumber

To replicate, checkout and run https://github.com/xolvio/Letterpress/

+1 I am also experiencing this bug.


Installation fails in Visual Studio 2022

Installation fails in Visual Studio 2022 Version 17.0.5.
Screenshot and install log attached.

[dd_VSIXInstaller_20220203104828_3600.log]
(https://github.com/madskristensen/HtmlForJavascript/files/7990790/dd_VSIXInstaller_20220203104828_3600.log)

We're having the same issue on VS 17.1
 6-4-2022 14:32:37 - Install Error : Microsoft.VisualStudio.ExtensionManager.MissingReferencesException: This extension cannot be installed because the following references are missing: -Microsoft.VisualStudio.Component.CoreEditor (Microsoft.VisualStudio.Component.CoreEditor)    at Microsoft.VisualStudio.ExtensionManager.EngineUtilities.EnsureNoMissingReferences(IEnumerable1 missingRefs)
at Microsoft.VisualStudio.ExtensionManager.PackageInstaller.PrepareEngineInstall(IDependencyGraph dGraph, IDependencyComparisonSeed seed, Component vsixComponent, Boolean isProductComponent, Int32& totalInstallationSteps)
at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.PerformSetupEngineInstall(InstallableExtensionImpl extension, Boolean installPerMachine, Boolean isPackComponent, IDictionary2 extensionsInstalledSoFar, List1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, IProgress1 progress, InstallFlags installFlags, AsyncOperation asyncOp, Version targetedVsVersion, IInstalledExtension& newExtension)    at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.InstallInternal(InstallableExtensionImpl extension, InstallFlags installFlags, IDictionary2 extensionsInstalledSoFar, List1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, AsyncOperation asyncOp, IProgress1 progress, Version targetedVsVersion)
at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.BeginInstall(IInstallableExtension installableExtension, InstallFlags installFlags, AsyncOperation asyncOp, Version targetedVsVersion)
at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.InstallWorker(IInstallableExtension extension, InstallFlags installFlags, AsyncOperation asyncOp)
`

I have the same problem when i install the extension is there any new infromation for this? I would really benefit from this extension :(

I downloaded the file an just manually changed the manifest.
We have deployed it internally through our private Extension feed
I've attached it here
HTML for JavaScript v<IP_ADDRESS>2.vsix.zip

I downloaded the file an just manually changed the manifest. We have deployed it internally through our private Extension feed
I've attached it here HTML for JavaScript v<IP_ADDRESS>2.vsix.zip
(Just unzip and install to VS2022 :))

or if you want it from an official source you could use the CI build from the front place of this repo, which currently is version 1.0.11 as opposed to the failing Marketplace version 1.0.10.
Difference between the CI build and @Sc0tTyXL's version is that instead of replacing the ...CoreEditor": "[16.0,17.0)" dependency with ...CoreEditor": "[16.0,18.0)" it changes it to ...CoreEditor": "16.0" in various places.
This install on my configuration, admittedly, not funktionality-testet but I'll report back later.

I'm receiving this error when attempting to install in VS2022 v17.6.3.  Should I run a repair on VS possibly?

To everyone complaining about issues, the fix is to either manually edit the manifest by "unzipping" the vsix OR install the fixed version uploaded by @Sc0tTyXL
Can confirm working as of 17.09.2024


docs: Automatic Code Documentation

Description
This PR makes use of the Sphinx extension autosummary to create code documentation straight out of the docstrings!
Look & Feel

Testing Steps
python3 -m venv venv
source venv/bin/activate
make install
make update-docs

Potential Improvements

Deactivate automatic generation on every push as it's very time consuming. By toggling off autosummary_generate, for example via a env variable, we can switch off the docs generation.

Edit templates.

Closes #52.

This makes the building docs take longer, let's pay attention to that. Is there an easy way to skip this auto-documentation, with a flag or so?

I've added the flag gen_code_docs which controls if we want to generate the docs or not.

What is the difference between this and this, information-wise?

 I've simplified the docs to show the description of the objects (classes, functions, attributes and exceptions) in the same page, without any list.
Other than that, we need to decided on the following topics:

Format of the documentation for a (sub)module (order of elements, lists, ...).
Modules to avoid, for example, the CLI it's pretty much covered in this page and autodoc fails to capture Click commands.
To have or not have a main page for the code documentation.

Among them, I think some of these could be included in this PR and others might be included later.

Good improvements!
I think it feels weird right now that only "flexmeasures" is listed at first. Maybe it should get its own page, that would be nicer, and maybe it's the quickest way.
I would include the short docstrings for the main modules in this PR. Should not be more than ten minutes of work. I'll gladly do it :)

Thanks!

I think it feels weird right now that only "flexmeasures" is listed at first. Maybe it should get its own page, that would be nicer, and maybe it's the quickest way.

For this, we can list the main modules when calling autocode.

I would include the short docstrings for the main modules in this PR. Should not be more than ten minutes of work. I'll gladly do it :)

Okay, thanks. Feel free to do it in this branch or create a new PR to this branch, instead :smile:

Thanks for trying it out :smile:

I feel the autosummary step is happening regardless of my usage of gen_code_docs.
At least, I have a length step of "reading sources..."

The gen_code_docs actually disables the generation of the file structure, all the RST files containing the documentation for the modules (autosummary). This flag doesn't deactivate the generation of the HTML from the code (i.e autodoc).
I ran some tests to check the time of the building process in my local setup:

Benchmark (commenting the autosummary code in index.rst and _autosummary folder deleted):

real	0m12.756s
user	0m14.160s
sys	0m5.360s
real	0m12.878s
user	0m14.142s
sys	0m5.422s

Full code docs generation: make update-docs gen_code_docs=True

real	0m45.264s
user	0m46.346s
sys	0m5.641s
real	0m45.483s
user	0m46.203s
sys	0m5.513s

Disable autosummary  make update-docs gen_code_docs=False

real	0m45.039s
user	0m46.026s
sys	0m5.650s
real	0m46.185s
user	0m47.098s
sys	0m5.693s
Digging up a little bit, I found that the problem is that autodoc doesn't provide the intermediate RST files, but only the ouputs such as HTML or Latex. For that reason, 159 files need to be "compiled" internally to RST and then to the output format, which slows down the process.
Apparently, this is an open Issue in the autodoc repo, but it looks It hasn't received much attention :cry:. Also, there is people showing interest in this in a SO post, but the workarounds feel very hacky to me atm.
For this reason, I would generate the documentation only when doing changes to main (merge or push) and I don't think it will be a problem in terms of build times given that it runs in 46s in my setup (please, find ReadTheDocs build limits here)

Also, look at this view which should only list the AssetAPI.get function (endpoint), but seems to list functions of FlaskView.

With the new change, I can't see this page being generated.
In that page, I see the following:

With the new change, I can't see this page being generated.

I'll have to try again. Which new change do you mean?
Happy to see that on RTD we won't have a problem.

Good idea!
Running make update-docs or make update-docs-pdf set gen_code_docs to False, by default.
Otherwise, If they ENV variable GEN_CODE_DOCS is not found, the default would be True.

I think the Makefile should delete the documentation/_autosummary folder, as its existence leads to sphinx working on its content, no matter what gen_code_docs says.

I've added two commits to:

delete the autosummary folder if gen_code_docs = False
list the main FM modules under CODE DOCUMENTATION

It did? In only see failed attempts here: https://readthedocs.org/projects/flexmeasures/builds/

Oh, I meant locally (with the secret key set)

I don't recommend setting those in the Makefile, as ReadTheDocs is not using that :) Also then these stick in the devs environment and have to be unset.
See how I am adding them in .readthedocs.yaml. However, I also failed with SECRET_KEY. Will go to bed now...

I've tested just to set the variables SQLALCHEMY_DB_URI and SECRET_KEY in documentation/conf.py and the build succeded. You can see the results here.
Please, let me know if there's any other request from your end. Otherwise, we can merge :smile:

As I mentioned earlier, setting these in conf.py might influence the developer environment.
Aren't you overwriting your FM configuration with dummy values, making it impossible to test real functionality?

Thanks, it works indeed!
The docs building (HTML & PDF) both went from ~40 seconds to ~140 seconds in RTD. Seems we can afford it. The overall build time has other overhead, as well.

Great!! Merging into main :fireworks:

Congrats!
We did forget the changelog entry that this deserves. Let's just leave the "Still Needs Changelog Entry" label so we catch it during our release process.

I added the entry, but the internet in the train did not work at that moment, apparently. I'll add it to main now.


should ignore garbage in tal-dir

Files like backups found in the tal-dir should be ignored. This should be easy enough to implement in load_tals(). Two approaches are common:

whitelist: only read *.tal and ignore everything else
blacklist: read everything but files matching e.g. /(~|.dpkg-[a-z]+)$/ and /^./

Whitelist *.tal please.

Whitelisting is what is actually documented in routinator(1), but I cannot find that code in load_tals().

Oops. I shall fix the code.


Enable BC6H compression for all HDR formats

Previously only RGBH formatted images were compressed to BC6H, this change
enables BC6H compression also for the RH, RGH, and RGBE9995 formats, allowing
1:2, 1:4, and 1:4 size reduction for them, respectively.
This is in particular important for HDRI images which usually come in RGBE9995
format.

Code seems good, would like to have @reduz's opinion about the change.

Thanks!


Adds explanation of windows workaround for svgmin

Workaround avoids errors in generating pngs from svgs under windows after running svgmin.

:+1: thank you!


Check Helm dependencies

Create workflow to bump Helm chart dependencies and create PR with changes

Done. On https://github.com/devops-ia/helm-opencti/commit/8cda656a4398234a2d243bf2e2b96d82436c1fb6


Fixed 2 connection issues in the protocol adapter.

If the invocationcounter is out of sync the DlmsConnectionManager tries to close connections that are not opened yet, this is caused by: the change in DlmsConnectionFactory where the DlmsConnectionManager is now used with try-with-resources in the method
createAndHandleConnectionWithSecurityLevel that closes the connections.
Second issue was that when the invocationcounter was not in sync the value was not saved to the database. This is caused by a change in the DeviceRequestMessageProcessor-> processMessageTasks(). in the finally block is fresh device retrieved from the database. Before this changes the updated device with updated invocationCounter value was used, and therefor saved
      final DlmsDevice device = this.domainHelperService.findDlmsDevice(messageMetadata);
      this.doConnectionPostProcessing(device, connectionManager, messageMetadata);
    }

retest this please


AttributeError: 'dict' object has no attribute 'dtype'

System Info
- `Accelerate` version: 0.16.0
- Platform: Linux-5.19.0-35-generic-x86_64-with-glibc2.35
- Python version: 3.9.16
- Numpy version: 1.24.2
- PyTorch version (GPU?): 1.13.1+cu117 (True)
- `Accelerate` default config:
	Not found

Information

[ ] The official example scripts
[X] My own modified scripts

Tasks

[ ] One of the scripts in the examples/ folder of Accelerate or an officially supported no_trainer script in the examples folder of the transformers repo (such as run_no_trainer_glue.py)
[X] My own task or dataset (give details below)

Reproduction

Create a model extends nn.Module
implements get_extra_state_dict, and set_extra_state_dict
let get_extra_state_dict return something other than a tensor. mine returned an ordinary python dict
try saving your model by call accelerator.get_state_dict(self.model)
you will see

File "/home/bernard/diffusions/my_diffusion/my_trainer.py", line 155, in save
'model': self.accelerator.get_state_dict(self.model),
File "/home/bernard/miniconda3/envs/ddpm/lib/python3.9/site-packages/accelerate/accelerator.py", line 2274, in get_state_dict
if state_dict[k].dtype == torch.float16:
AttributeError: 'dict' object has no attribute 'dtype'

Expected behavior
File "/home/bernard/diffusions/my_diffusion/my_trainer.py", line 155, in save
'model': self.accelerator.get_state_dict(self.model),
File "/home/bernard/miniconda3/envs/ddpm/lib/python3.9/site-packages/accelerate/accelerator.py", line 2274, in get_state_dict
if state_dict[k].dtype == torch.float16:
AttributeError: 'dict' object has no attribute 'dtype'

cc @muellerzr

@shaohm could you clarify a few notes for me please?

Does calling model.state_dict() call your get_extra_state_dict to get the model?
Are you expecting Accelerator.get_state_dict() to return said extra thing

Changing the dtype part is something doable, I just want to know if you're expecting more behavior than we provide

@muellerzr  It seems model.get_extra_state_dict is designed to be called when we call model.state_dict() in PyTorch, and correspondingly model.set_extra_state_dict will be called by 'model.load_state_dict()'.
I use this mechanism to store my extra configs instructing the forward process,  which are not suitable to be treated as parameters or buffers. These configs can be of any type I think, as long as they can be picked and unpicked correctly.

@shaohm can you try reinstalling accelerate with pip install git+https://github.com/huggingface/accelerate and see if #1288 fixed it? Thanks!


Split CVE-IDs in safety-db

safety-db sometimes has multiple CVE-IDs.

https://github.com/pyupio/safety-db/blob/9cb84541a691044512dab8422dc2a36383e0fff3/data/insecure_full.json#L14132
https://github.com/pyupio/safety-db/blob/9cb84541a691044512dab8422dc2a36383e0fff3/data/insecure_full.json#L15651

They should be stored separately.

Hi @rahul2393, could you fix it?

Sure!!

So for every such case where CVE is like this
        {
            "advisory": "Zulip 2.1.2 includes a corrected fix for CVE-2019-19775 (the original fix was affected by an unfixed security bug in Python's urllib, CVE-2015-2104). It also adds authentication for redis and memcached even in configurations where these are running on localhost, for add hardening against attacks from malicious processes running on the Zulip server.",
            "cve": "CVE-2019-19775,CVE-2015-2104",
            "id": "pyup.io-38114",
            "specs": [
                "<2.1.2"
            ],
            "v": "<2.1.2"
        },

We need to update is like this?
        {
            "advisory": "Zulip 2.1.2 includes a corrected fix for CVE-2019-19775 (the original fix was affected by an unfixed security bug in Python's urllib, CVE-2015-2104). It also adds authentication for redis and memcached even in configurations where these are running on localhost, for add hardening against attacks from malicious processes running on the Zulip server.",
            "cve": "CVE-2019-19775",
            "id": "pyup.io-38114",
            "specs": [
                "<2.1.2"
            ],
            "v": "<2.1.2"
        },
       {
            "advisory": "Zulip 2.1.2 includes a corrected fix for CVE-2019-19775 (the original fix was affected by an unfixed security bug in Python's urllib, CVE-2015-2104). It also adds authentication for redis and memcached even in configurations where these are running on localhost, for add hardening against attacks from malicious processes running on the Zulip server.",
            "cve": "CVE-2015-2104",
            "id": "pyup.io-38114",
            "specs": [
                "<2.1.2"
            ],
            "v": "<2.1.2"
        },

Exactly


Fix issue #63

I signed it!

Closing as per discussion in linked #63.

I believe this should be closed?


Course About robotics?

Won't robotics be a good addition to the list?

Do you have any courses you recommend?
Also, I looked through the curriculum's from a few different schools and, at least at the undergrad level, they don't usually offer courses in robotics for the CS degree.
@ericdouglas what criteria do you use to decide if a topic should be added to the curriculum?

Well, I didn't make this suggestion as someone who knows about robotics. In fact, I didn't take a single robotic course yet. Although, I think some people would love to have an insight of such domain. I myself want someone to recommend me a course.

@benbrandt I used these references and I also looked several curriculums.
@YasserKa I don't believe this topic is a good one to have in our main curriculum because it'll require student invest some money to buy the hardware in order to create something, and it could be a little expensive and/or hard to find.

I think embedded programming is slowly coming to become a very major part of Software Engineering. Learning embedded programming and robotics would be a major addition to the curriculum.
There are a couple of solutions to students needing to buy hardware.  One of them is to use a hardware simulator, or an environment for embedded programming.
Unfortunately, these usually aren't as good as actual, physical hardware.
Embedded programming/Robotics is also one of the fields where it's probably better to just get down and dirty with a manual rather than following a course, so it might not be suited for our curriculum.


Revive OpenMP-offload support

Currently there are many empty OMPGPU regions in develop which we need to fill in. When merging the optimised branch, we prioritised OpenACC offloading, and now that that is relatively mature, we should work to bring OpenMP-offload back in line.
The following files need completing:

[ ] external/trans_end.F90
[ ] external/setup_trans.F90
[ ] external/gpnorm_trans_gpu.F90
[ ] internal/trgtol_mod.F90
[ ] internal/trmtol_pack_unpack.F90
[ ] internal/trmtol_mod.F90
[ ] internal/trltom_pack_unpack.F90
[ ] internal/fsc_mod.F90
[ ] internal/trltog_mod.F90
[ ] internal/prfi1b_mod.F90
[ ] internal/updspb_mod.F90
[ ] internal/ledir_mod.F90
[ ] internal/spnsde_mod.F90
[ ] internal/trltom_mod.F90
[ ] internal/tpm_hicfft.F90
[ ] internal/vdtuv_mod.F90
[ ] internal/leinv_mod.F90
[ ] internal/prepsnm_mod.F90
[ ] internal/ltinv_mod.F90
[ ] internal/ftinv_mod.F90
[ ] internal/updsp_mod.F90
[ ] internal/ltdir_mod.F90
[ ] internal/ftdir_mod.F90
[ ] internal/uvtvd_mod.F90

In addition, the memory pool allocator needs to work with the OpenMP runtime as well as OpenACC:

[ ] algor/growing_allocator_mod.F90
[ ] algor/buffered_allocator_mod.F90

Collaborative development branch created: https://github.com/samhatfield/ectrans/tree/sh_pm/refresh_openmp.


Alias and Synopsis for updated autocomplete functionality

I see you are updating the auto-complete function and noticed that the "withAlias" and "withSynopsis" properties haven't been implemented for options. An example is in the updated Git auto-complete provider:
https://github.com/shockone/black-screen/blob/master/src/plugins/autocompletion_providers/Git.ts
Am curious - do you plan to implement these in the updated auto-complete functionality?
I am writing some auto-complete providers myself and will hold off it you plan to add these properties.

You can create withDesciption by copying this line and replacing corresponding parts. https://github.com/shockone/black-screen/blob/master/src/plugins/autocompletion_providers/Suggestions.ts#L163-L163
As for withAlias, it can be easily composed using the choice parser. If you need more details I can write an example, but that should be simple.

Thanks @shockone.


SLASH IMAGINE disappeared from the map

SLASH IMAGINE disappeared from the map.

Huh, thanks! I'll switch to a different one, any preference?

The Next Leg
ImagineAPI

https://www.thenextleg.io

Good idea @thalesfsp - looks like https://slashimagine.pro/app is back though. I'm going to wait for Midjourney to release their API before putting more into this.


Mention kernel name in Console tab name

Currently, if you open multiple consoles, they are named 'Console-1', 'Console-2', etc.
IMO, it would be useful if the tab names could include the kernel name, for the use case where you open multiple consoles with different kernels (eg different python versions). Similar to the kernel name as it is listed in the Commands ("New ... Console").

Thanks for the suggestion 👍

Thanks for the suggestion! This has been implemented via https://github.com/jupyter/jupyterlab/pull/240

I just reopened the issue in case one of you felt like reviewing it. If you're satisfied with its being complete, feel free to close it.

Looks good, thanks a lot!

Thanks @afshin for the addition and @jorisvandenbossche for the helpful suggestion. 😎


Pass down the original input, making it available as second parameter in "custom" function

Suggestion:
Pass the "full input being tested" down the tree (at call time, for some/all of the methods available, like "parse/parseAsync"), either as a 3rd parameter to the _parse method, or as a new property ("_full_input") to the info object. It would allow us to access the full input in the "custom" function as second parameter, which i think it may provide a good solution for customization and DX.
const schema = object({
   email: string([email()]),
   password: string([minLength(6, 'Minimum 6 characters')]),
   repeatPassword: string([
      minLength(6),
      custom((input, { password }) => input === password, `Passwords don't match`)] // <= can write it now like this
   )
})

Pros
Good DX, granularity, order execution, solves some of the issues with form libraries and its resolvers (works with react-hook-forms and valibotResolver). Not being able to compare fields easily or having a bad DX may be a deal-breaker for the devs using this library, and this suggestion kinda fixes most of the common use cases.
Cons
The second parameter on the "custom" function most likelly can't be well typed (it will have "any" type), this is because the function will run before checking/comparing the hole "original input" with the hole schema, so you may access properties without checking its existence beforehand. Also i dont think there is a way to infer/pass down the hole Output-object type at schema definition, you may have to give it manually beforehand 😕
Branch with this implementation
passing down full input
Additional feature to complement this suggestion (didn't test/implemented this one)
We could add also a "deferedCustom" function, which returns an action with mode = 'defered', making it so it doesn't execute at main "_parse runtime", but instead if the pipe encounters a "deferedCustom" action (action.mode="defered") will skip it until the main "_parse" execution finishes without issues, then it ll run again but only with the "deferedCustom" actions (this will garantee that the input matches the schema structure). An easy implementation/mental-model could be:
export function parse(schema, input, info?) {

   //Add _full_input so it can be available inside the "custom" and "deferedCustom" functions as second parameter
   const infoWithOriginalInput = { ...info, _full_input: input }

   // Execute _parse skipping "deferedCustom" actions (action.mode = 'defered')
   const result = schema._parse(input, infoWithOriginalInput);
   if (result.issues) {
      throw new ValiError(result.issues);
   }

   // If everything is okey, execute now the "deferedCustom" actions only (action.mode = 'defered')
   const deferedResult = schema._parse(input, { ...infoWithOriginalInput, _defered_only: true })
   if (deferedResult.issues) {
      throw new ValiError(deferedResult.issues);
   }

   // output should be the same for both, result and deferedResult
   return result.output;
}

And inside the "executePipe" function
// executePipe.ts
 /*...*/
  // Execute any action of pipe
  for (const action of pipe) {
   // skip "deferedCustom" actions on normal _parse execution
   if (!parseInfo._defered_only && action.mode === 'defered') continue
   // skip all actions instead of "deferedCustom" ones on defered _parse execution
   if (parseInfo._defered_only && action.mode !== 'defered') continue
   /*...*/
}

PD: I'm new to this library, so i only took a look at the things i use/need; so im not sure if these implementations may introduce bugs in the rest parts of the library; but i think everything should work fine. ( all test also passed in my branch where i implemented these changes)

I want to focus on the problem you are trying to solve with this issue in the next days. So I appreciate any input. I had the same thought. However, type safety is the big problem. Strictly speaking, we would have to type the input as unknown, which makes it pretty useless. I don't think we should go down the any route as a type-safe library.
The most promising approach so far is PR #223, which marks the required keys as dependencies, so that the corresponding pipe function is only executed if the type of those dependencies is guaranteed. However, I have to investigate this first before I can make a decision.

I see, after thinking about it i do agree with you. My current aproach would be hard to mantain and error prone if there are many changes over time in big/complex forms/inputs. Took a look at #223, its clever, however im not really a fan of it, it will look ugly once you start adding more and more fields/validations, and custom validations will be separated from the fields you want to apply those (in some cases you want that, but in most of the cases you don't).
How about splitting the parsing into two parts?, the first one being only the type validation (same ones as in typescript), and the second one the methods itself (like minLength, email, custom)? This way it will ensure strong typing in the first run, and then it will proceed to validate all the fields.
export function parse(schema, input, info?) {

   // Adding "_full_input" (so its available in nested custom methods)
   // Adding "_parsing_mode" (to indicate the parsing mode)
   info._full_input = input
   info._parse_mode = 'types'

   // Execute _parse only checking the types (skipping ALL PIPES)
   const typesResult = schema._parse(input, info);
   if (typesResult.issues) {
      throw new ValiError(typesResult.issues);
   }

   // If everything is good, parse now the pipes (skipping the types)
   info._parse_mode = 'pipes'
   const pipesResult = schema._parse(input, info)
   if (pipesResult.issues) {
      throw new ValiError(pipesResult.issues);
   }

   return pipesResult.output;
}

//declaration
const schema = object({
   email: string([email()]),
   password: string([minLength(6, 'Minimum 6 characters')]),
   repeatPassword: string([
      minLength(6),
      custom((input, { password }) => input === password, `Passwords don't match`)
   ])
})

// Execution, under the hood it will be like this:
//first run
object({
   email: string(),
   password: string(),
   repeatPassword: string()
})
// second run only if the typings are correct
object({
   email: [email()],
   password: [minLength(6, 'Minimum 6 characters')],
   repeatPassword: [
      minLength(6),
      custom((input, { password }) => input === password, `Passwords don't match`)
   ])
})

Your idea is great. I will consider it. However, there are two problems. Since each schema is independent, it can be combined with any other schema. For example, object({ email... }). could be used in another object({ ... }) schema. This means that the second argument in the custom function must be bound to the parent schema and not to the total schema (the input), otherwise we cannot guarantee type safety. I hope you can follow me. If not, I can explain with examples.
Another disadvantage is that if any type is wrong, all pipelines will not be executed. The only way to avoid this is to know which keys must be valid to execute a pipeline function.
It would probably be an advantage to enable both in the final implementation. Your idea and #223. I will probably start researching and testing it this weekend.

I see. How about adding two new things: smartCustom and  smartObject ("smartSchemas").
smartObject's will create new boundaries (by adding _newBoundary prop to the schema), solving the first problem. (Its better this way, by adding new schemas declarations, instead of adding a new functions which will wrap an object schema (smart(object({...})), so people wont use that stuff in places they don't have to).
// smartObject.ts
export const smartObject = (objectSchema) => ({...objectSchema, _newBoundary : true})

// object.ts
// _parse method
for (const [key, schema] of cachedEntries) {
    const value = (input as Record<string, unknown>)[key];
    const result = schema._parse(value, _newBoundary ? { ...info, _full_input: input } : info );

// usage
import { smartObject } from 'valibot'
const registerSchema = smartObject({email ... })

Then the smartCustom can only be used inside smartObject's, where its argument will be the closest smartObject value; and optionally giving an array of the required well-typed fields (using #223 idea), instead of all of them (by default).
smartCustom((full_input_value) => ...., 'error message') // all closest smartObject type must be valid
smartCustom(['pass1', 'pass2'], (full_input_value) => ...., 'error message') // only pass1 and pass2 types must be valid

So the new mental model would be something like this?:

parse types
parse correct field pipes (even if there are typing issues in the schema), skipping smartCustom's (depending of its requirements)

But still, regarding the second disadvantage, I don't think is that big of a deal, most of the time your typings are going to be correct, and i cant think of any case in which you would care about executing pipes if there is some kind of typing error in the schema.
Im not sure if there would be more edge cases, the ones i can think of are methods like omit, partial, pick with smartObjects, and the only "decent" solution is to disallow the usage of those? (objects with nested smartObjects will still be able to use them).

As soon as I have a little more time in the next few days, I'll get back to you.

Sorry that it took so long to get back to you. I just added a partialCheck action to the library. Do you think this solves the issue? Here is an example:
import * as v from 'valibot';

const RegisterSchema = v.pipe(
  v.object({
    email: v.pipe(
      v.string(),
      v.nonEmpty('Please enter your email.'),
      v.email('The email address is badly formatted.'),
    ),
    password1: v.pipe(
      v.string(),
      v.nonEmpty('Please enter your password.'),
      v.minLength(8, 'Your password must have 8 characters or more.'),
    ),
    password2: v.string(),
  }),
  v.forward(
    v.partialCheck(
      [['password1'], ['password2']],
      (input) => input.password1 === input.password2,
      'The two passwords do not match.',
    ),
    ['password2'],
  ),
);

Hi, forgot about it haha, its been a while. Yes i think so, thanks a lot !!!, I hope to have the opportunity to use it again soon.

Hi, i want to reiterate on this topic. Is there a way that forward is run also if first schema fails? See the example here (email AND password2 is invalid). I would expect that I get error for email and password2.
https://valibot.dev/playground/?code=JYWwDg9gTgLgBAKjgQwM5wG5wGZQiOAcg2QBtgAjCGQgbgCh6BjCAO1XgGUmALAUxDI4AXkwA6MMDB8AFPTjiIFAFZ8mMGQG95CuAOTBSALnGTpc3boxiOUYKwDmMgJQAaHZeus2AUXAwATxlCAAVSPjQ+PVYYPig4AIgAV3j9QzFCNw8rMTTSYIAVfj1BQxQAE3KoPlR0YHQKZHLSAJxoQRhY8oysy17dMDRUAHdocoBGE2szWWyFa1t7J37PMW9WPzBA4LCI1Ci+GLiE5PjB2tGobsz3S3mxEHsAGUOHGB4ZAA5XIgBNU7g5xGYzgICSHDgPGQGCinzgvGQUGQ6ji6GgoOgfB6t10K0BQ0u5QATFMbDA7I4XDiAL79azYaDDRHlCw5QawYBkADC-CYAGtWZYANpCwhAwnjQgAXR+ovFYyJ0plczgMnsYCSMGcIgAfHB1ZqJASxuMRMJRAaYEaLgqcZZCEUojBRvibVd0OUIHBvPAOrwMna4Hi5carorlQoss5GCx2PBqqgkqR4KIFshsHwQoj9jJuPxBD9tAo8iZCMpkKw+IQcfKrpMiOMiQBmAAsAFYAGwAdk+1Z0teJpcbrcI9FpDGYbFQEHCYlIECcCaTWtoQA

What exactly is not working? It works as expected for me via the shared link.

Ah, I'm apparently blind. Thought I missed password2 error, but I see it. I guess it's an issue on react-hook-form together with their resolvers. I opened an issue here: https://github.com/react-hook-form/resolvers/issues/716

That would be weird because I implemented the resolver. The code is pretty simple. Is your version of Valibot and the resolver up to date?

Yeah, really strange. So versions are:
"react-hook-form": "7.53.0",
@hookform/resolvers": "3.9.0",
"valibot": "0.42.1"

Here is code sandbox: https://codesandbox.io/p/sandbox/wdxr64?file=%2Fpackage.json%3A16%2C5-18%2C24

Ah, I believe this condition makes it escape early:
const validateAllFieldCriteria =
      !options.shouldUseNativeValidation && options.criteriaMode === 'all';
      ```

Yes, if I now have this like so (https://codesandbox.io/p/sandbox/wdxr64?file=%2Fsrc%2FApp.tsx%3A40%2C18):
shouldUseNativeValidation: false,
criteriaMode: "all",

then it works correctly. The only issue is that it doesn't work if I use this:
resolver: valibotResolver(Schema, {
     abortEarly: false,
   }),

maybe this should also take into account. So basically:
const validateAllFieldCriteria =
     schemaOptions.abortEarly || (!options.shouldUseNativeValidation && options.criteriaMode === 'all');

abortEarly: false should not affect the abortPipeEarly configuration, as false is the default. With abortEarly: true the schema aborts the validation after the first issue and with abortPipeEarly: true the schema aborts the validation of a pipe after the first issue. Since the password2 check is in the pipeline of object, it will not be executed if object returns an issue and abortPipeEarly is enabled.


Cli release notes 2.0.72

Docs Build status updates of commit 022f103:
:clock10: Full build: the average full build time is 6 min(s) 42 sec(s), this is based on the last 172 build(s) for this repository.

Docs Build status updates of commit 022f103:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/includes/current-version.md
:white_check_mark:Succeeded
View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid) View (azure-cli-latest)

docs-ref-conceptual/release-notes-azure-cli.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 87e637c:
:clock10: Full build: the average full build time is 6 min(s) 42 sec(s), this is based on the last 173 build(s) for this repository.

Docs Build status updates of commit 87e637c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/includes/current-version.md
:white_check_mark:Succeeded
View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid) View (azure-cli-latest)

docs-ref-conceptual/release-notes-azure-cli.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@yugangw-msft This PR is ready to merge to master when the bits are released.

Docs Build status updates of commit 87e637c:
:clock10: Full build: the average full build time is 6 min(s) 41 sec(s), this is based on the last 178 build(s) for this repository.

Docs Build status updates of commit 87e637c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/includes/current-version.md
:white_check_mark:Succeeded
View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid) View (azure-cli-latest)

docs-ref-conceptual/release-notes-azure-cli.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[GOBBLIN-512]Add containers to hold unchecked exceptions from closing resources in broker

Add containers to hold unchecked exceptions from closing resources in broker, to make sure all resources are correctly handled, and log exceptions afterwards.
Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-512] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-512

Description

[x] Here are some details about my PR, including screenshots (if applicable):

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

@zxcware @ibuenros
Can you help review ? Thanks.


Fix #24 / BadValue X error (in X_CreatePixmap) on CentOS 7.1 using Xvfb

This fix takes care of https://github.com/stackgl/headless-gl/issues/24
Thanks !

Looks good to me!


Inconsistency between EIP-162 and implementation

EIP-162 says that for unsealing valid non-winning bid, the bidder gets 99.9% of bid value, while current implementation returns only 99.5%.

Thanks. We'll revise the EIP to reflect the current thinking.


Cannot read properties of undefined (reading 'Mutation')

Is there an existing issue for this?

[X] I have searched the existing issues

Which topic?
https://developer.adobe.com/graphql-mesh-gateway/reference/handlers/openapi/
What's wrong with the content?
hi team,
We have followed the document https://developer.adobe.com/graphql-mesh-gateway/reference/handlers/openapi/. We are experiencing a related issue when adding additionalResolvers.
An error appears for the customized queries login.
Cannot read properties of undefined (reading 'Mutation')
Steps to reproduce the error:

create mesh.json file with the following content:
{ "meshConfig": {  "sources": [    {      "name": "MyGraphQLApi",      "handler": {        "openapi": {          "source": "./myschema.json",          "operationHeaders": {            "Authorization": "Bearer {context.headers['x-my-api-token']}"          }        }      },      "transforms": [        {          "rename": {            "renames": [              {                "from": {                  "type": "Mutation",                  "field": "PostV1IntegrationCustomerToken"                },                "to": {                  "type": "Mutation",                  "field": "CreateCustomerToken"                }              }            ]          }        }      ]    }  ],  "additionalTypeDefs": "extend type Mutation {\n  login(credentials: PostV1IntegrationCustomerToken_request_Input!): String\n  logout: String\n}\n",  "additionalResolvers": [    "./additional-resolvers.js"  ],  "files": [    {      "path": "./additional-resolvers.js",      "content": "const oneYear = 365 * 24 * 3600\nconst resolvers = {\n    Mutation: {\n        async login(root, args, context, info) {\n            const result = await context.Rest.Mutation.CreateCustomerToken({\n                root,\n                args: {\n                    credentials: args.credentials\n                },\n                context,\n                info\n            })\n            const { res } = context\n            res.set('Set-Cookie', accessToken=${result}; Path=/; Secure; HttpOnly; Max-Age=${oneYear};)\n\n            return result\n        },\n        logout() {\n            return \"OK\";\n        }\n    }\n}\n\nmodule.exports = { resolvers }\n"    }  ] } }

The path ./myschema.json is taken from magento_url/rest/all/schema?services=all

Field content is copied from the document, and only changed according to the declaration for the res variable to avoid syntax errors

Run aio api-mesh:update mesh.json

Refresh Docs on Altair Graphql tool, see login and logout appear on Docs.

Add value header for x-my-api-token on Altair Graphql tool

Execute Mutation login: mutation { login(credentials: { username<EMAIL_ADDRESS>password<EMAIL_ADDRESS>}) } .
After executing login an error appears { "errors": [  {    "message": "Cannot read properties of undefined (reading 'Mutation')",    "path": [      "login"    ]  } ], "data": {  "login": null } }
I guess the context.Rest object is undefined.

What changes do you propose?
Additional-resolvers content needs to be adjusted.
The return result should be a token string
Anything else that can help to cover this?
No response

@haunguyenlxag this does not appear to be a documentation issue. Please contact API Mesh support.

@haunguyenlxag this does not appear to be a documentation issue. Please contact API Mesh support.

Thanks, How to contact API Mesh support ?

@haunguyenlxag this does not appear to be a documentation issue. Please contact API Mesh support.

Thanks, How to contact API Mesh support ?

@haunguyenlxag If you have access to App Builder for Commerce, you can use Enterprise Customer Support. You will need to create a ticket in your normal Adobe support channel. If you are unsure about how to access support, contact the license purchaser.


[Bug]: mocking does not work

What happened?
I have a repro here: https://github.com/UebelAndre/rules_jest_example
The README shows a test that mocks an object in another module working as expected outside of Bazel but when using Bazel with rules_jest, rules_ts, and rules_js, the test fails and the object is never mocked.
INFO: Analyzed 14 targets (0 packages loaded, 0 targets configured).
INFO: Found 13 targets and 1 test target...
FAIL: //foo:foo_tests (see /private/var/tmp/_bazel_user/e187ae0f02551085cd56d499814ad066/execroot/rules_jest_example/bazel-out/darwin_arm64-fastbuild/testlogs/foo/foo_tests/test.log)
INFO: From Testing //foo:foo_tests:
==================== Test output for //foo:foo_tests:
 FAIL  src/index.test.js
  ✕ show point was mocked (2 ms)

  ● show point was mocked

    expect(received).toBe(expected) // Object.is equality

    Expected: 1
    Received: -1

      at Object.<anonymous> (src/index.test.ts:8:21)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        0.211 s
Ran all test suites.
================================================================================
INFO: Elapsed time: 1.989s, Critical Path: 1.83s
INFO: 4 processes: 1 internal, 2 darwin-sandbox, 1 local.
INFO: Build completed, 1 test FAILED, 4 total actions
//foo:foo_tests                                                          FAILED in 0.6s
  /private/var/tmp/_bazel_user/e187ae0f02551085cd56d499814ad066/execroot/rules_jest_example/bazel-out/darwin_arm64-fastbuild/testlogs/foo/foo_tests/test.log

Executed 1 out of 1 test: 1 fails locally.

Version
Development (host) and target OS/architectures:
Output of bazel --version: bazel 6.1.0
Version of the Aspect rules, or other relevant rules from your
WORKSPACE or MODULE.bazel file:
rules_js-1.24.1
rules_ts-1.3.2
rules_jest-0.18.1
Language(s) and/or frameworks involved:
How to reproduce
See https://github.com/UebelAndre/rules_jest_example

Any other information?
No response

I assume this is not typescript related but would you be able to verify that my removing rules_ts from the repro? Simplifying the repro would also make it easier to start investigate 🙏

My javascript is fairly weak so I don't know how exactly to setup the same repro with just javascript. This was the most simplified I could make it 😅

Actually it seems to work fine if you drop ts-jest. I assume the bazel compiled ts and ts-jest compiled version are conflicting? 🤷

How is jest getting ts to compile? I thought it'd only be working with javascript?

You're using the ts-jest jest transformer. I'm not too sure how it works when you're loading .js files but that seems to interfere with mocking.
Generally when using bazel you should compile ts once with ts_project and everything else (such as jest) should consume the output of that. That ts compilation can then be cached and things like jest, bundlers etc shouldn't be compiling it again...

Closing since it seems related to mixing ts-jest and ts_project but feel free to continue the conversation here.


Does scrcpy support YUYV 422 format?

[ ] I have checked that a similar feature request does not already exist.

Is your feature request related to a problem? Please describe.
I use scrcpy --v4l2-sink to project screen to virtual camera.  ffplay work well, but unity can not work well with the virtual camera. It seems that unity does not support YUV 420.  So I want to know whether scrcpy support YUYV 422 format?
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

It seems that unity does not support YUV 420.

That would be surprising, that's the most common format (by far).

So I want to know whether scrcpy support YUYV 422 format?

Nope.

@rom1v Thanks for your reply.
There are some guys meet the same problem.
https://forum.unity.com/threads/webcamtexture-yuyv-in-videocapture.982866/
Are there any solutions to convert YUV4:2:0 output by scrcpy to YUYV4:4:2? Looking forward to your proposal

There are some guys meet the same problem.
https://forum.unity.com/threads/webcamtexture-yuyv-in-videocapture.982866/

Indeed:

Indeed, the YUV 4:2:0 format, although fairly common for video devices, is currently not supported by Unity.

Are there any solutions to convert YUV4:2:0 output by scrcpy to YUYV4:2:2?

You could try to send 4:2:2 to V4L2 (it doubles the bandwidth, but that's probably not a problem):
diff --git a/app/src/v4l2_sink.c b/app/src/v4l2_sink.c
index 9a0011f2..e695afc9 100644
--- a/app/src/v4l2_sink.c
+++ b/app/src/v4l2_sink.c
@@ -227,7 +227,7 @@ sc_v4l2_sink_open(struct sc_v4l2_sink *vs) {

     ostream->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
     ostream->codecpar->codec_id = encoder->id;
-    ostream->codecpar->format = AV_PIX_FMT_YUV420P;
+    ostream->codecpar->format = AV_PIX_FMT_YUV422P;
     ostream->codecpar->width = vs->frame_size.width;
     ostream->codecpar->height = vs->frame_size.height;

@rom1v  I rebuilt the scrcpy after change format.  ffplay -i /dev/video show green screen.

For AV_PIX_FMT_YUV422P, which format I should set? what is the difference of AV_PIX_FMT_YUV422P and AV_PIX_FMT_YUYV422?

@rom1v
Hello,  I really need your help.  So far, I have not solve this problem.
For the same virtual camera created with v4l2loopback-ctl, I tried to use the virtual camera function of OBS. The Unity player can play normally, I made the following modifications, but there is a big color problem when using unity to play. I want to know the difference between the v4l2sink code in this part of scrcpy and obs-v4l2sink? Or do I need to modify other parts of the source code?


qovery-cli: 0.74.3 -> 0.74.4

Diff: https://github.com/Qovery/qovery-cli/compare/refs/tags/v0.74.3...v0.74.4
Changelog: https://github.com/Qovery/qovery-cli/releases/tag/v0.74.4
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Priorities
Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 270750 run on x86_64-linux 1

1 package built:

qovery-cli


One-word typo in the documentation of optimize.linprog_simplex

Hello there,
I just observed this typo
https://github.com/scipy/scipy/blob/232092afebf7a59949dca5595aaac3446814293c/scipy/optimize/_linprog_doc.py#L1105
tabluea-based => tableau-based
I've contributed to tiny tiny changes in scipy a few years ago, but I'm not sure what's the best things to do for such tiny typos: do you want me to submit a pull request?
Thanks in advance. -- @Naereen

Please do! I'll merge it right away.

Thanks!
I know you guys are extra busy (the number of issues and PR here is quite scary), and I preferred to ask.
I also read all the documentation pages of optimize.linprog and various options/solvers, didn't find any other typo or things I could easily improve.

(Oh boy, 16 checks for a one-word PR... It always bothers me to see so many CI builds triggered by tiny tiny pull requests, the ecological cost is non-negligible, but I guess there is no other solution...)

(Oh boy, 16 checks for a one-word PR... It always bothers me to see so many CI builds triggered by tiny tiny pull requests, the ecological cost is non-negligible, but I guess there is no other solution...)

Oh man thanks for your blazing-fast merging, I was having the same concern regarding CI computations ressources! https://github.com/scipy/scipy/pull/13495#issuecomment-771928237


NetCDF-C++4 API v.4.3.1: unused variable warning

Hello, the latest C++4 APIs v.4.3.1 have the following compiler warning
netcdf4/include/ncGroup.h:18:14: error: ‘netCDF::file_id’ defined but not used [-Werror=unused-variable]
static int file_id;
^
which is preventing compilation with warning treated as errors in programs that compile and link against NetCDF shared objects + include files.

moved to c++4 project


Fix yaml sample order of /debug-application-cluster

The orders of kind and metadata were inconsistent, and that made the
doc unreadable.
This fixes the orders in consistent way.
ref: https://github.com/kubernetes/website/issues/13862

/lgtm
/approve


'Cancel' for PromiseKit: fix for #1026, plus cleanup

Fix "Typechecking timeout compiling tests in v7 #1026" by specifying the closure return type in DispatcherTests
Remove unnecessary "#if swift" checks in the cancellable code and tests

Hmmmm, dunno why the code coverage check is failing...

CodeCOV is a little flakey at times


fix: non integer image position

When embedding an image, it is currently possible to have the image placed in a non-integer position.
The result is that QR "bits" are partially covered.
This can be replicated by modifying the existing embed example by calling image_size(4f64) on the ImageBuilder.
Here is the (erroneous) output before this change:

Here is the (correct) output with this change:

Hey @Adam-Alj, thanks for the pull request 🚀
DO you mind merging those two commits? I can do it if you prefer :)

Hi @erwanvivien , sorry this took so long, life gets in the way.
Squashed those commits, lmk if you need anything else from my end, thanks!

@erwanvivien could you please publish a new version with this fix?


MediaPlayer onPlayerSourceStateChanged wrong events sequence

 LOG  onPlayerSourceStateChanged 1(Opening) 0
 LOG  onPlayerSourceStateChanged 2(OpenCompleted) 0
 LOG  play
 LOG  onPlayerSourceStateChanged 3(Playing) 0
 LOG  onPlayerSourceStateChanged 2(OpenCompleted) 0

call mediaPlayer.play() when state is OpenCompleted. But get OpenCompleted again after Playing state.

is our example working?

I use it in our project. And I register listener onPlayerSourceStateChanged on MediaPlayer, sometimes will got events in wrong order.

is it must appear?

is it must appear?

Sometimes on 4.0.0-beta.1

This repo has been migrated to https://github.com/AgoraIO-Extensions/Electron-SDK


Table component curved header

Curved header makes the bottom elements visible while scrolling in Table component.

https://codesandbox.io/s/configprovider-forked-cy2ukm?file=/index.js

Ticketed ENG-29153

Fix merged with https://github.com/EightfoldAI/octuple/pull/387

@usinghal-eightfold Closed the dupe issue related to this one.

This may need to be addressed in Octuple v3, the layout context will change using the known cross-browser compatible fix and will effect implementations --> https://github.com/EightfoldAI/octuple/pull/398/files#diff-cb79bacbbc836afcdd675d907500218ef0784e704c0900e35bd2b7fe13da23a1L65


Building tensorflow_cc target (cpu-only) from scratch with xla failing (TF1.15.5)

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 14.04
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): 1.15
Python version: 3.6
Bazel version (if compiling from source): 0.26.1
GCC/Compiler version (if compiling from source): 7.5.0 (set using --action env GCC_HOST_COMPILER_PATH)

Source code / logs
Execution platform: @bazel_tools//platforms:host_platform
tensorflow/compiler/xla/service/generic_transfer_manager.cc: In member function 'virtual tensorflow::Status xla::GenericTransferManager::WriteSingleTupleIndexTable(stream_executor::Stream*, absl::Span, const xla::Shape&, stream_executor::DeviceMemoryBase*)':
tensorflow/compiler/xla/service/generic_transfer_manager.cc:56:47: error: expected ',' before '{' token
stream->ThenDoHostCallback(element_pointers{std::move(element_pointers)} {
^
tensorflow/compiler/xla/service/generic_transfer_manager.cc:56:47: error: expected identifier before '{' token
Target //tensorflow:tensorflow_cc failed to build
INFO: Elapsed time: 1827.953s, Critical Path: 236.32s
INFO: 5317 processes: 5317 local.
FAILED: Build did NOT complete successfully
FAILED: Build did NOT complete successfully

@ksangeet9ap
We see that you are using a old version of tenor flow and there is no support for tf 1.x, can you please upgrade to 2,x and verify you meet the requirements.


The details of hf-accelerate pp.

There is no specific number of levels of pipeline parallelism, How many stage of pipeline parallelism in hf-accelerate.

Hey, sorry for the late reply. It will use as many stages as the number of GPUs.
(its naive pipeline parallel)

closing this


[Build] bump to <IP_ADDRESS>-rc1

Description
To be supported within the distribution for OSD 2.0.0-rc1 from the build repo, plugins need to ensure their plugin version is the expected version until https://github.com/opensearch-project/OpenSearch-Dashboards/issues/1398 is addressed. If OSD plugins version does not match the qualifier of the build then the build will fail.
Category
Maintenance
Why these changes are required?
To build successfully within the build distribution
What is the old behavior before changes and new behavior after changes?
n/a
Issues Resolved
n/a
Testing
n/a
Check List

[ ] New functionality includes testing
[ ] New functionality has been documented
[x] Commits are signed per the DCO using --signoff

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

Codecov Report

Merging #941 (f74f690) into main (558a7e1) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #941   +/-   ##
=======================================
  Coverage   72.14%   72.14%
=======================================
  Files          87       87
  Lines        1906     1906
  Branches      242      242
=======================================
  Hits         1375     1375
  Misses        477      477
  Partials       54       54

Continue to review full report at Codecov.

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


Added Sticky nav

closes #55

Why @sank2000's hoverboard is in your PR?

Ahh. I created my branch from sank's branch that's why. Will close this PR, and open a new one.


ADD: simple mobs

Hi, Stojcevich, please check this commit. This commit adds support of mobs (only simple move).

Thank you very much for this contribution. Sorry that I haven't been working on this project a lot; I've been busy with school. I'm between semesters right now so I should be able to work on it a bit more.
Thanks for dealing with the mess of code that is in the project, I plan on cleaning it up soon.


Export WaitForLeader on MetaStore

This exported function can then be used by Services and
server-reporting, so those components don't make progress until the
cluster is ready.

@benbjohnson @dgnorton

Green build.

Would it work to WaitForLeader in one place somewhere in cmd/influxd/run and not do it in the services?

@dgnorton -- I thought about that, but not all services might want to wait. I thought it was best to leave it on a service-by-service basis.

+1 on green

:+1:


bug when run "cargo other-test"

当运行cargo other-test --arch aarch64会有如下报错：

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', xtask/src/command/mod.rs:50:32

solved


Improved contrast of price card with white color

fixes #4  The price card color is changed to white color

@TheAayushRana
The solution is perfect but the diff have problems, how you have configured the tab key (programmes in studio code)?
You see that the file has many differences..

Actually, it is because I use prettier vs extension which format code itself.

I have push new code Can u check if it is good

@TheAayushRana we can see the change in development env, in https://develop.lupax.app/pricing
Now we must check in this env if all work correctly. (we haven't got integration test)


fix bug in detecting file name (when there are two spaces in filename)

Thanks! But can you port it in WindowsFilesystemFactory too?

@touki653 will you merge it?

@touki653 I just wanted to reimplement the solution to WindowsFilesystemFactory because one project we inherited is using @portey’s fork and we would love to eliminate as much dev- versions as possible from our composer.json.
However, it is not trivial. IMHO the best thing would be rather big refactoring or, even better, use modern FTP extensions and MLSx commands. The issue is text alignment in columns on Windows. The 3rd column holds the <DIR> thing and file size for regular files. The <DIR> indicator is aligned to the left and the file size to the right. All raw list lines are needed to properly detect where 4th column holding filename starts. In addition, it seems that for all-directory items, Windows adds additional padding to the column making it even less deterministic and harder to detect. Moreover, there are differences from the dir command on my Windows machines to what WindowsFilesystemFactory expects and I don’t have IIS set up so I can’t test how FTP server actually behaves. Not to mention these nuances can depend on Windows/IIS version and/or some setting (e.g., locale).


Validate peer ID before deleting pointer

To prevent a malious peer from sending us an ACK to a message not intended for
him, thus causing us to prematurely stop re-publishing pointers, let's save
the recipient's ID in the db with the pointer and check it against the peer ID
when receiving and ACK.
closes #355

Coverage increased (+0.3%) to 29.665% when pulling 2b3ab757e6b3f384d2173b79324d0d66d4cbe442 on pointers into 7af2fb79092df1c47e51bb3c8b604674a3a3b095 on master.

Coverage increased (+0.3%) to 29.665% when pulling 2b3ab757e6b3f384d2173b79324d0d66d4cbe442 on pointers into 7af2fb79092df1c47e51bb3c8b604674a3a3b095 on master.


Gem upgrades

@rcaught I've now figured out why the Gemfile has been re-ordered but I had to go dig around to figure out why, initially I was quite confused as to the reasoning for such a change.
An extra sentence or two on the commit for this type of thing would be useful going forward.


Handle touchRelease

Hey there,
I'm using the TriangleColorPicker and think, that it is somehow tricky as an unexperienced user to know, that I have to press the colored bar to select a color.
So I'm trying to detect when the user releases the finger from within the triangle and use that event as onColorSelected. I was able to insert that functionality (it seems, you alreade started that in utils.js) . But unfortunately I unable to distinguish between clicking on the circle and picking the color from inside the triangle.
Is there any line where you determine that? I mean at some point you need to know whether to rotate the triangle or not, right? My fork is https://github.com/paul-git/react-native-color-picker
Thanks and Greetings,
Paul

hi there,
if you don't want user to confirm selection, you can use onColorChange prop instead.
however if you would like to play with "releasing" inside, you can just simple calculate the distance of the release point from the center and so determine if you are on the circle or not.

Thank you sodik82,
I just want to hide the picker after the user chose a color, so I can't close it immediately on onColorChange :(
I just thought I could hook in, where you check if the user clicked inside the triangle (where the dot moves within the triangle) or in the cicrcle (where the triangle rotates in the circle). But I was unable to locate that in your code.
Again, Thanks,
Paul

I believe it is controlled by _changingHColor - but you have to check more details in code :)

Thank you. I will dive into it!

Hi @paul-git
Could you find any solution for this?

Hi @paul-git
Could you find any solution for this?

@baharb This is years old. I'm not working with the color-picker anymore. if I solved it, than it was using _changingHColor.
Good luck, Paul

@baharb This is years old. I'm not working with the color-picker anymore. if I solved it, than it was using _changingHColor.
Good luck, Paul


feat: check conditional requirements on translations fields

Summary:
This PR provides support to verify conditional requirements on GTFS file translations.txt.
New notices:

TranslationFieldValueDefinedNotice
TranslationFieldValueNotDefinedNotice
TranslationRecordIdDefinedNotice
TranslationRecordIdNotDefinedNotice
TranslationRecordSubIdDefinedNotice
TranslationRecordSubIdNotDefinedNotice

Expected behavior:
A notice should be generated and added to the NoticeContainer if:

table_name is feed_info and:

record_id is defined
record_sub_id is defined
field_value is defined

table_name is stop_times, record_id is defined and record_sub_id is not defined
field_value is defined and:

record_id is defined
record_sub_id is defined

field_value is empty

record_id is not defined

field_value and record_sub_id are defined
field_value and record_id are defined
record_id is empty and field value is not defined

http://gtfs.org/reference/static#translationstxt
Please make sure these boxes are checked before submitting your pull request - thanks!

[x] Run the unit tests with gradle test to make sure you didn't break anything
[x] Format the title like "feat: [new feature short description]". Title must follow the Conventional Commit Specification(https://www.conventionalcommits.org/en/v1.0.0/).
[x] Linked all relevant issues
~[ ] Include screenshot(s) showing how this pull request works and fixes the issue(s)~

Closing for now, will resume implementation as part of v2.1.


Create Name change policy page

[x] Create page
[x] Add description of what is being covered
[x] Add description of checks required on this content, compiled from current protocol documents
[ ] Becky approved page
[ ] Melissa approved page
[x] Fred approved page
[ ] James approved page
[x] Naushin approved page
[ ] Share page with Exeter and invite feedback

Definition of done

[ ] Page revised after team comments
[ ] Team reviewed and approved page?
[ ] Assign Fred to update the Schematron

First draft is up here - https://app.gitbook.com/@elifesciences/s/productionhowto/pages-in-progress/name-change-requests
Does that all make sense so far? There's more stuff to come, such as updating blogposts and what happens with confirming the changes have been made, but any comments welcome!
Thanks!

Is it worth making it really explicit that when creating a zip, the items (and not the folder) needs to be be compressed - this is a relatively common mistake.

So we are definitely updating the PDF of every version, not just the latest version? (the latter would remove the need for the actions described in 'Updating old versions in the archive').
And this is also the case if a reviewer, BRE or SE had a name change (possibly hundreds of versions needing manual correction for one name change)?

That's it from me - thanks for all your efforts here.

eLife aims to allow authors, reviewers and editors to update their names with a minimum of hassle.

Should this be:

'eLife aims to allow authors, reviewers and editors to update their names with minimum hassle.'?

I think all good from me other than that! Thanks!

Any related content such as Insights, Corrections or co-submissions

What exactly does this involve? If we're talking about updating the reference list in co-submissions and Insights I would vote this is a step too far. No other reference lists in the literature are going to be changed, as long as any future citations do get updated because we update the article and data sent to eg Crossref I'd say this should be enough.
I agree we should update correction metadata if there is a correction on an article this person is an author on

Article metadata:
author list or peer review details
author contributions
competing interests
funding table (should correct automatically)
funding statement
data statement

Again - is this not a reference? If the original reference on the database where this dataset is stored has not changed then we're going against what is an original piece of metadata.
If it has been changed, this is still a reference and I vote should not be changed.

For Insight articles and co-submissions, the following will also need to be corrected where applicable:
key info box details for the related article (in Insights)
mentions of the first author(s) in the text (if applicable)
entry for related article in the reference list

I personally think this is a step too far for this policy.

n cases where the individual's pronouns have changed in addition to their name, the following sections should be checked and updated if necessary:
competing interests
funding statement
acknowledgments

I agree - but can we have a policy going forward that we stop using s/he and use they instead for everyone?

Just to jump on this - I think most of the time we do because our stuff (in insights etc) refers to groups. However, we can't just 'they' universally for more or less the same reason why you don't misgender someone. If there's a preferred pronoun, you should use that. 'They' is no more universal than the others, and I don't think it would make sense in the context of contributions or competing interests, which sometimes refer to one of the other authors instead/as well.

n cases where the individual's pronouns have changed in addition to their name, the following sections should be checked and updated if necessary:
competing interests
funding statement
acknowledgments

I agree - but can we have a policy going forward that we stop using s/he and use they instead for everyone?

Just to jump on this - I think most of the time we do because our stuff (in insights etc) refers to groups. However, we can't just 'they' universally for more or less the same reason why you don't misgender someone. If there's a preferred pronoun, you should use that. 'They' is no more universal than the others, and I don't think it would make sense in the context of contributions or competing interests, which sometimes refer to one of the other authors instead/as well.

I think everyone has covered everything. Thanks James :)

Following an update to change an author, editor or reviewer's name, an annotation should be added to the latest version of the article to indicate that such a change has taken place.

This article has been updated in response to a name-change request.

I know it's implicit, but can we make it explicit that this is the annotation that should be used, and not some variant of it.
Or perhaps even add something to make it clear that author who's name has been changed should not be mentioned in the annotation.

Article metadata:
author list or peer review details
author contributions
competing interests
funding table (should correct automatically)
funding statement
data statement

Again - is this not a reference? If the original reference on the database where this dataset is stored has not changed then we're going against what is an original piece of metadata.
If it has been changed, this is still a reference and I vote should not be changed.

This isn't meant to refer to the datasets but the actual data availability statement, where the author(s) may be mentioned e.g. contact X to request access to the data.


Change sizedbox to spacer

Already Changed by now except at some instances. for example -
In actions in App Bar in 'Web'.

This change is now made. So closing the issue!!


Retrainined NF1 model without plate 4 cell data

The NF1 model is retrained without plate 4 single cell data, and the results are updated. Open to any constructive feedback you may have when reviewing this pr.

Thanks @jenna-tomkinson, merging now!


@ashfurrow => Allow deprecation of ios7 - fixes #185

Lets us send people to a martsy page of our choosing in the app based on featured links.


Remove the unit testcases and Mocks.

These test cases are out of date. and not updated for a long time. These out-of-date cases will black to build with mm command.
Tracked-On: OAM-108638

Hi @YuanjunHuang @dyang23 @TianmiChen @zhangyichix
Please help to review


peer: error validating proposal: access denied: channel [] creator org unknown, creator is malformed

Description
https://stackoverflow.com/questions/76480170/validating-proposal-access-denied-channel-creator-org-unknown-creator-is-m
Seems to be a newly introduced thing, maybe an additional field in the channel config is missing?
Basically, I followed the procedure here:
https://hyperledgendary.github.io/unstable-fabric-docs/create_channel/create_channel_test_net.html#step-two-create-the-application-channel
2023-08-10 07:00:27.002 UTC 0001 INFO [channelCmd] InitCmdFactory -> Endorser and orderer connections initialized Error: proposal failed (err: rpc error: code = Unknown desc = error validating proposal: access denied: channel [] creator org unknown, creator is malformed)
The output indicates, setup of TLS and so on is ok?
Steps to reproduce
$ podman run --rm --env-file=peercli.env -v $(pwd):/opt docker.io/hyperledger/fabric-tools peer channel join -o orderer.example.com:7050 -b /opt/channel-artifacts/blue.pb
2023-08-10 07:00:27.002 UTC 0001 INFO [channelCmd] InitCmdFactory -> Endorser and orderer connections initialized
Error: proposal failed (err: rpc error: code = Unknown desc = error validating proposal: access denied: channel [] creator org unknown, creator is malformed)

error description seems to be coming from:
https://github.com/hyperledger/fabric/blob/aa81271b8d4d7ade43cbbf2eb09b435896c12273/core/endorser/msgvalidation.go#L173

I found the issue by myself, pretty annoying:
https://hyperledger-fabric.readthedocs.io/en/release-2.5/channel_update_tutorial.html?highlight=anchor peer#fetch-the-configuration
tells how to fetch the configuration:
`
you can issue all of these commands at once
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=${PWD}/../config/
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export<EMAIL_ADDRESS>export CORE_PEER_ADDRESS=localhost:7051
`
the culprit is CORE_PEER_LOCALMSPID, because the quotation marks will be escaped and not removed, as you can see in orderer logfile:
[policies] SignatureSetToValidIdentities -> invalid identity error="MSP \"BlueOrgMSP\" is not defined on channel" identity="(mspid=\"BlueOrgMSP\" ...)
Two possibilities to fix:

change the documentation only (at least the documentation would be correct)
change the way configuration elements are read and strip (single and double) quotation marks if exist.

I am facing similar issue when I update an API client (developed in NodeJS) that is running perfectly fine with fabric-network library to fabric-gateway, pointing to the same network/peer.
The network is running Fabric v. 2.5.3.
When I try to run a getState transaction in a chaincode instantiated in a channel named ´ch´  I am getting this error:
Error: 9 FAILED_PRECONDITION: evaluate call to endorser returned error: error validating proposal: access denied: channel [ch] creator org unknown, creator is malformed.
Checking the peer logs it seems to be something related to PEM decoding while trying to decode this serialized-identity.
The strange thing is that all PEMs (certificate and private key) configured (both in client and in peer) are from the same user and all with the same content:
WARN [endorser] Validate -> access denied channel=chbadges txID=654c86ca error="could not decode the PEM structure" errorVerbose="could not decode the PEM structure\ngithub.com/hyperledger/fabric/msp.(*bccspmsp).deserializeIdentityInternal\n\t/msp/mspimpl.go:401\ngithub.com/hyperledger/fabric/msp.(*bccspmsp).DeserializeIdentity\n\t/msp/mspimpl.go:393\ngithub.com/hyperledger/fabric/msp/cache.(*cachedMSP).DeserializeIdentity\n\t/msp/cache/cache.go:74\ngithub.com/hyperledger/fabric/msp.(*mspManagerImpl).DeserializeIdentity\n\t/msp/mspmgrimpl.go:98\ngithub.com/hyperledger/fabric/core/endorser.(*UnpackedProposal).Validate\n\t/core/endorser/msgvalidation.go:170\ngithub.com/hyperledger/fabric/core/endorser.(*Endorser).preProcess\n\t/core/endorser/endorser.go:258\ngithub.com/hyperledger/fabric/core/endorser.(*Endorser).ProcessProposal\n\t/core/endorser/endorser.go:335\ngithub.com/hyperledger/fabric/internal/pkg/gateway.(*EndorserServerAdapter).ProcessProposal\n\t/internal/pkg/gateway/gateway.go:41\ngithub.com/hyperledger/fabric/internal/pkg/gateway.(*Server).Evaluate.func1\n\t/internal/pkg/gateway/evaluate.go:64\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1598" identity="serialized-identity=0a076d6170614d535012c404fbefbef8110620d08445320520201313efbefbe3082021a308201c0a003020102021100df205ac8acbabbee0c7a16f73e5633a8300a06082a8648ce3d0403023073310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d53616e204672616e636973636f31193017060355040a13106d6170612e6578616d706c652e636f6d311c301a0603550403131363612e6d6170612e6578616d706c652e636f6d301e170d3233303732383139333430305a170d3333303732353139333430305a305b310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d53616e204672616e636973636f311f301d06035504030c1641646d696e406d6170612e6578616d706c652e636f6d3059301306072a8648ce3d020106082a8648ce3d03010703420004a86f0436339404d346f75bde017aff5adef6be66dbd45864d3937257c17a2262bacb740205bf64b2c40c97669a9b1eff17d709b337906d00a71f5e0a32265fb1a34d304b300e0603551d0f0101ff040403020780300c0603551d130101ff04023000302b0603551d2304243022802052ddf850507df06c35eda09a9dba5b5aa3f4ad51e538a30dfc25698cf691523a300a06082a8648ce3d0403020348003045022100b72a6a80d764f8708276fd5281fa4fb2b928d52a23b43b997eca5ec7eb41ae7e0220074159ebe648dc7f2cabbb97e079848ec439757bfbe0667e411c9f3ad5ab3e2840fbefbef8434308445320520201313efbefb"
I have already checked the CORE_PEER_LOCALMSPID and CORE_PEER_MSPCONFIGPATH environment variables in peer container and they are accurate too.
In the API client side, the credentials (both user certificate PEM, private key and mspID) are exactly the same ones configured into the peer's crypto-path and environment.
So I can say that I don't have a clue anymore where it might have a misconfiguration or what exactly to debug, look or check.

Ok, I have figured out what was wrong: I was trying to keep compatibility with the "old" JSON "wallet" format.
Passing the credentials as a Buffer instead of a string into the identity property to the gateway's connect function solved the problem.
Here is the code snippet for those who want to keep the compatibility back with the "User.id" JSON wallet format (assuming 2 env vars: one to store the wallet path and another the identity, plus using more or less the same code structure used into asset-transfer-basic/application-gateway-typescript sample:
const walletPath = process.env.WALLET_PATH || '/opt/node/wallet';
const identity = process.env.IDENTITY || 'Admin';

const walletFile = fs.readFileSync(`${walletPath}/${identity}.id`, 'utf8');
const wallet = JSON.parse(walletFile);

const newIdentity: any = async () => {
    const mspId = wallet.mspId;
    const credentials = Buffer.from(wallet.credentials.certificate); // here is the "gotcha"

    return { mspId, credentials };
}

const newSigner: any = async () => {
    const privateKey = crypto.createPrivateKey(wallet.credentials.privateKey);

    return signers.newPrivateKeySigner(privateKey);
}

Seems to be a newly introduced thing, maybe an additional field in the channel config is missing? Basically, I followed the procedure here:
https://hyperledgendary.github.io/unstable-fabric-docs/create_channel/create_channel_test_net.html#step-two-create-the-application-channel

Hello @rlfnb , I tried, but couldn't recreate issue, with fabric v2.5.6 using fabric-samples. I see its script still uses double quotes for CORE_PEER_LOCALMSPID
If this bug already fixed, @denyeart please close the issue and let me know if I can contribute on any good first issue.

I've updated the rest of the doc tutorials to remove the double quotes for CORE_PEER_LOCALMSPID, see
https://github.com/hyperledger/fabric/pull/4841


Create a side by side compare mode (to be hidden away in dev mode for the moment)

What

Create a side by side compare mode (to be hidden away in dev mode for the moment)
We used to be add additional products to the side by side comparison with a "Add new product" button at the right of the columns which would open a scan screen, which would redirect to the side by side comparison once a barcode was detected.

Screenshot

Nice idea! Like Hunger games, it could be an app by itself.
Not entirely convinced by the UX though (and the scan part):

we should be able to.compare side by side 2 products taken from a product list
we should let the user manage her reference products, something like "hey, this is my reference breakfast cereals, how does that other product compare to it?"

But the first step would be the side by side display of two products anyway.

First raw tests. Please share some comments.

a bit redundant
less verbose

NOVA group is not explicit (ultra-processed is), and number of additives plus ordered list of additives allow better processing discrimination on 2 bad products
We should have actual scores to allow better discrimination between products

@teolemon I assume that you preferred the second column.
There would be special cases:

nutriscore and ecoscore would display the "big button"s
if the user selected at least one allergen in the preferences, we display the number of allergens and a line for each selected allergen
and a colored top widget with the score

The second column is enticing, but raises questions if we try to compare 3 products

No problem, we can put the generic label in one row and then a list of "colored dots" in the next row.
That said, it would be hard to put more than 3 products because of the product names.
What I meant with "the second column" is that we cannot be verbose.

I've added a colored score on top, and displayed nutriscore and nova differently.
Not satisfactory yet...

Eco-Score should also get the logo treatment, and we should remind what the score is about (nutritional quality, processing, environment)

@teolemon Something like that then:

top
bottom

@teolemon Still at least several poinrs bothering me:

like in the rest of the app, the colors are not relevant enough, accessibility-wise. I'll try to add empty/half-empty/full stars in addition to (in replacement of?) red/orange/green
the nutrient values are per 100g. Should we put a 100g/serving switch?
here we display only the user preferences. What about all the nutrients - e.g. proteins, or even all the oligoelements if you want to compare mineral waters? We should probably display (as an option?) all the nutrient values too

Comparing 3 similar products...

page 1
page 2

page 3
page 4

can we ensure that the first 3 things are: Nutri-Score, Food processing (NOVA) and Eco-Score

Not sure it would be easy (if the users did not select any of them as important it's not supposed to be part of the score) or even desirable (if the users did not select any of them maybe it's because it's not important to them).
The displayed attributes are sorted by descending importance. What I can do is to put them on top, regardless of the attribute order, but only if they were selected as at least important by the user.

can we put: "Personal compatibility score" instead of "score"

It would be awkward to repeat that label 3 times. Another solution would be to put the label on top, but then we would only have display a number in the "colored" line. Maybe if we center the numbers it will be explicit enough.

can we put a miniature photo on top ?

I can try, but I don't think we have enough space. (I don't have enough space).
The barcode would make sense, too.

can we make the product name (or the miniature) sticky and visible at all times ?

Would make sense indeed.

can you remove the half stars for the time being ? they bring confusion to numerical values interested users (a minority) are able to parse themselves

Not sure what you mean, as there are no stars for "normal" nutrients. Only for "preference" nutrients like fat or salt. That are repeated, as preference and as nutrient.
Regarding the stars, it was an attempt to improve accessibility (colors are not enough).
I can put back the background color and remove the stars.
I should probably remove the salt as nutrient if there's already the salt as preference.

@teolemon Something like that?

top
bottom


[BLOG] FOSS Backstage recap blog

Describe the blog post your would like to write
We wanted to give a quick shotuout to the FOSS backstage community for having us. We love the open source community.
What is the title of the blog post?
"Thanks for letting us stop by, FOSS Backstage!"
Who are the authors?
@nateynateynate
What is the proposed posting date?
Friday Mar 15 or Monday Mar 18.

@nateynateynate - checking on the status of this blog.


Support for fnv1a_ch hashing

Adding support for FNV1a_ch hashing from https://github.com/grobian/carbon-c-relay for graphite-web. Except from its docs:

"The fnv1a_ch cluster is a identical in behavior to carbon_ch, but it uses a different hash technique (FNV1a) which is faster but more importantly defined to get by a limitation of carbon_ch to use both host and port from the members. This is useful when multiple targets live on the same host just separated by port. The instance that original carbon uses to get around this can be set by appending it after the port, separated by an equals sign, e.g. <IP_ADDRESS>:2006=a for instance a. When using the fnv1a_ch cluster, this instance overrides the hash key in use. This allows for many things, including masquerading old IP addresses, but mostly to make the hash key location to become agnostic of the (physical) location of that key. For example, usage like <IP_ADDRESS>:2003=4d79d13554fa1301476c1f9fe968b0ac would allow to change port and/or ip address of the server that receives data for the instance key. Obviously, this way migration of data can be dealt with much more conveniently"

Jump_fnv1a_ch is better with metrics distribution, but it's more complicated, will add it later, if needed.
Fixing https://github.com/graphite-project/carbon/issues/602 and partially - https://github.com/graphite-project/graphite-web/issues/1645

I can add more tests if needed - now I added only for changed functions. Tests data is taken from carbon-c-relay output, so, it should be compatible.

Current coverage is 65.59% (diff: 88.00%)

Merging #1723 into master will increase coverage by 0.09%

@@             master      #1723   diff @@
==========================================
  Files            54         54
  Lines          6137       6168    +31
  Methods           0          0
  Messages          0          0
  Branches       1210       1215     +5
==========================================
+ Hits           4020       4046    +26
- Misses         1904       1908     +4
- Partials        213        214     +1

Powered by Codecov. Last update dddbe3e...fdfead5

Tried to fix the docs, @obfuscurity
Not sure if good now. Suggestions are welcome. :)

Done, @obfuscurity !

@deniszh Did you see my full comment? I had replacement text with formatting for that paragraph.

Hint: it was inside the blockquote. 😄

Oops, was blind, sorry :)
Looks better now?

NP, fixed!

Thanks!

Will squash and merge that EOD