fix: fixing winit update mode

Objective

Describe the objective or issue this PR addresses.
If you're fixing a specific issue, say "Fixes #X".

Solution

Describe the solution used to achieve the objective above.

Changelog

This section is optional. If this was a trivial fix, or has no externally-visible impact, you can delete this section.

What changed as a result of this PR?
If applicable, organize changes under "Added", "Changed", or "Fixed" sub-headings
Stick to one or two sentences. If more detail is needed for a particular change, consider adding it to the "Solution" section

If you can't summarize the work, your change may be unreasonably large / unrelated. Consider splitting your PR to make it easier to review and merge!

Migration Guide

This section is optional. If there are no breaking changes, you can delete this section.

If this PR is a breaking change (relative to the last release of Bevy), describe how a user might need to migrate their code to support these changes
Simply adding new functionality is not a breaking change.
Fixing behavior that was definitely a bug, rather than a questionable design choice is not a breaking change.

May fix https://github.com/bevyengine/bevy/pull/12616

Improved by https://github.com/bevyengine/bevy/pull/12669.


Fix link to underscore

Old link for underscore is not valid anymore, using official production build

Thank you!
I'll change not to load script external.


Redis Cache CLI - removed location variable

@steved0x,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Create a timeline

Add a list of all your activities, achievements, work experience. Add as much info as you can remember. In case you don't have working experience tell about your pet-projects or student projects. Don't be shy :)

replaced unit

    For whole my life

BinaryStudio

    Binary Studio Cat

Hooman project

Supported hoomans

Slept all the time

Lied on the keyboard

Watched my hoomans working

with unit

    For whole my life

The Rolling Scopes

  Rolling Scopes Students

Pet projects

      Async Race

      English for kids

      Christmas Tree


Draco compression breaks EXT_mesh_features and EXT_structural metadata

I'm trying to compress gltf files with metadata for 3D Tiles v1.1 (EXT_mesh_features and EXT_structural metadata extensions).
The compression does happen and the output is a valid file (using gltf-validator), but Cesium does not load the compressed glb-s anymore.
I've seen https://github.com/CesiumGS/gltf-pipeline/pull/616 , so I thought that the compression is compatible with these two extensions.
The command gltf-pipeline -i input.glb -o output.glb -d. Also tried with --keepUnusedElements, but the result is the same.

This may be a specific instance of https://github.com/CesiumGS/gltf-pipeline/issues/579
I tried to test this, with different models (and even created a new model that is similar to the FeatureIdAttributeAndPropertyTable model, but with more complex geometry), but could not reproduce the issue. I still don't know what exactly the conditions are for Draco to modify the indices.
If you could provide one of the input models (i.e. if it can be shared and has a "reasonable" size in its uncompressed form), then I could give it a try.
Otherwise, you might want to try to add the --draco.compressionLevel=0 parameter to the command line. This should still apply some compression, but should cause Draco to retain the index order, which is currently required for the EXT_mesh_features extension to work.


export database from informix to postgresql

Hello,
I use Version 6.1.0 on a Macbook. I export an Informix database to a PostgreSql database.
I select a table, right click "Export data" and choose "Database" and click on "Next". Then I choose the "Columns" button.
When the source type is of "Text", the dbeaver propose "json" for the source type of PostgreSql. I think it should also "Text".
Regards,
Gerrit

Sorry, bytea
Error occurred during public.actie_aanpak data load
Reason:
SQL Error [42804]: Batch entry 0 INSERT INTO public.actie_aanpak (actiea_id,actie_id,jaar,tekst,wijz_l_d,wijz_l_user)
VALUES (3,3,2000,?,'2001-05-04 +02','CLAEYSSV  ') was aborted: ERROR: column "tekst" is of type json but expression is of type bytea
Hint: You will need to rewrite or cast the expression.
Position: 103  Call getNextException to see other errors in the batch.

is it still actual?

there are not any updates on issue. Ticket will be closed.
If issue is still actual for you - feel free to reopen the ticket


Incorrectly reported undefined name in a loop

Running ruff --check (no configuration needed) on
def main():
    for i in range(100):
        if i != 0:
            print(a)
        else:
            a = 0

yields an undefined name error and a "assigned to but never used" error, whereas
def main():
    for i in range(100):
        if i == 0:
            a = 0
        else:
            print(a)

is fine.
While one could argue that the former is bad style and hard to read, unfortunately there's quite a bit of code written in that style already. Is this something Ruff could understand?

Thanks for filing! Hmm, while I wish we could, I don't think we can reliably support this kind of conditional assignment. Even Pyright which has a much more sophisticated inference model marks a as possibly unbound in both cases. Ideally, we'd mark both cases as "possibly unbound", but even that wouldn't necessarily solve your problem, since you'd still have to fight that lint error.


Add paste service utility

Docs:

changelog:

Enable the "Use a longer URI" option, although I don't see it in the API docs.
Return the deletion URL. This would allow us to cache it and potentially use it via a command if we find that a paste contains sensitive information.

I like both of these, added in a force push.

Good ol' reliable Chris.


Confusing documentation regarding Large Tensor Support

Description
In https://mxnet.incubator.apache.org/versions/master/api/faq/large_tensor_support it is stated that "...tensors are indexed in MXNet using INT32 indices by default. Now MXNet build with Large Tensor supports INT64 indices."
If I understand correctly, this means that the size of every dimension can be INT64.
Meanwhile in a config file, it is said that every dimension in bounded by INT32: https://github.com/apache/incubator-mxnet/blob/4fc58fa1862a00c1af0788c6ce0ab19015f512d7/config/linux.cmake#L120
https://github.com/apache/incubator-mxnet/blob/4fc58fa1862a00c1af0788c6ce0ab19015f512d7/config/linux.cmake#L121
Could you clarify it and correct the documentation if it is incorrect?

@access2rohit, any comments?
I originally thought that USE_INT64_TENSOR_SIZE allowed the use of tensor indices in any dimension in the int64_t range.

Code supports and testing was done with vectors and tensors with individual dims that are > INT_MAX. The line in came can be deleted since it causes confusion. @DominikaJedynak This feature is only supported for CPU.


Difference between packages?

Just wondering if there is any difference between your package and https://github.com/peavers/silverstripe-font-awesome?
If not it may be a decent idea to merge them so we don't have multiple packages for the same purpose?
Regards,

Not sure if there are differences.  All I know is that I write my module first and then Chris Turner decided to adapt the same concept...at least he admits that much in the history of his readme file here: https://github.com/peavers/silverstripe-font-awesome/commit/8119bc274fc445dfefbeadd0bf48886c1113e05d
Not sure why Chris Turner (peavers) didn't submit a pull request.  I suspect he made several enhancements and decided his changes are too extensive to merge back in?


Migrate to Test Proxy for some MGMT RPs. batch 8

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
API changes are not detected in this pull request.

part of Migrate to Test Proxy for all mgmt. PRs


Disable changing of crop area size

Hi!
I need to lock the crop area, so the user are not able to change the size. I want to set some fixed aspect ratios e.g. 16:9 and user should not be able to move the white lines. So the solution is "not" to set just:
self.lockAspectRatio(true). This will still allow users to move the white lines... I need to disable it completly. Is it possible?

Solution in the IGRPhotoTweakConstants.swift file:
let kCropViewHotArea: CGFloat = 0.0


fakeTimers not working?

Do you want to request a feature or report a bug?
Not sure if a bug or I miss understood the docs (more likely?)
What is the current behavior?
Unless i understood the documentation wrong, fakeTimers are expected to work in a situation like this
const tickThenTimeout = (state) => {
  process.nextTick(() => {
    setTimeout(() => {
      state.ok = true
    })
  })
}

describe('timers test', () => {
  it('tickThenTimeout should work', () => {
    jest.useFakeTimers()
    const state = { ok: false }
    tickThenTimeout(state)
    expect(state.ok).toBe(false)
    jest.runAllTimers()
    expect(state.ok).toBe(true)
  })
})

Yet the above test fails,
A repro can be ran @ https://repl.it/JB3e
What is the expected behavior?
The above test should pass
Please provide your exact Jest configuration and mention your Jest, node, yarn/npm version and operating system.
yarn: v0.24.6
node: v8.1.2 && v7.1
OS: verified in macOS Sierra & CircleCI unix machine

Possibly related to https://github.com/facebook/jest/issues/3000 but the same code as above is marked as working in that issue

Strange, I can repro on repl with jsdom testEnvironment set (node works fine), but cannot locally for Jest 20.0.4 and on master – the example works fine.

To be noted that the lack of jest.useFakeTimers() has no effect in this case as shown in https://repl.it/JB3e/3

It's probably connected to the console bug we were facing (fixed on master now). On node env you'll see warning messages.

Yup, it's definitely that, Repl.it uses Node 7.4 where the bug occurs.

Can you try locally on Node other thatn 7.2-7.4?

@thymikee with jsdom mode on and jest.useFakeTimers the issue isn't solved (no warnings, test fails), with node mode on i get warnings, and with useFakeTImers it all works. I suspect that's not the source of the bug.
I'm using node 8.1 locally and 7.1 on ci both seem affected

Have you tried this repro? https://github.com/cesarkawakami-misc/jest-bug-runalltimers
There's identical example as yours which pass on my machine, whichever env.

Yup that's where i got my repro from, however the issue reported seems to be of a different nature so i opened a different ticket

@thymikee tried locally with node 6, node 7 and node 8, all seem to have the same issue (also tried on jest 19.0.2). I couldn't try master branch (after yarn build when i tried to run jest it said unexpected token import in jest-cli/bin/somefile.js

Closing this as i think it's related to own setup/stuff that worked in mocha when maybe it shouldn't have worked


fix(Engine Commands) Pass JSON File to Query Engine

The other half of  https://github.com/prisma/prisma-engine/pull/115
Related to

prisma/prisma2#254
prisma/prisma2#807

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

Hey @timsuchanek, @mavilein.
This should fix https://github.com/prisma/prisma2/issues/254 which has now been open for months and has really been a show stopper...
This issue also depends on https://github.com/prisma/prisma-engine/pull/115 being close. Hence why I have brought @mavilein in.
I really appreciate all your work but I am reaching the end of my tether and I would love some input/feedback.

Ready to close this in favor of https://github.com/prisma/prisma-engine/pull/166

merged in https://github.com/prisma/prisma-engine/pull/166


Add build step

We need a build subcommand available for certain languages. Starting off with python to build wheels and a generic C compiler would probably be a good start

Not applicable anymore


Fixes

Hi,
I will leave the current company but I want to continue on these PRs until we merge them.
Additional to the other PR, here is a fix to the way time is computed on sending heartbeats, because I had windows of time when services where not green due to incorrect scheduling of heartbeats.

There are so many changes outside the scope of what you are proposing.

maybe you can start a new PR with just the changes you want committed?


Improve traceability between currently-running tests and Coiled resources they create

Tests generally create Coiled resources (clusters & software environments) with a pattern like "{test/module name}_{random UUID}". Especially when multiple GitHub actions are running the same tests against different python versions and platforms, this can make it very hard to track down which cluster a particular test is running on. (See https://github.com/coiled/coiled-runtime/pull/243#issuecomment-1217397465 for an example.)
It would be nice to have a naming scheme that's more meaningful and hierarchical. Some ideas:

[ ] Instead of random UUIDs, can we use GitHub Actions job IDs? This lets you map between the cluster and the job that created it.
[ ] Can we use IDs more hierarchically, so all clusters and senvs from the same GHA job have that ID in their name, even if they need to have a third component to further identify them too (I actually think they probably don't need a third component though)?
[ ] Every time we create and close a cluster, can we log that, and note which module it's being used for?
[ ] At the start of every test, can we print the test name, the cluster name and ID it's running on, and a link to the dashboard?
[ ] Between each test on a cluster, use a client.run or something to print in all the worker and scheduler logs which test is about to run. When tests fail, this would make parsing logs a lot more meaningful.

cc @ian-r-rose @ncclementi @jrbourbeau

+1 thanks for opening an issue on this, I've been meaning to get to it

At the start of every test, can we print the test name, the cluster name and ID it's running on, and a link to the dashboard?

This in particular has been challenging to do in combination with pytest-xdist: https://github.com/pytest-dev/pytest-xdist/issues/402 . Of course, we can still log more stuff for use in local development.

@ian-r-rose does that only apply to logging, or all stdout? Print statements and -s would be an acceptable alternative :)

@ian-r-rose does that only apply to logging, or all stdout?

It's been a bit since I looked at it, but my recollection is that -s does not work in xdist.

Print statements and -s would be an acceptable alternative :)

Don't reveal to the world my debugging techniques!

Noting that clusters can now be tagged (see https://docs.coiled.io/user_guide/cluster_creation.html#tags). We could probably make use of this to improve test/cluster/etc. traceability
cc @ntabris for visibility

Closing : This discussion seems stale since now we do have easier traceability from the dashboard plot to the database table which has links to the cluster.

The issue was also about currently-running tests, which AFAIK you still can't map to currently-running clusters? The linking in the static HTML files works for checking on things after the fact, but if you're developing new tests, or running tests to debug them, I think it's still hard to figure out which cluster they're running on.
See https://github.com/gjoseph92/snakebench#mapping-between-coiled-clusters-and-the-tests-running-them for an example of the sort of deterministic, hierarchical naming I was talking about.

The issue was also about currently-running tests, which AFAIK you still can't map to currently-running clusters?

My bad, you are right this is still a problem. AFAIK we still have the logging problem with xdist so that is not an option. I'll re-open this.

Yeah, xdist makes printing info hard. But again, see the snakebench naming scheme: https://github.com/gjoseph92/snakebench/blob/8c6cda1f11e0f27e17bf7234ab1e66d040b3fe81/snakebench/core.py#L73-L92. When you see a cluster like f35ff10-3576597018-1-1-tests_benchmarks_test_array, I know exactly what's running it even without logging, because the triggering commit and GHA run ID are all in the name.


DockerImage could not find skbuild

While running the docker command, pip could not find skbuild.
Looks like skbuild is replaced with scikit-build.
Looks like it's coming from OpenCV.4.3.0 build during benchbot_api build.
Important, this is inherent in opencv-python install. Not the problem of this repo.
Just leaving here for reference.

Good catch @joshi-bharat; thanks for sharing it with us here.
I was coincidentally running an installation last night which also failed with exactly the same error. The error seems to have been introduced by a version of python-opencv released in the last day or so. Your suggestion was really helpful in nailing down the root of the issue:

Python OpenCV now requires manylinux2014 to build the wheel for the package (https://github.com/skvark/opencv-python/issues/372#issuecomment-671747635), which has been available since v19.3 of pip
Ubuntu's python3-pip package installs v9.x of pip.... which is over 2.5 years old at this point
Upgrading pip under Ubuntu via pip3 install --upgrade pip causes pip to throw warnings
It is impossible to get rid of the warnings without setting up virtual environments, or manually deleting system files (https://github.com/pypa/pip/issues/5599)...

I have added fixes to the two places we install the API: creation of the submission Dockerfile, & installation on the host system. The fixes will likely throw the following warning when using pip:
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip. Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue. To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.

It's just a warning, but still something I wish wasn't there. On your host system I'd recommend having a recent version of pip & some sort of virtual environment setup regardless which will also get around the warnings.
See commits 42f5ba8653601f330d0bb3f5187e73c27d973ffb & df078bae32f78e4aed1f9bdbae5ffb0bb22979c9  for the fixes, which are available in the v1.0.4 release.
I'd be lying if I said I thought it was okay that something as ubiquitous as pip requires anything more than sudo apt install python3-pip to get running without issues.... but we won't go into that :stuck_out_tongue:


Possible performance problem with combineLatest

I am writing a program that renders the US county map and I'm using the nested dialogue structure.  But I found that when I try to combine the map with another constantly updating div, the performance took a huge hit. Here is the code:
let mapDom$ = paths$.map(({counties, states, borders}) => {
    console.log('render');
    const c = svg('g', counties.map( ({id, d}) => svg('path', {key: id, d: d, fill: 'white'})));
    const s = createStates(states);
    const b = svg('path', {d: borders, class: mapStyles.statesborder});

    return svg('svg', {width: window.innerWidth, height: window.innerHeight}, [c, s, b]);
  });

  let intervalDOM$ = Rx.Observable.interval(1000)
    .map( i =>
      div(i.toString())
      );

  let vtree$ = Rx.Observable.combineLatest(mapDom$, intervalDOM$, (mapDom, intervalDom) => div([mapDom, intervalDom]));

The problem seems to be combineLatest. I think it might be making a copy of the mapDOM every time the intervalDOM updates.  Is there a solution to this?

So it turns out the problem was not in combineLatest but in virtual-dom. The evidence is that the following code does not slow down
combineLatest(mapDom$, intervalDOM$, (mapDom, intervalDom) => intervalDom)

But if the function returns a mapDom, which is a huge vtree, then the application slows down. So the problem is likely caused by diffing the huge vtree.

Check out virtual-dom thunks: https://github.com/Matt-Esch/virtual-dom/blob/master/docs/thunk.md

Does thunk work in cycle-dom? I just tried that simple ConstantlyThunk example with cyclejs, and it doesn't seem to show anything. The root tree is blank.

There is no reason why it shouldn't work. Can you provide a minimal example code to reproduce the bug?

Here is a minimal example. I don't see anything under the root node.  Maybe I'm using thunk in a wrong way?
import {Rx, run} from '@cycle/core';
import {h, makeDOMDriver} from '@cycle/dom';

let ConstantlyThunk = function(greeting){
  this.greeting = greeting;
};
ConstantlyThunk.prototype.type = "Thunk";
ConstantlyThunk.prototype.render = function(previous) {
  if (previous && previous.vnode) {
    return previous.vnode;
  } else {
    return h('div', ["Constantly "+ this.greeting]);
  }
}

function main({DOM}) {
  let vtree$ = Rx.Observable.return(true)
    .map( () => new ConstantlyThunk('hello'));

  return {
    DOM: vtree$
  };
}

run(main, {
  DOM: makeDOMDriver('#root')
});

You're right, there was a bug in Cycle DOM, I'll fix it asap.

Released v7.1.0, reopen this issue if you still have problems when using thunks.


File and usermod handling

The file handling has been improved with user supplied files being loaded first and repo unimod files only loaded if no other unimod file loaded.
Added a generator for unimodIDs if no record_id present for an entry.

I still see an issue with the numbering of the usermod IDs, but I'm not completely sure about the most elegant way to solve it, so I'm just gonna describe the problem:

If you write a userdefined mods file with the unimod_mapper, the userdefined mods are label "u1", "u2", etc., and it's based on the file that is being written/modified, so that IDs don't repeat themselves.
With that, we currently assume that the IDs across all input files are unique (which I think came from traditionally only having two potential input files)
But now that we can have a whole bunch of different input files, IDs may not be unique, especially if you're giving them general IDs (like "u1", "u2", etc) while parsing the usermods files that don't have a "record_id"
Currently, those IDs would be lost (silent fail, which is already pretty bad and needs change)

So, what I could envision are two different solutions:

Allow multiple entries for the same ID - which I don't really like, since it may require quite some downstream changes.
Include an error message when an ID occurs multiple times, forcing the user to merge/modify their input files. This seems a bit more appropriate to me. This could still be problematic though for the cases where there is no "record_id" in the input file. So for those, instead of giving them an ID, the best option may be to just allow the ID to be empty?

As I implemented it the numbering for the usermods will be unique across all files as the counter is not reset no matter how many extra files are loaded.  The ids are not being written back to the usermod.xml files but are used for internal reference only.  They will change depending on which files are loaded and indeed which order the files are loaded in.  I did try and restrict duplication by not adding the local unimod file if the user already supplies a unimod file.
As to duplicated references etc.  The code currently, accepts duplicated records without complaint and only references the first occurrence of any particular item, at least for names and ids, for masses and formula it does accumulate a list of matches.  So as far as I can see the only time we have duplicate references is when we duplicate “official” unimod data, but then our lookup will only use the first occurance anyway.
I am not sure if any code actually uses the unimodID, since the main mode of interaction with the unimod data will be through the name or the chemical composition of the modification.
Cheers
Gavain
From: StSchulze @.>
Sent: 10 July 2021 13:51
To: computational-ms/unimod-mapper @.>
Cc: Gavain Sweetman @.>; Author @.>
Subject: Re: [computational-ms/unimod-mapper] File and usermod handling (#10)
EXTERNAL
I still see an issue with the numbering of the usermod IDs, but I'm not completely sure about the most elegant way to solve it, so I'm just gonna describe the problem:

If you write a userdefined mods file with the unimod_mapper, the userdefined mods are label "u1", "u2", etc., and it's based on the file that is being written/modified, so that IDs don't repeat themselves.
With that, we currently assume that the IDs across all input files are unique (which I think came from traditionally only having two potential input files)
But now that we can have a whole bunch of different input files, IDs may not be unique, especially if you're giving them general IDs (like "u1", "u2", etc) while parsing the usermods files that don't have a "record_id"
Currently, those IDs would be lost (silent fail, which is already pretty bad and needs change)

So, what I could envision are two different solutions:

Allow multiple entries for the same ID - which I don't really like, since it may require quite some downstream changes.
Include an error message when an ID occurs multiple times, forcing the user to merge/modify their input files. This seems a bit more appropriate to me. This could still be problematic though for the cases where there is no "record_id" in the input file. So for those, instead of giving them an ID, the best option may be to just allow the ID to be empty?

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/computational-ms/unimod-mapper/pull/10*issuecomment-877632748__;Iw!!AoaiBx6H!nMBuWr7hBYdVsmmldQKyAsXXzHCKjmq8sjvdR27a5BUZ1xciIbn-vIKC-j6N1a27_m5Z$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/ACTYUFFD37ZTGHF7NBNMKMDTXA6ZRANCNFSM5ACXKVLQ__;!!AoaiBx6H!nMBuWr7hBYdVsmmldQKyAsXXzHCKjmq8sjvdR27a5BUZ1xciIbn-vIKC-j6N1RIIDs1l$.
GSK monitors email communications sent to and from GSK in order to protect GSK, our employees, customers, suppliers and business partners, from cyber threats and loss of GSK Information. GSK monitoring is conducted with appropriate confidentiality controls and in accordance with local laws and after appropriate consultation.

This e-mail was sent by GlaxoSmithKline Services Unlimited
(registered in England and Wales No. 1047315), which is a
member of the GlaxoSmithKline group of companies. The
registered address of GlaxoSmithKline Services Unlimited
is 980 Great West Road, Brentford, Middlesex TW8 9GS.

As I implemented it the numbering for the usermods will be unique across all files as the counter is not reset no matter how many extra files are loaded. The ids are not being written back to the usermod.xml files but are used for internal reference only. They will change depending on which files are loaded and indeed which order the files are loaded in.

Right, but unless I'm mistaken, the "u1", "u2", etc. numbering is only applied if no "record_id" is found in the xml. This may be true for some usermod files, but e.g. isn't true for the usermod files written with the unimod_mapper writeXML function. So if you have a mixture of different usermod files, it won't map the mods correctly (e.g. first input file without "record_id" would set "u1", "u2", etc. and then for a second usermod input file with "record_id", the IDs would not be mapped). And this is not just for internal reference only, but relevant for all id2name/mass/etc functions.

As to duplicated references etc. The code currently, accepts duplicated records without complaint and only references the first occurrence of any particular item, at least for names and ids, for masses and formula it does accumulate a list of matches. So as far as I can see the only time we have duplicate references is when we duplicate “official” unimod data, but then our lookup will only use the first occurance anyway. I am not sure if any code actually uses the unimodID, since the main mode of interaction with the unimod data will be through the name or the chemical composition of the modification.

It accepts it without complaint, yes, which is why I referred to it as a silent fail, because it doesn't result in an error, but doesn't map the IDs correctly, since, as you said, only the first occurrence is referenced, while the following ones are lost.
And yes, the unimodID is actually used in code. I use it somewhat regularly in my Ursgal pipelines and while I don't do that for usermods, others may do it.

Interesting, perhaps we should just ignore any ids and create our own for all mods.  That way we know that they are unique and we are independent of the ids assigned by the different ways of making the unimod.xml files.
We could have all the _initialize_mapper function accumulating all matches by ensuring each attribute maps to a list of indexes.  Then the lookup functions would all be 2_list functions e.g. name2mass_list().  It would then be up to the user to use only the first occurrence or even have a function that does that explicitly e.g. name2first_mass().
From: StSchulze @.>
Sent: 12 July 2021 14:42
To: computational-ms/unimod-mapper @.>
Cc: Gavain Sweetman @.>; Author @.>
Subject: Re: [computational-ms/unimod-mapper] File and usermod handling (#10)
EXTERNAL
As I implemented it the numbering for the usermods will be unique across all files as the counter is not reset no matter how many extra files are loaded. The ids are not being written back to the usermod.xml files but are used for internal reference only. They will change depending on which files are loaded and indeed which order the files are loaded in.
Right, but unless I'm mistaken, the "u1", "u2", etc. numbering is only applied if no "record_id" is found in the xml. This may be true for some usermod files, but e.g. isn't true for the usermod files written with the unimod_mapper writeXML function. So if you have a mixture of different usermod files, it won't map the mods correctly (e.g. first input file without "record_id" would set "u1", "u2", etc. and then for a second usermod input file with "record_id", the IDs would not be mapped). And this is not just for internal reference only, but relevant for all id2name/mass/etc functions.
As to duplicated references etc. The code currently, accepts duplicated records without complaint and only references the first occurrence of any particular item, at least for names and ids, for masses and formula it does accumulate a list of matches. So as far as I can see the only time we have duplicate references is when we duplicate “official” unimod data, but then our lookup will only use the first occurance anyway. I am not sure if any code actually uses the unimodID, since the main mode of interaction with the unimod data will be through the name or the chemical composition of the modification.
It accepts it without complaint, yes, which is why I referred to it as a silent fail, because it doesn't result in an error, but doesn't map the IDs correctly, since, as you said, only the first occurrence is referenced, while the following ones are lost.
And yes, the unimodID is actually used in code. I use it somewhat regularly in my Ursgal pipelines and while I don't do that for usermods, others may do it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/computational-ms/unimod-mapper/pull/10*issuecomment-878289448__;Iw!!AoaiBx6H!kP-zOvZGgAbYtcMg6fBGTxEXfjgABb7i9I_WhBVdsH7JzLkU7s0KSP4Pz-gmioUD8GNs$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/ACTYUFD6R6OFWNW6S4LHKJ3TXLWJDANCNFSM5ACXKVLQ__;!!AoaiBx6H!kP-zOvZGgAbYtcMg6fBGTxEXfjgABb7i9I_WhBVdsH7JzLkU7s0KSP4Pz-gmill704BH$.
GSK monitors email communications sent to and from GSK in order to protect GSK, our employees, customers, suppliers and business partners, from cyber threats and loss of GSK Information. GSK monitoring is conducted with appropriate confidentiality controls and in accordance with local laws and after appropriate consultation.

This e-mail was sent by GlaxoSmithKline Services Unlimited
(registered in England and Wales No. 1047315), which is a
member of the GlaxoSmithKline group of companies. The
registered address of GlaxoSmithKline Services Unlimited
is 980 Great West Road, Brentford, Middlesex TW8 9GS.

Yeah, that sounds like what I meant with my suggested solution 1.
And even though I initially said I don't like it too much, it may actually be the best option - and in the mapper itself it would be pretty straight-forward to implement, since this is pretty much how it's done for all the other mapping functions.
Though I'd say we don't need to create our own IDs but can just use the index of the list, as it's currently done.
Then setting "u1", "u2", etc. can also be omitted and if there is no "record_id", then the ID is just an empty string.
Does that make sense?

Yes that makes sense.  I will start working on the translation of all lookups to receive lists.
From: StSchulze @.>
Sent: 12 July 2021 20:32
To: computational-ms/unimod-mapper @.>
Cc: Gavain Sweetman @.>; Author @.>
Subject: Re: [computational-ms/unimod-mapper] File and usermod handling (#10)
EXTERNAL
Yeah, that sounds like what I meant with my suggested solution 1.
And even though I initially said I don't like it too much, it may actually be the best option - and in the mapper itself it would be pretty straight-forward to implement, since this is pretty much how it's done for all the other mapping functions.
Though I'd say we don't need to create our own IDs but can just use the index of the list, as it's currently done.
Then setting "u1", "u2", etc. can also be omitted and if there is no "record_id", then the ID is just an empty string.
Does that make sense?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/computational-ms/unimod-mapper/pull/10*issuecomment-878538107__;Iw!!AoaiBx6H!jwnerrPbPL-6oJ12JeTPT2XaPfW2wWNEkJohAZwVNhaRuE4v0fdcuHmuSDzdKUjOcb6y$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/ACTYUFDVDPZJHM3XKWIOCFTTXM7JPANCNFSM5ACXKVLQ__;!!AoaiBx6H!jwnerrPbPL-6oJ12JeTPT2XaPfW2wWNEkJohAZwVNhaRuE4v0fdcuHmuSDzdKRQPhC8-$.
GSK monitors email communications sent to and from GSK in order to protect GSK, our employees, customers, suppliers and business partners, from cyber threats and loss of GSK Information. GSK monitoring is conducted with appropriate confidentiality controls and in accordance with local laws and after appropriate consultation.

This e-mail was sent by GlaxoSmithKline Services Unlimited
(registered in England and Wales No. 1047315), which is a
member of the GlaxoSmithKline group of companies. The
registered address of GlaxoSmithKline Services Unlimited
is 980 Great West Road, Brentford, Middlesex TW8 9GS.

OK, I have implemented a new unimodID using index numbers.  The mapper now maps all data providing lists of indexes for the matching values.  Most functions that access data now have a 2list function, that return the list of matching  values for , and 2first function, that returns a singular value corresponding to the lowest unimoID.

I am fine with that now - any subjections ?

If we are happy with this can it be completed soon?  I have changes to the chemical_composition module that build on this one.


Database disk image is malformed

I am getting the error "sqlite3.DatabaseError: database disk image is malformed" when I try to run the program.
It occurs when I get about 23% of the way through clearing trashed videos. Here is a copy of my command prompt output:
Hydrus Video Deduplicator 0.3.1
Connecting to http://<IP_ADDRESS>:45869
Database found with 20966 videos already hashed.
Clearing trashed videos:  23%|███████████▏                                    | 4864/20966 [00:49<00:57, 280.48video/s]Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Users\samas\AppData\Local\Programs\Python\Python310\lib\threading.py", line 1016, in _bootstrap_inner
self.run()
File "C:\Users\samas\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlitedict.py", line 517, in run
conn.commit()
sqlite3.DatabaseError: database disk image is malformed
Clearing trashed videos:  23%|███████████▏                                    | 4864/20966 [01:00<00:57, 280.48video/s]
It just hangs here forever.

First, before doing anything else, backup your DB. It should be in %USERPROFILE%\AppData\Local\hydrusvideodeduplicator or %USERPROFILE%\AppData\Roaming\hydrusvideodeduplicator. Just copy it somewhere safe.
Then try upgrading the program with pip install hydrusvideodeduplicator --upgrade. I don't think it will fix anything, but you're on an outdated version. Let me know if that fixes it.

Upgrading didn't fix it, but thank you for the help with that. The integrity check and vacuum seem to have done the trick. Thank you very much for the help!


mac/xplat intro to mvc, update to 2.0

Review URLs

Mac
VS Code

@scottaddie  hold off, more commit on the way

@scottaddie  ready for review.


GCE ingress with routes always falls back to default-http-backend

I installed the helm chart 1.5.1 into a GKE cluster:
helm install -f values.yaml --name cicd stable/sonatype-nexus
When the ingress is ready, I always get "default backend - 404" when visiting my nexus service IP/host.
$ kubectl describe ingress/cicd-nexus-sonatype-nexus
Name:             cicd-nexus-sonatype-nexus
Namespace:        default
Address:          35.190.xxx.xxx
Default backend:  default-http-backend:80 (<IP_ADDRESS>:8080)
TLS:
  nexus-tls terminates container.graphconnected.com,nexus.graphconnected.com
Rules:
  Host                          Path  Backends
  ----                          ----  --------
  container.foo.com
                                /*   cicd-nexus-sonatype-nexus:8080 (<none>)
  nexus.foo.com
                                /*   cicd-nexus-sonatype-nexus:8080 (<none>)
Annotations:
  backends:         {"k8s-be-32262--fa005fc45b78c698":"HEALTHY","k8s-be-32273--fa005fc45b78c698":"HEALTHY"}
  forwarding-rule:  k8s-fw-default-cicd-nexus-sonatype-nexus--fa005fc45b78c698
  target-proxy:     k8s-tp-default-cicd-nexus-sonatype-nexus--fa005fc45b78c698
  url-map:          k8s-um-default-cicd-nexus-sonatype-nexus--fa005fc45b78c698
Events:
  Type    Reason   Age               From                     Message
  ----    ------   ----              ----                     -------
  Normal  Service  2m (x10 over 1h)  loadbalancer-controller  no user specified default backend, using system default

Output from the dryrun $ helm install --dry-run --debug -f values.yaml stable/sonatype-nexus:
# Source: sonatype-nexus/templates/ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: angry-whippet-sonatype-nexus
  labels:
    app: sonatype-nexus
    fullname: angry-whippet-sonatype-nexus
    chart: sonatype-nexus-1.5.1
    release: angry-whippet
    heritage: Tiller
  annotations:
    kubernetes.io/ingress.allow-http: "true"
    kubernetes.io/ingress.class: "gce"
    kubernetes.io/ingress.global-static-ip-name: "kubernetes-ingress-static-ip"
    kubernetes.io/tls-acme: "true"
spec:
  rules:
    - host: container.foo.com
      http:
        paths:
          - backend:
              serviceName: angry-whippet-sonatype-nexus
              servicePort: 8080
            path: /*
    - host: nexus.foo.com
      http:
        paths:
          - backend:
              serviceName: angry-whippet-sonatype-nexus
              servicePort: 8080
            path: /*
  tls:
    - hosts:
        - container.foo.com
        - nexus.foo.com
      secretName: "nexus-tls"

My full values.yaml content:
replicaCount: 1

nexus:
  imageName: quay.io/travelaudience/docker-nexus
  imageTag: 3.12.1
  imagePullPolicy: IfNotPresent
  env:
    - name: install4jAddVmParams
      value: "-Xms1200M -Xmx1200M -XX:MaxDirectMemorySize=2G -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
  # nodeSelector:
  #   cloud.google.com/gke-nodepool: default-pool
  resources: {}
    # requests:
      ## Based on https://support.sonatype.com/hc/en-us/articles/115006448847#mem
      ## and https://twitter.com/analytically/status/894592422382063616:
      ##   Xms == Xmx
      ##   Xmx <= 4G
      ##   MaxDirectMemory >= 2G
      ##   Xmx + MaxDirectMemory <= RAM * 2/3 (hence the request for 4800Mi)
      ##   MaxRAMFraction=1 is not being set as it would allow the heap
      ##     to use all the available memory.
      # cpu: 250m
      # memory: 4800Mi
  # The ports should only be changed if the nexus image uses a different port
  dockerPort: 5003
  nexusPort: 8081
  serviceType: NodePort
  # securityContext:
  #   fsGroup: 2000
  livenessProbe:
    initialDelaySeconds: 30
    periodSeconds: 30
    failureThreshold: 6
    path: /
  readinessProbe:
    initialDelaySeconds: 30
    periodSeconds: 30
    failureThreshold: 6
    path: /

nexusProxy:
  imageName: quay.io/travelaudience/docker-nexus-proxy
  imageTag: 2.2.0
  imagePullPolicy: IfNotPresent
  port: 8080
  env:
    nexusDockerHost: container.foo.com
    nexusHttpHost: nexus.foo.com
    enforceHttps: false
    cloudIamAuthEnabled: false
## If cloudIamAuthEnabled is set to true uncomment the variables below and remove this line
  #   clientId: ""
  #   clientSecret: ""
  #   organizationId: ""
  #   redirectUrl: ""
  # secrets:
  #   keystore: ""
  #   password: ""
  resources: {}
    # requests:
      # cpu: 100m
      # memory: 256Mi
    # limits:
      # cpu: 200m
      # memory: 512Mi
persistence:
  enabled: true
  accessMode: ReadWriteOnce
  ## If defined, storageClass: <storageClass>
  ## If set to "-", storageClass: "", which disables dynamic provisioning
  ## If undefined (the default) or set to null, no storageClass spec is
  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
  ##   GKE, AWS & OpenStack)
  ##
  # existingClaim:
  # annotations:
  #  "helm.sh/resource-policy": keep
  # storageClass: "-"
  storageSize: 8Gi

nexusBackup:
  enabled: false
  imageName: quay.io/travelaudience/docker-nexus-backup
  imageTag: 1.2.0
  imagePullPolicy: IfNotPresent
  env:
    targetBucket:
  nexusAdminPassword: "admin123"
  persistence:
    enabled: true
    # existingClaim:
    # annotations:
    #  "helm.sh/resource-policy": keep
    accessMode: ReadWriteOnce
    # See comment above for information on setting the backup storageClass
    # storageClass: "-"
    storageSize: 8Gi

ingress:
  enabled: true
  path: /*
  annotations:
    # NOTE: Can't use 'false' due to https://github.com/jetstack/kube-lego/issues/173.
    kubernetes.io/ingress.allow-http: true
    kubernetes.io/ingress.class: "gce"
    kubernetes.io/ingress.global-static-ip-name: "kubernetes-ingress-static-ip"
    kubernetes.io/tls-acme: true
  tls:
    enabled: true
    secretName: nexus-tls

Please advise.
Thanks!

Hi
I'm using minikube node with insecure registry, and have the same issue. Only difference that i miss the "path: /*" from the ingress config.

@jeff-knurek @TAvardit can you help here? It seems to me this is a misconfiguration of the host-related attributes but I'm not experienced w/ the Helm charts.

Hi @alan-ma-umg something in your configurations seems off - your Nexus domains don't match the SSL domains.
@diasjorge Are you also using GKE and have googleAuth on Nexus-proxy disabled? Can you please share your configuration as @alan-ma-umg did?
@turulb , the path is needed but its configuration might be altered for a different provider than GKE.
I understand that your using minikube. Do you use Nginx ingress for minikube?

In my case I fixed it by adding path: /* to the ingress section, which was not in the recommended settings of the helm chart

I forgot to mention I'm also using GKE. I was using the nexus proxy before but I've disabled it since I had some problems with timeouts with very large uploads

The helm chart was changed to support other providers except for GKE but on the README the comment about the ingress path mention the need to use /* for GKE.
Interesting that you had timeout issues. We are using the proxy without any issues. which size of uploads created the issues and which type of objects?

I was uploading some packages about 500MB, and jetty would timeout since they took longer than 30seconds. I'll try to update to the newest version and retry, if there's a problem I'll make a new issue not to hijack this one.


Adding ability to keep track of number of timers

Added the ability to track the number of active timers on a grain. Useful to see if a timer was set but without wanting to check if the callback had been called.

I've also added a little change to not count disposed timers

Don't think I can merge as it's a protected branch, can you manage the merge when appropriate?


Add About Section

To enhance user experience in the Canva editor, an "About" section should be added. This section would provide users with:
Overview: A brief description of the Canva editor’s purpose and features.
Usage Tips: Quick tips and best practices for maximizing the use of the editor.
Support Information: Guidance on how to access help, tutorials, and customer support.

I like to work with this issue.

About page is already there.


Add a gpiowait.svg alongside gpiowait.odg

I would like to propose the suggestion of converting gpiowait.odg to svg or pdf and adding it alongside the original, as they are a widely recognized vector format.
Otherwise it would be useful adding a note in readme.md pointing towards .odg being a vector file format

The format odg is very common on Linux and several tools can open or convert it:
LibrOffice Draw
MuPDF
ImageMagick (convert gpiowait.odg gpiowait.pdf or convert gpiowait.odg gpiowait.jpg or convert gpiowait.odg gpiowait.png)
I'll add a note to README.md

Done by this commit:
https://github.com/ZerBea/hcxdumptool/commit/21f7eaaf03fd6e7bedd66d2e3192b0c270755397


Revert "fix(vendor-gems): redirect bundler stdout to stderr"

Reverts Homebrew/brew#11479

Review period skipped due to critical label.


Assign SAN manager when adding a Fiber Channel network

When adding a Fiber Channel network using the oneview_fc_network resource, there doesn't seem to be a way to assign a SAN manager to the FC network. On the oneview_fcoe_network resource, there is an attribute for assigning a managed_san_uri, however we cannot find the same attribute for adding the SAN manager to a regular fc network.
Is it possible to assign the SAN manager with the current resource, or is this a feature that may be added at some future point?
Below is a how we have the resource currently configured.
resource "oneview_fc_network" "FCNetwork" {
  for_each = var.Network-Map
  name               = each.value["name"]
  fabric_type        = each.value["fabric_type"]
  type               = each.value["type"]
  initial_scope_uris = [data.oneview_scope.scope_obj.uri]
  bandwidth {
    maximum_bandwidth = each.value["maximum_bandwidth"]
    typical_bandwidth = each.value["typical_bandwidth"]
  }
}

What we would like to do is incorporate the managed_san_uri attribute like this, or something similar.
resource "oneview_fc_network" "FCNetwork" {
  for_each = var.Network-Map
  name               = each.value["name"]
  fabric_type        = each.value["fabric_type"]
  type               = each.value["type"]
  managed_san_uri    = each.value["managed_san"]
  initial_scope_uris = [data.oneview_scope.scope_obj.uri]
  bandwidth {
    maximum_bandwidth = each.value["maximum_bandwidth"]
    typical_bandwidth = each.value["typical_bandwidth"]
  }
}

Could you advise whether this is possible to do currently, or if a feature like this will be made available?

This is fixed in master branch closing it here.
Cofiguration example:
resource "oneview_fc_network" "FCNetwork" {
name               = "TestFCNetworkSAN1"
fabric_type        = "FabricAttach"
type               = "fc-networkV4"
managed_san_uri    =  "/rest/fc-sans/managed-sans/123"
initial_scope_uris = [data.oneview_scope.scope_obj.uri]
bandwidth {
maximum_bandwidth = 10000
typical_bandwidth = 1500
}
}


Add subplot macro for basic subplots

This adds basic subplot support via the new subplots macro.
A basic implementation for that was quite easy, but then I realized that for real subplots it might be justified to have Plot[T] objects as a basis with different T. Therefore I introduced a PlotJson object, which is basically the Plot[T] object albeit with the two fields already converted to JsonNodes. This way we can merge the two Plot[T] of potentially different data types together.
The main part of the creation of subplots is then the (currently pretty static and hacky) combine proc. Since the signature of combine isn't very nice and in my opinion the user doesn't need to know what's needed to create a subplot, I started to write a macro. In the end it's a lot of lines for a single output line of the macro, but well. It's there now. :P
Usage looks like this (assuming we have a plt1: Plot[T], plt2: Plot[U], layout: Layout):
let subplt = subplots:
  baseLayout: layout
  plot:
    plt1
    left: 0.0
    bottom: 0.0
    width: 0.45
    height: 1.0
    # alternatively use right, top instead of width, height
    # single letters also supported, e.g. l == left
  plot:
    plt2
    # or just write a concise tuple, here the
    (0.55, 0.0, 0.45, 1.0)

So it consists of a layout object to be used as the base layout for the whole plot and then several plot blocks. Each plot block then just takes a Plot[T] as the first line and then a description of the plot location. Either as a nameless tuple of the type:
(left, bottom, width, height)
in relative coordinates of the canvas in [0, 1]. Or one can specifically set each of the fields, one per line. That way one may also use right, top instead of width, height (for good measure instead of :, = is also supported, and so are just first letters for each location, i.e. l, b, ...).
Useful sideffect of PlotJson
As a side effect, since PlotJson is now a valid type for show and saveImage one can thus easily extend plotly "on the fly" if a feature isn't available. So for instance if we have some
let plt: Plot[T] = getSomePlot()

and we wish to use a feature that's not in nim-plotly: for example to set the length of the ticks. In plotly this is done via ticklen (https://plot.ly/javascript/reference/#layout-yaxis-ticklen). Now we can just do:
let pltJson = plt.toPlotJson
pltJson["xaxis"]["ticklen"] = 10 # twice as long as default
pltJson.show()

and all should work.
In theory one can also just copy paste some plotly.js code and create a JsonNode via the %* macro and with little change one can even create a plot that way. If this https://github.com/nim-lang/Nim/pull/10037 PR would be merged that would become almost trivial.
Not very useful in general, but for quick prototyping of unavailable features might come in handy.

Will add a line about DomainAlt tomorrow, replace the explicit tuple... in convertDomain and add a few lines of explanations for the macro usage in the example tomorrow. :)

cool! if you specify subplots without explicit domains, does plotly give you a reasonable default (multi) plot?

To be honest, I have no idea as I haven't tried it. But I do know that an alternative to explicit domain setting is the grid field (as in example 1 here: https://plot.ly/javascript/subplots/). If plotly doesn't use a good default, a grid might be a good alternative to use from our end as a default.
I'll give it a try.

Ok, all done now. Add the ability to set a grid aside from manually setting domains (though mixing isn't supported. No clue if plotly even itself supports that).
This is done via a grid block in the macro:
grid:
  rows: 2
  columns: 1

where either is optional. If only one is set, the other is assumed to be 1.
If domains nor a grid definition is given, we now default to a grid, which fits all plots, favoring more columns than rows.

thanks! I actually have been needing this.


Improve ROCm error handling

Decode error messages from hipcc
Warn users if the environment variable is not set at runtime

/test


[BUG-71190] adding druid as part of the rdsConfig

closing because of this https://github.com/sequenceiq/cloudbreak/pull/2215


Update zarr and pad tiles

This PR updates zarr to a pre-release with new decoders and adds a utility function for padding tiles. I used this to get consistently sized tiles from both the zarr and tiff based loaders, as well as come up with a solution for #144 currently.
The example I added to the demo is an ome-zarr image from the omero folks -- however, the upload to our google cloud failed for the highest resolution of the pyramid so I'll need run on O2 before merging.

Last thing I'm noticing is the Overview looks kind of wonky with the new zarr image.  I'll try and take a look into it.

I may just file an issue for that, actually.  I think the issue is deeper.


Cypher parser chokes on "from" property key name

The Cypher parser of the plugin indicates an error in the editor when from is used as property key name in a query. As far as I know, this isn't a reserved keyword as Neo4j accepts the query as-is without throwing an error.
CREATE (:Person)-[:OWNS {from:0, to:9223372036854775807}]->(:Vehicle)

:red_circle: ',', , , integer or '}' expected, got 'from'
CREATE (:Person)-[:OWNS {to:9223372036854775807, from:0}]->(:Vehicle)

:red_circle:  expected, got 'from'
My setup:
Graph Database support plugin version 2.1.2
PhpStorm 2016.2.2
Build #PS-162.2380.11, built on October 24, 2016
JRE: 1.8.0_112-release-287-b3 x86
JVM: OpenJDK Server VM by JetBrains s.r.o
Windows 10 Home edition 64-bit
Neo4j Community Edition 3.0.4
Neo4j Browser version 1.1.8

Seems to be related to #1


Fewer decorators - WIP

Move as much logic out of decorators to preserve spree core behaviour. Ninja a new Stock Estimator into the Stock Coordinator do fetch shipping rates from Easypost

Cool, ta.

This Should be its branch so that projects can still work off of solidus 1.0.2 while waiting for solidus easypost 1.0.0  to be released


chore: update templates to use --no-delegate-c3 for all init commands.

Fixes # [insert GH or internal issue number(s)].
What this PR solves / how to test:
This updates all template READMEs to include --no-delegate-c3 any time that the init command is used. This allows for each template to be initialized as expected in a project folder.
There are also a number of docs fixes in certain templates like: proper heading structure, adding Wrangler sections, and fixing other lint-type errors.
Associated docs issue(s)/PR(s):

[insert associated docs issue(s)/PR(s)]

Author has included the following, where applicable:

[ ] Tests
[ ] Changeset (Changeset guidelines)

Reviewer is to perform the following, as applicable:

Checked for inclusion of relevant tests
Checked for inclusion of a relevant changeset
Checked for creation of associated docs updates
Manually pulled down the changes and spot-tested

Reported this to Adam privately, but it's worth noting before merge that --no-delegate-c3 and --delegate-c3=false don't seem to actually work right now:

Wouldn't the commands have to be changed to use npx wrangler@latest init ... --no-delegate-c3 to get the wrangler init behaviour? But init doesn't support templates like this, does it?
The only way I've been able to get these templates to work in wrangler 3 (without using older create-cloudflare versions), is via npx wrangler@latest generate my-project worker-cobol`.

If it makes more sense to use wrangler generate here, I'm happy to PR that if needed. We still get people running into this problem regularly.

@Cherry that does seem to work better for now. I've updated the templates and the README to reflect that.

Any chance we can get this merged in? 👀 People are still hitting this regularly.


Axios backup file

Description
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

Change Status

[ ] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[x] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?

[ ] Test A
[ ] Test B

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] There are no merge conflicts

Proposed change - async & await for new endpoint, "import".  New users hit endpoint, db call finds them, posts their Instagram data to db, then never run again.  Alternative solution to embedded if/else loops on /update endpoint


update (divide customMarker as customMarkerLeft and customMarkerRight)

This update provides two configurable marker as left and right.

It would be great if you could make this backwards compatible? Now it will break for people using customMarker.

Impossible for me to track the changes when you've changed over 500 lines

just track
TODO:Here added by sadeghipour

sorry for auto code reformat

Please remove it from formatting if I’m gonna review this

updated

Thanks for the fixes, can you also update the example app to showcase this so we at least have some documentation on it. I'm ready to merge this afterwards!

doc added but I'm not sure that is clear enough.


Questions about harcoded value in L2 regularization loss added to the total loss

In the "base" OSVOS implementation shared here, the total loss is computed as follows:
    # Define loss
    with tf.name_scope('losses'):
        if supervison == 1 or supervison == 2:
            dsn_2_loss = class_balanced_cross_entropy_loss(end_points['osvos/score-dsn_2-cr'], input_label)
            tf.summary.scalar('dsn_2_loss', dsn_2_loss)
            dsn_3_loss = class_balanced_cross_entropy_loss(end_points['osvos/score-dsn_3-cr'], input_label)
            tf.summary.scalar('dsn_3_loss', dsn_3_loss)
            dsn_4_loss = class_balanced_cross_entropy_loss(end_points['osvos/score-dsn_4-cr'], input_label)
            tf.summary.scalar('dsn_4_loss', dsn_4_loss)
            dsn_5_loss = class_balanced_cross_entropy_loss(end_points['osvos/score-dsn_5-cr'], input_label)
            tf.summary.scalar('dsn_5_loss', dsn_5_loss)

        main_loss = class_balanced_cross_entropy_loss(net, input_label)
        tf.summary.scalar('main_loss', main_loss)

        if supervison == 1:
            output_loss = dsn_2_loss + dsn_3_loss + dsn_4_loss + dsn_5_loss + main_loss
        elif supervison == 2:
            output_loss = 0.5 * dsn_2_loss + 0.5 * dsn_3_loss + 0.5 * dsn_4_loss + 0.5 * dsn_5_loss + main_loss
        elif supervison == 3:
            output_loss = main_loss
        else:
            sys.exit('Incorrect supervision id, select 1 for supervision of the side outputs, 2 for weak supervision '
                     'of the side outputs and 3 for no supervision of the side outputs')
        total_loss = output_loss + tf.add_n(tf.losses.get_regularization_losses())
        tf.summary.scalar('total_loss', total_loss)

The lesion segmenter uses the same L2 regularization as in the reference implementation. However, the liver segmenter uses the following instead:
        # total_loss = output_loss + tf.add_n(slim.losses.get_regularization_losses())
        total_loss = output_loss + tf.add_n(tf.losses.get_regularization_losses())
        tf.summary.scalar('losses/total_loss', total_loss)

        # total_loss = output_loss + 0.001 * tf.add_n(slim.losses.get_regularization_losses())
        total_loss = output_loss + 0.001 * tf.add_n(tf.losses.get_regularization_losses())

        tf.summary.scalar('losses/total_loss', total_loss)

Why is this 0.001 scaling necessary in the liver segmenter? What procedure did you use to come up with this scaling factor?
Thank you for your help clarifying this!

We used this scaling factor as the range of our loss differed from the range of the loss of OSVOS.

To be perfectly clear, was this a value you chose arbitrarily, or did you use a specific procedure to compute this value?
Thank you again for your help with those implementation details!

We just observed the range of the losses and how different they were compared to OSVOS, and thought that this value was more convenient. We didn't do any hyper-parameter search.

Got it. Thank you for your help!


SlugCI when run from non repo root will create slugci not in the root directory.

No good work around exists, so we now issue well worded warning and exit.  We tell user to either run from root folder of the project or start up in setup mode.


How to run this project

Hello, I want to run this project to try out the UI service with metaflow-ui. I tried the following approaches:
$ docker compose up -d
Error response from daemon: No such image: metadata_service:latest

Is the image private or something like that? I tried to build the metadata-service from the Dockerfile (docker image build -t "metadata-service" -f "Dockerfile.metadata_service") and then use it with the docker compose, but it didn't work. However the production image doesn't seem to have the UI service, at least from what I understand.
I also tried the development buidl:
$ MF_METADATA_PORT=8090 docker compose -f docker-compose.development.yml up -d

I needed to switch ports because 8080 is occupied by Jenkins. This worked, however when I tried to view any website, it returns 404, even when I go inside the container and execute it there.
Can you help me to tell me what I'm doing wrong? I just need to get Metaflow-UI service working to get working Metaflow UI.

Repo: Tried both current master and last release repo.
Docker version: 23.0.0
System: Rocky Linux 8

You can pull the image from docker hub: https://hub.docker.com/r/netflixoss/metaflow_metadata_service. You build and tag the image locally and then specify it in the docker-compose.yml. For testing purposes you can just specify the image location as the remote url. Example below:
version: "3"
services:
  metadata:
    image: "netflixoss/metaflow_metadata_service:latest"
    restart: always
    container_name: "metadata_service"
    ports:
      - "${MF_MIGRATION_PORT:-8082}:${MF_MIGRATION_PORT:-8082}"
      - "${MF_METADATA_PORT:-8080}:${MF_METADATA_PORT:-8080}"
    volumes:
      - .:/code
    environment:
      - MF_METADATA_DB_HOST=db
      - MF_METADATA_DB_PORT=5432
      - MF_METADATA_DB_USER=postgres
      - MF_METADATA_DB_PSWD=postgres
      - MF_METADATA_DB_NAME=postgres
      - MF_MIGRATION_ENDPOINTS_ENABLED=1
      - MF_METADATA_PORT=${MF_METADATA_PORT:-8080}
      - MF_METADATA_HOST=${MF_METADATA_HOST:-<IP_ADDRESS>}
      - MF_MIGRATION_PORT=${MF_MIGRATION_PORT:-8082}
    links:
      - db
  db:
    image: "postgres:11"
    restart: always
    container_name: "my_postgres"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
    ports:
      - "5432:5432"
    volumes:
      - my_dbdata:/var/lib/postgresql/data2
volumes:
  my_dbdata:


⚠ Mobitopup has degraded performance

In 8e3debf, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 4480 ms

Resolved: Mobitopup performance has improved in c373acd.


DWOC config.workspace.containerSecurityContext not being applied to containers added via routingClass

Description

When the DWOC defines a containerSecurityContext:
    containerSecurityContext:
      allowPrivilegeEscalation: true
      capabilities:
        add:
          - SETGID
          - SETUID

the containerSecurityContext is not applied to the workspace containers that are added via routing class.
This behaviour is most easily reproduced with Eclipse Che (which uses the che routing class), see https://github.com/eclipse-che/che/issues/22747.
In the case of Eclipse Che, the workspace container that does not have the containerSecurityContext set, is the che-gateway conatiner.
Expected behavior

The  containerSecurityContext  should be applied to all workspace containers
Additional context

Fixed by https://github.com/devfile/devworkspace-operator/pull/1358


safe mounts

Should return the list of all accessible k/v mounts, along with their versions.

Doesn't safe vault secrets list -detailed work?


Recovery mechanism on update

When an update fails for whatever reason, redeploy the old job.
For this we have to monitor how the new job behaves for a little while in case of issues just after startup (e.g. Inconsistent state)

Initial investigation results
We (@mrooding and I) found some issues with this. Essentially this boils down to the following. In order to recover we need to:

Know which JAR is currently deployed to redeploy that in case of a failure
Know which arguments were given to current running job

The first is difficult since the Flink API doesn't return this information anywhere, but could be done by for instance storing all JARs uploaded to the Flink cluster and looking for a matching job name (See option 1 below).
The second though is a larger issue as this cannot be found anywhere else in the API. This leads us to believe that to implement this feature properly, we'd have to maintain state in our deployer (last deployed jar with run arguments etc..).
Solution to Problem 1
Currently our deployer is making the following assumptions:

Your job name consists of 2 parts (e.g. "Aggregate All The Data 1.0.2"):

A job basename that defines what job this is (e.g. "Aggregate All The Data")
A version number that changes across versions for this job (e.g. "1.0.2")

We use this assumption to determine which of the potentially multiple running jobs needs to be updated.
Currently we've found 2 solutions to Problem 1:
Option 1: JARs on Flink
All JARs uploaded to Flink are available on the Flink cluster(requires to persist web.upload.dir). This allows us to determine the running JAR as follows:

Get http://localhost:8081/jobs/[JOBID] (get "name")
Find JAR that was running
a. list all jars (http://localhost:8081/jars, get "files.id")
b. for all jars find name (http://localhost:8081/jars/[JAR_ID]/plan, get "plan.name")
c. Get JAR_ID for jars name that matches job name (JAR_ID is also the name of the file stored by Flink)

Option 2: JARs remote
All JARs build are stored in a remote repository (e.g. Artifactory). The user has to provide the JAR that he wants to use as a fallback in case the update fails.
To ensure that the fallback image is the same as the currently running image, we could check that the JARs match by matching the job names they list. Possibly we could break when these don't match.


Backups require admin permission for GCS

Hi!
I am trying to setup backup for PSQL db using KubeDB.
Here is my backup config:
  backupSchedule:
    cronExpression: "@every 6h"
    storageSecretName: gcs-secret
    gcs:
      bucket: finrazor-postgres-backup

I created gcs-secret and bucket finrazor-postgres-backup but when I am trying to apply this config to cluster I get the following error:
Error from server (Forbidden): error when applying patch:
{"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"kubedb.com/v1alpha1\",\"kind\":\"Postgres\",\"metadata\":{\"annotations\":{},\"name\":\"finrazor-postgres\",\"namespace\":\"default\"},\"spec\":{\"backupSchedule\":{\"cronExpression\":\"@every 6h\",\"gcs\":{\"bucket\":\"finrazor-postgres-backup\"},\"storageSecretName\":\"gcs-secret\"},\"doNotPause\":true,\"replicas\":2,\"standbyMode\":\"hot\",\"storage\":{\"accessModes\":[\"ReadWriteOnce\"],\"resources\":{\"limits\":{\"storage\":\"5Gi\"},\"requests\":{\"storage\":\"500Mi\"}},\"storageClassName\":\"standard\"},\"version\":\"10.2\"}}\n"}},"spec":{"backupSchedule":{"cronExpression":"@every 6h","gcs":{"bucket":"finrazor-postgres-backup"},"storageSecretName":"gcs-secret"}}}
to:
Resource: "kubedb.com/v1alpha1, Resource=postgreses", GroupVersionKind: "kubedb.com/v1alpha1, Kind=Postgres"
Name: "finrazor-postgres", Namespace: "default"
Object: &{map["metadata":map["creationTimestamp":"2018-07-23T18:13:34Z" "generation":'\x01' "name":"finrazor-postgres" "resourceVersion":"42517" "clusterName":"" "finalizers":["kubedb.com"] "namespace":"default" "selfLink":"/apis/kubedb.com/v1alpha1/namespaces/default/postgreses/finrazor-postgres" "uid":"1cab8772-8ea4-11e8-95c0-42010a800076"] "spec":map["databaseSecret":map["secretName":"finrazor-postgres-auth"] "doNotPause":%!q(bool=true) "replicas":'\x02' "standbyMode":"hot" "storage":map["accessModes":["ReadWriteOnce"] "resources":map["limits":map["storage":"5Gi"] "requests":map["storage":"500Mi"]] "storageClassName":"standard"] "version":"10.2"] "status":map["creationTime":"2018-07-23T18:13:34Z" "phase":"Running"] "apiVersion":"kubedb.com/v1alpha1" "kind":"Postgres"]}
for: "k8s/postgres.yml": admission webhook "postgres.validators.kubedb.com" denied the request: not found

Since error message is not so informative I cannot understand what the problem is. Could you please help me to find out the root cause?
PS. My role setup is based on new GCS roles: ObjectCreator and ObjectViewer.

I have looked into this. This is what I found.
We used to check for bucket access via ValidatingWebhook for db crds. The check process will confirm 2 things:

Bucket specified in db crd exists.

Write access to bucket is provided. This is done by first writing a test file and deleting it. We delete the file so that such test files don't clutter to bucket.

If you look at the IAM docs for GCS buckets, you will find this:

This is where the problem is. Checking write access, itself requires admin permission. :(

Solution:
This write access check is now removed from ValidatingWebhook and moved to actual Snapshot job. So, objectAdmin permission is still required.
The proper fix will be to use to the testIamPermissions. This will require pluming this through the Stow library.

Should be fixed in master after revendoring.


Requires internet connection

I am uncomfortable allowing this program to download files from the the internet in the background.
Can you please pack all the preview images into a file that can be downloaded and used locally?

You can disable this feature in the settings.
All images are available here: https://github.com/AkiniKites/hzd-model-db
Just download the img folder and put it into [Program Folder]\data\


Watch

Amends needed for the Watch App, notably the resetTokens() function and include secret in Token.toURL(). https://github.com/mattrubin/Authenticator/issues/151

Current coverage is 91.22% (diff: 54.54%)

Merging #94 into master will decrease coverage by 1.14%

@@             master        #94   diff @@
==========================================
  Files             6          6
  Lines           367        376     +9
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            339        343     +4
- Misses           28         33     +5
  Partials          0          0

Powered by Codecov. Last update 854257b...67a01da

I merged the watchOS framework separately in #96, so that the functionality changes can be considered and reviewed independently of the added target.

Cool. I rebase now.

I understand why these changes are needed to support an Authenticator watchOS app, but I'm hesitant to add them. My goal with the OneTimePassword library has been to build a (mostly-)safe-by-default library for managing OTP tokens, and both of the changes here seem to add "sharp edges" that I'm hesitant to include. In particular, I'm concerned about changing the behavior of the url serialization to include the secret key among the less sensitive attributes.
Looking closely at these modifications, I believe both of them could be implemented as Authenticator extensions to OneTimePassword types. This would allow for the needed functionality without adding new and potentially risky functionality to the shared library.
I'll open a PR on the Authenticator watch app branch shortly.

Okay. I'll try to refactor it as an extension. The question is whether we should try to have the URL serialization extensible to be able to include the secret in the extension, or invent a completely different serialization format. Part of that consideration is elaborated in the original github issue.

Oh. You already did it! :D

I'll give some thought to a better way of serializing between the watch and the phone, and reply on the original issue.
Closing this now that the changes have been refactored into https://github.com/mattrubin/Authenticator/pull/154.


fix: Fall of the error toasts wall

Description
By removing the current default behaviour of toast error messages we are going to bid adieu to the wall of toast message errors that happen when a user incurs any errors during loading of apps or pages.
Exceptions that will still show toasts:

Admin Settings errors
Home Page errors
Git errors
Appsmith internal errors
Datasource Configuration errors

EE PR: https://github.com/appsmithorg/appsmith-ee/pull/4942
Automation
/ok-to-test<EMAIL_ADDRESS>:mag: Cypress test results

[!CAUTION]
🔴 🔴 🔴 Some tests have failed.
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/10680458382
Commit: 3b5a65bfbbca4d4f3bd50a8f3b4fd3c908f3fd0f
Cypress dashboard.
Tags: @tag.All
Spec:
The following are new failures, please fix them before merging the PR:
cypress/e2e/Regression/ClientSide/Git/GitImport/GitImport_spec.js
cypress/e2e/Regression/ClientSide/Git/GitWithJSLibrary/GitwithCustomJSLibrary_spec.js
cypress/e2e/Regression/ClientSide/Linting/BasicLint_spec.ts
cypress/e2e/Regression/ClientSide/Widgets/TableV2/columnTypes/Select1_spec.ts
cypress/e2e/Regression/ServerSide/QueryPane/S3_2_spec.ts
List of identified flaky tests.
Tue, 03 Sep 2024 10:59:49 UTC

Communication
Should the DevRel and Marketing teams inform users about this change?

[x] Yes
[ ] No

Summary by CodeRabbit
Summary by CodeRabbit

New Features

Improved error handling for various actions related to JavaScript collections and plugins, allowing for more detailed error reporting.
Enhanced error management structure within sagas, centralizing error information in Redux state rather than through immediate user notifications.
Introduced new functions for managing error notifications and debugger visibility.
Updated the method for opening the debugger interface, enhancing clarity and functionality.
Added new properties for error page elements to improve error handling in tests.

Bug Fixes

Streamlined error handling processes, reducing reliance on toast notifications and improving clarity in error reporting.

Refactor

Restructured error handling logic across multiple sagas to utilize Redux actions for error reporting, enhancing maintainability and consistency.
Renamed methods related to debugger functionality for improved clarity and maintainability.
Shifted from UI-based error notifications to more reliable debug assertions in testing.

@hetunandu Can you check the failing cypress tests?


Integration

Project Milestone: Blog app - integration specs for views and fix n+1 problems
In this PR the following was implemented:
Highlights:
Integration specs
Use Capybara to write integration tests for each view in your project.
User index page:
I can see the username of all other users.
I can see the profile picture for each user.
I can see the number of posts each user has written.
When I click on a user, I am redirected to that user's show page.
user show page:
I can see the user's profile picture.
I can see the user's username.
I can see the number of posts the user has written.
I can see the user's bio.
I can see the user's first 3 posts.
I can see a button that lets me view all of a user's posts.
When I click a user's post, it redirects me to that post's show page.
When I click to see all posts, it redirects me to the user's post's index page.
User post index page:
I can see the user's profile picture.
I can see the user's username.
I can see the number of posts the user has written.
I can see a post's title.
I can see some of the post's body.
I can see the first comments on a post.
I can see how many comments a post has.
I can see how many likes a post has.
I can see a section for pagination if there are more posts than fit on the view.
When I click on a post, it redirects me to that post's show page.
Post show page:
I can see the post's title.
I can see who wrote the post.
I can see how many comments it has.
I can see how many likes it has.
I can see the post body.
I can see the username of each commentor.
I can see the comment each commentor left.

Hy @TedLivist Thank you for reviewing my work changes were made as requested.
Can you kindly please check for me if they're passing on your end now or not. Thank you in advance 👍

Hy @Mihndim2020 Thank you for reviewing my PR 👍


Documentation to set up a private instance

Create a manual on how to set up a private instance of the bot.
If anyone wants to help with this, let me know here or on on discord :)

Search is your friend. Already been addressed
On Wed, Aug 28, 2019 at 12:51 PM Matthias Nadler<EMAIL_ADDRESS>wrote:

Create a manual on how to set up a private instance of the bot.
If anyone wants to help with this, let me know here on on discord :)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/matnad/pollmaster/issues/28?email_source=notifications&email_token=AIPE4Q3E7LHDCUOSI7KNKALQG23JBA5CNFSM4IROFRK2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HH7YC4A,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIPE4Q6JVTBO5M2VNVZZRL3QG23JBANCNFSM4IROFRKQ
.

I would like to move and expand the information on this in the wiki: https://github.com/matnad/pollmaster/wiki
That way it would be easily accessible for new users and I would like to grow the wiki a bit in general.

@matnad Are there any initial steps I can follow to set up pollmaster which I can refer to?
I have installed the requirements and am not sure what I should have in secrets.py.
Presently, these are the steps I have followed
conda create --name pollmaster
conda activate pollmaster
git clone https://github.com/matnad/pollmaster.git
cd pollmaster
conda install pip
~/miniconda3/envs/pollmaster/bin/pip install -r requirements.txt
~/miniconda3/envs/pollmaster/bin/pip install discord
I am also looking at using a docker container for mongodb:
https://github.com/docker-library/mongo/blob/ebd79727e4e77210272ec55c8b22b17877bfd29a/3.4/Dockerfile

@matnad I saw the discussion on https://discordapp.com/channels/544514197262696469/544543818712875009
Is someone working on this already?

Your first steps look good!
You can find infos about the secret file here #24.
Zylek started on this issue, but from what I can tell he will write the documentation for Ubuntu without anaconda.
For the future I would like to have all documentation and FAQ in the wiki (https://github.com/matnad/pollmaster/wiki), and there it is also very easy for more than one person to work on a doc.
So if you want to help, that would be much appreciated and you can always hit me up here or on discord.

Thank you @matnad .
I ran mongodb docker using docker run -it -d -p 27017:27017 --name mongodb mongo.
I have specified the following in secrets:
mongo_db = "mongodb://localhost:27017/pollmaster"
bot_token as generated on discord
mode = "development"
I executed pollmaster.py and can see the following:
AsyncIOMotorDatabase(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=False, driver=DriverInfo(name='Motor', version='2.0.0', platform=None)), 'pollmaster'))
Servers verified. Bot running.
I am unable to figure out my next steps.

good, this looks like the bot is running and connected to discord and the database. Next you need to invite it to your server. There are some instructions on how to do that here: https://discordpy.readthedocs.io/en/latest/discord.html
To figure out what permissions the bot needs, check the invite link for pollmaster which you can find here: https://discordbots.org/bot/444514223075360800
let me know if that works out

@matnad Would I need to create a server?

@matnad Next I created a server, created the invite link https://discordapp.com/api/oauth2/authorize?client_id=client_id&permissions=0&scope=bot&permissions=1073867840
Then I pasted this url in a browser. This gave an option to add a bot to the server I created. I clicked authorize.
I can now see a bot in my discord channel.

this invite link is not working for me, but if the bot is on your server everything should be set up.
Try commands like "pm!help" to see if it is working.

@matnad  Yes, it is working. Are there any more steps left to be followed?

Nope! That is it. Everything should be smooth sailing from here.
All that's left is maybe some info like where to find and read the logfile, etc

@matnad There is a log file pollmaster.log in the pollmaster directory. Anything else that needs to be listed?

@matnad
I have the following in the secrets.py file in the essentials directory.
Is this fine?
class SECRETS:
dbl_token = ""
mongo_db = "mongodb://localhost:27017/pollmaster"
bot_token = "bot_token"
mode = "development"

@matnad Can we have a sort of template for the secrets.py file which users can fill in? Or should it be in the documentation itself?

that should be in the documentation itself with a short description of what goes in each field

@matnad I have created a pull request. Please check.


Changing default client port to 7777 for master

Client port for users is defaulting to 50101 when it should be 7777. I believe this is about local tests.

bors merge


[FEA] user tools qualification node recommendation should include more information and include number of gpus

Is your feature request related to a problem? Please describe.
We are recommending a node type to use qualification for migrating apps from cpu to gpu. We should also be recommended the number of GPUs to use with that.  This will likely vary depending on the platform being used and it could also change the number of instances we recommend.  For instance lets say cpu is using 64 core boxes with 8 execs on each. If on that CSP we can't get an 8 GPU machine perhaps we alter that to use 8 smaller machines.
Along with this figure out if we want this in an output file or what format would be easiest for users.
with https://github.com/NVIDIA/spark-rapids-tools/issues/924 there is a file but its in intermediate directory.

note this is followup to https://github.com/NVIDIA/spark-rapids-tools/pull/1188
item 12 in https://github.com/NVIDIA/spark-rapids-tools/issues/1152... with that pr we will have the output on the scala side but we need to them put it into the python recommendation and possibly into stdout if we decide

the scala code recommendates after the  pr #1188 Looks like:
rapids_4_spark_qualification_output/rapids_4_spark_qualification_output_cluster_information.json
[ {
  "appName" : "NDS - Power Run",
  "appId" : "application_1709275675195_0233",
  "eventLogPath" : "file:/home/xxx/eventlog-cpu-sf10k-query24_part2",
  "clusterInfo" : {
    "vendor" : "dataproc",
    "coresPerExecutor" : 16,
    "numExecsPerNode" : 2,
    "numExecutorNodes" : 4,
    "executorHeapMemory" : 16384,
    "driverHost" : "xxx-dataproc-cpu-ssd-m.c.xxx.internal"
  },
  "recommendedClusterInfo" : {
    "vendor" : "dataproc",
    "coresPerExecutor" : 16,
    "numExecutors" : 8,
    "numExecutorNodes" : 4,
    "numGpus" : 2,
    "executorInstance" : "n1-standard-32"
  }
} ]

The output to stdout can include the cluster start command, but only if a single cluster is used, not per app.
gcloud dataproc clusters create $CLUSTER_NAME \
    --image-version=2.1.41-debian11 \
    --region us-central1 \
    --zone us-central1-a \
    --master-machine-type n1-standard-16 \
    --num-workers 4 \
    --worker-machine-type n1-standard-32 \
    --num-worker-local-ssds 2 \
    --enable-component-gateway \
    --subnet=default \
    --initialization-actions=gs://goog-dataproc-initialization-actions-us-central1/spark-rapids/spark-rapids.sh \
    --worker-accelerator type=nvidia-tesla-t4,count=1 \
    --properties 'spark:spark.driver.memory=50g'

Other then that the python code will be printing the node recommendation in the top level candidate table.
We then also have the python code print out the cluster recommendation (if using a single cluster, doesn't work with per app) in file:
intermediate_output/cluster_shape_recommendation.json
[
  {
    "clusterName": "default-cluster-name",
    "sourceCluster": {
      "driverInstance": "n1-standard-16",
      "executorInstance": "n1-standard-32",
      "numExecutors": 4,
      "gpuInfo": {
        "device": "nvidia-tesla-t4",
        "gpuPerWorker": 1
      },
      "additionalConfig": {
        "localSsd": 2
      }
    },
    "targetCluster": {
      "driverInstance": "n1-standard-16",
      "executorInstance": "n1-standard-32",
      "numExecutors": 4,
      "gpuInfo": {
        "device": "nvidia-tesla-t4",
        "gpuPerWorker": 1
      },
      "additionalConfig": {
        "localSsd": 2
      }
    }
  }
]

as you can see these don't all match. The python side needs updated

After demo yesterday and feedback from other perhaps we should adjust tco stdout a little to point to a metadata file that then has all the pointers and the node recommendation specifics... So maybe something like this:
 {
  "appName" : "NDS - Power Run",
  "appId" : "application_1709275675195_0233",
  "eventLogPath" : "file:/home/tgraves/runspace/qualEventLogs/dataproc-21/cpu/eventlog-cpu-sf10k-query24_part2",
  "speedup": "Large",
  "fullConfFileLoc": xxx/yyy,
  "ConfigBreakDownFileLoc": xxx/ssss,
   "targetCluster": {
      "driverInstance": "n1-standard-2",
      "executorInstance": "n1-standard-2",
      "numExecutors": 2,
      "gpuInfo": {
        "device": "nvidia-tesla-t4",
        "gpuPerWorker": 1
      },
      "additionalConfig": {
        "localSsd": 2
      }
    }
}

stdout might look like:
+----+-----------------------+--------------------------------+-----------------+------------------+-------------------------------------+------------------------------------+
|    | App Name              | App ID                         | Estimated GPU   | Qualified Node   |  Recommendation Specifics*                      |
|    |                       |                                | Speedup         | Recommendation   |                      |
|    |                       |                                | Category**      |                  |                                    |
|----+-----------------------+--------------------------------+-----------------+------------------+-------------------------------------+------------------------------------|
|  0 | NDS - Power Run       | application_1709275675195_0233 | Large           | n1-standard-2    | application_1709275675195_0233.json |
|  1 | NDS - transcode - orc | application_1716441747790_0001 | Large           | n1-standard-2    | application_1716441747790_0001.json |
+----+-----------------------+--------------------------------+-----------------+------------------+
* Metadata for full recommendation specifics can be found in: qual_20240718205358_38DCc98F/qualification_metadata_summary.json


Release Google.Cloud.Dlp.V2 version 4.11.0

Changes in this release:
New features

Org-level connection bindings (commit 2268fa6)
GRPC config for get, list, and delete FileStoreDataProfiles (commit 2268fa6)
Add refresh frequency for data profiling (commit 2268fa6)

Documentation improvements

Replace HTML tags with CommonMark notation (commit 9eb36ce)
Small improvements (commit 2268fa6)

Created release for Google.Cloud.Dlp.V2-4.11.0


Yatin: Watch 1283637-P

Yatin requests the watch of the watch_keyword 1283637-P. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

1283637-P has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Makyen in Charcoal HQ


Investigate hail size plugin

Late in the autumn release, I spotted that the hail size data being generated on the global domain were all zero, with a knock-on dearth of non-zero data in the hail fraction and hail accumulation data. Limited investigation showed that the method for deriving the pressure of the 268K isotherm was returning mostly missing data instead of mostly valid data. This uses the external stratify module.
Acceptance criteria:

Issue understood and resolved
Output hail size for any given model run of global data contain some non-zero data.

A bit of digging into data in a notebook has revealed the following insight: Temperature on pressure levels include some missing data points, represented by nan. These probably occur everywhere where the near-surface pressure levels are actually below the modelled surface. If I omit these points when calling the stratify.interpolate method, I get the result I expect.
Therefore, I need to add handling of missing, masked or nan values to the appropriate plugin.

I have code that I think works. Now I need an end-to-end suite test to show that large hail are generated. The fact that the acceptance test data have not changed gives me hope.

Suite test running in my account with the name imengl_hail. (Failures are because I manually killed some tasks when I realised that I hadn't installed the code from my PR!)
The result is hail! This is realization 0 from the 18Z run 25th Jan. The maximum hail stone size is 120 mm. All zero values are coloured white, so the non-zeroes are easier to see.


Mouseleave is not fired when v-for list updated

Version
2.6.10
Reproduction link
https://jsfiddle.net/p5goevhL
Steps to reproduce

Hover second element
Hold your cursor for 1 second

What is expected?
When first element is removed, second should fire mouseleave event and delete itself from hovered array
What is actually happening?
Second element's mouseleave event is not triggered

This bug only happens when new items array length is equal or greater than the old one. In my demo there is a "working" button to test that.

hey, thanks for the demo but it seems to be working fine.
I change the element being hovered to the first one to see the array grow (I think that's what you meant) but if the element gets removed it never gets to trigger the mouseleave event
When dealing with events, remember Vue only add event listeners, it's very close to vanilla js. You may be encountering a problem that is related to how things work in the browser

@posva, thank you for your time!

if the element gets removed it never gets to trigger the mouseleave event

I am absolutely agree with that, but could you clarify a little bit more what is going on behind the scenes when [1,2,3] array is replaced by [2,3,4] or at least point to related docs section? Because that is Vue-specific part. As I supposed, the 2nd element is not destroyed but simply is moved to the left after 1nd element destroying, preserving all listeners, because elements are keyed, thus mouseleave should be triggered (tested in plain JS). Am I wrong?
Why this is working for [1,2,3] -> [2,3] and fail for [1,2,3] -> [2,3,4] or [1,2,3] -> [2,3,4,5]?

Why this is working for [1,2,3] -> [2,3] and fail for [1,2,3] -> [2,3,4] or [1,2,3] -> [2,3,4,5]?

but in you jsfiddle both are working. The first element is always the one being destroyed because you keyed the elements (which is good). If you need help, please use the appropriate channels like the forum and the chat

@posva I just realized now that my demo works on Chromium browser and does not work on Firefox which I am using. That is why we had a little misunderstanding.
Is it something that Vue completely cannot deal with?

I see
I gave it another look, and what happens is that the first scenario works because we are removing an element before the one we highlight, so the second element is never removed from the dom, only the first one and the second effectively moves. On the second scenario though, elements are removed and added once again: Vue patching mechanism is different regarding what elements are being modified. There is an open issue about it but I'm struggling to find it.
The thing is, mouseleave doesn't seem to trigger after removal on Chrome either. So the fact it works in chrome is just a coincidence maybe related to how chrome deals with dom insertions. My point is that the approach you are taking is the one causing the problem. Maybe listening to mouseleave isn't enough, you also need to listen for element removal