Network analysis

This issue is where we'll discuss the network analysis component. We can post graphs, code snippits, and brainstorms.
The network analysis project aims to find cluster of co-occurrence between departments, manufacturers, suppliers, product types, etc.
Project lead is @dariusmehri along with @nlin3330

Just had a potential idea for this project. On top of using co-occurrence to build graphs, we could define similarities between departments based on their seasonal purchasing. E.g., if I plot the average number of POs per department for each week of the year, you could get a plot like this.
X-axis is time, Y-axis is dept

Then, you can build this into a correlation matrix like this:

Then you could use the above plot to create edges between departments and see what falls out (there already looks to be some clear clustering here).
Just a thought

I think this is a great idea!
Anthony
On Mon, Mar 16, 2015 at 9:29 AM, Chris Holdgraf<EMAIL_ADDRESS>wrote:

Just had a potential idea for this project. On top of using co-occurrence
to build graphs, we could define similarities between departments based on
their seasonal purchasing. E.g., if I plot the average number of POs per
department for each week of the year, you could get a plot like this.
X-axis is time, Y-axis is dept
[image: image]
https://cloud.githubusercontent.com/assets/1839645/6670878/b061af00-cbbe-11e4-8569-d5d2b53a9f8d.png
Then, you can build this into a correlation matrix like this:
[image: image]
https://cloud.githubusercontent.com/assets/1839645/6670895/d185902a-cbbe-11e4-89a8-e15e9ffb99be.png
Then you could use the above plot to create edges between departments and
see what falls out (there already looks to be some clear clustering here).
Just a thought
—
Reply to this email directly or view it on GitHub
https://github.com/berkeley-dsc/purchasing/issues/7#issuecomment-81777889
.

--
Anthony Suen

Can you show the legend of the color code for the first graph(the color code for the second one is the correlation)? What does the bar chart with the lines on the top represents?
It is interesting to see that there is high correlation in the middle of the matrix. Maybe we can coordinate the seasonal buying among these departments.

Ah good point @kaiweitan, the color code is actually relatively arbitrary. Matplotlib chooses the colors to accentuate the differences in the data, so in this case "white" isn't necessarily 0. When we make a final output of this, then we will make sure to get the colors right.
For the second big correlation matrix, it's currently sorted according to the clustering trees that you see on the margins. We could define "cuts" of those trees as clusters, though doing this is a bit of a dark art. Definitely worth looking into.

Quick update on the network analysis. I managed to subset the data by months and the graph now looks much cleaner. However, it still doesn't mean much without labels. The next step for me would be to color code the difference between suppliers and departments as well as add in labels.

Very cool - we could choose different uses for colors. E.g., color code by manufacturer or supplier ID, rather than their category. That way we could see which organizations are persistently connected to others across time.

hi nick, nice, but can you explain a bit how you subsetted by months? the
dataset you have seems small, you mean it is for only one month? if so,
which one?
one way to clean up the network graph is to remove nodes with centrality =
0, or with one tie, these ties are not of interest anyway and can be dropped
darius
On Thu, Mar 19, 2015 at 11:53 AM, nlin3330<EMAIL_ADDRESS>wrote:

Quick update on the network analysis. I managed to subset the data by
months and the graph now looks much cleaner. However, it still doesn't mean
much without labels. The next step for me would be to color code the
difference between suppliers and departments as well as add in labels.
[image: 3months]
https://cloud.githubusercontent.com/assets/7124729/6738328/8998aa46-ce2e-11e4-81d0-3c7f93f86793.png
—
Reply to this email directly or view it on GitHub
https://github.com/berkeley-dsc/purchasing/issues/7#issuecomment-83716261
.

--
Darius Mehri
Ph.D. Candidate, Sociology
University of California, Berkeley

Hi Darius,
Basically I converted the creation_time variable into a datetime variable which allows ease in specifying a range of dates. For the graph this was the first three months of the current data (1/1/2012-3/1/2012).

hi nick, i see, i did the same exact thing for 2013, there is some issue
with the dataset you are working with, the number of transactions is too
low (i.e, it looks like there are only a few hundred transactions when
there should be a about a hundred thousand or more), darius
On Thu, Mar 19, 2015 at 2:47 PM, nlin3330<EMAIL_ADDRESS>wrote:

Hi Darius,
Basically I converted the creation_time variable into a datetime variable
which allows ease in specifying a range of dates. For the graph this was
the first three months of the current data (1/1/2012-3/1/2012).
—
Reply to this email directly or view it on GitHub
https://github.com/berkeley-dsc/purchasing/issues/7#issuecomment-83772275
.

--
Darius Mehri
Ph.D. Candidate, Sociology
University of California, Berkeley

if you used drop_duplicates, there is a chance you may be throwing out too
much data
On Thu, Mar 19, 2015 at 2:53 PM, Darius Mehri<EMAIL_ADDRESS>wrote:

hi nick, i see, i did the same exact thing for 2013, there is some issue
with the dataset you are working with, the number of transactions is too
low (i.e, it looks like there are only a few hundred transactions when
there should be a about a hundred thousand or more), darius
On Thu, Mar 19, 2015 at 2:47 PM, nlin3330<EMAIL_ADDRESS>wrote:

Hi Darius,
Basically I converted the creation_time variable into a datetime variable
which allows ease in specifying a range of dates. For the graph this was
the first three months of the current data (1/1/2012-3/1/2012).
—
Reply to this email directly or view it on GitHub
https://github.com/berkeley-dsc/purchasing/issues/7#issuecomment-83772275
.

--
Darius Mehri
Ph.D. Candidate, Sociology
University of California, Berkeley

--
Darius Mehri
Ph.D. Candidate, Sociology
University of California, Berkeley

hey @nlin3330 it looks like you worked on the color-coding stuff in a recent commit...do you have any interesting output / plots from that analysis, or still a work-in-progress?

hey guys, i am back online to work on the project, sorry again for the absence, my objective is by the end of the week to get the group some nice network graphs and some hard data, nick is away all week (he is out of the country), but i will be in touch with him on and off
here are some of the plans:

i am going to try to trim out the nodes that have only one tie, this should bring down the clutter by a lot, if not then i will figure out a way to reduce it more

did you guys get the department codes yet? the reason i am asking is that in addition to the time dependent analysis, i think it will be useful to compare the structure of transactions by field/ and or department, i.e. compare the hard sciences,  to engineering to the social sciences, and so on, i expect we can uncover some structural differences that will be very interesting.

get some more hard numbers (centrality, coherence, etc) and graph over time


Presenatation Tables for Isle of Wight measure are not displaying

When breaking down the presntation on the "High Cost Drugs for Erectile Dysfucntion" the information does not display. I have check a few other CCGs and different measures (for Isle of Wight) and it seems to work ok.

Hi @brianmackenna, thanks for the issue.  Please could you always try to include a URL in bug reports like this?
I can reproduce this on any "Presentations contributing to variation" page for a CCG or practice for sildenafil (eg https://openprescribing.net/measure/sildenafil/ccg/10L/), but not for keppra (eg https://openprescribing.net/measure/keppra/ccg/10L/).
The error text is "DataTables warning: table id=numerator_breakdown - Ajax error. For more information about this error, please see http://datatables.net/tn/7", so I'll look into references to numerator_breakdown.

https://datatables.net/manual/tech-notes/7 says that the "error can be triggered if the server responds with anything other than a valid HTTP 2xx response".
The page makes a request to https://openprescribing.net/api/1.0/measure_numerators_by_org/?org=10L&measure=sildenafil&format=json&_=1538640744359, which returns a 500.
This is the error in Sentry.
ProgrammingError: column "month" does not exist
LINE 32: ...esentation_code NOT LIKE '0704050Z0AAACAC%')  AND month <'20...
                                                              ^

So it looks like there's something up with the SQL in sildenafil.json.

I guess the fix is to tweak this further to support the fact the month column also has a different name between bigquery and postgres. Bleurgh!
https://github.com/ebmdatalab/openprescribing/blob/master/openprescribing/api/views_measures.py#L92-L98

The problem is in the way that we're reusing the numerator_where field of the measure definition.
The numerator_where field is designed for querying the normailised_prescribing_standard table in BQ, but we're also using it to query the frontend_prescription Postgres table in the measure_numerators_by_org API view.
normailised_prescribing_standard has a field called month, while frontend_prescription doesn't -- but it does have a processing_date field.
There's already some jiggery-pokery to rename ... and Seb's just written what I was writing up so I'll leave it at that and make the fix.


Your project can't have Grapevine in its name!

First, thanks for library.
I have lost however some time before I found some really annoying issue.
I wanted to test Grapevine library and created a project which I called... GrapevineTest. Not very original, isn't it?
When I tried to add my own code for REST incoming messages it didn't work. I used your example and it didn't work:
[RESTRoute(Method = HttpMethod.GET)]
public void HandleAllGetRequests(HttpListenerContext context)
{
this.SendTextResponse(context, "GET is a success!");
}

After a long search  and being completely stupid why it doesn't work I found this:
private Dictionary<string, RESTResource> LoadRestResources()
{
....
        foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
        {
            if (assembly.FullName.Matches(@"^(microsoft|mscorlib|vshost|system|grapevine)")) { continue; }

For my project assembly.FullName was GrapevineTest so the library skipped it. When I renamed my project it began to work.
Not a big problem, but I'd like to warn the others :)

Good catch.
I was going for efficiency here by not traversing assemblies I expected would both be large AND not contain the methods I was after. All of those are pretty safe bets - except the last one.
I think the only question left is: would you consider this a defect that should be fixed? I'm leaning towards "yes", but I'd like to hear your opinion.

I think the only question left is: would you consider this a defect that should be fixed? I'm leaning >towards "yes", but I'd like to hear your opinion.

Thanks for an answer.
Yes, seeing a fix would be nice. If it happened to me, it could happen to someone else too. And it shouldn't be a big work.


Teams + SSO: Update OAuthcard channel support and return 412 instead of 409 on sso fail

Pull Request Test Coverage Report for Build 140781

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.004%) to 80.208%

Totals

Change from base Build 135218:
0.004%

Covered Lines:
12643

Relevant Lines:
15047

💛  - Coveralls


A Tip: Using C# 7's Expression bodied methods

Hello!
Sprach is a nice library for parsing but Ref() is very annoying.
In C# 7.0  there is a so called Expression bodied methods can removed the requirement of the Ref() method.
For example:
public class MyParser {
    static Parser<IEnumerable<string>> ManyIdents => Ident.Many();
    static Parser<string> Ident => LetterOrDigit.AtLeastOnce().Token().Text();
}

cheers!

Thanks @oldrev - C# 7 doesn't bring anything new here, though - the example just de-sugars to:
    static Parser<IEnumerable<string>> ManyIdents() { return Ident.Many(); }
    static Parser<string> Ident => LetterOrDigit.AtLeastOnce().Token().Text();

This is fine, but does cause a new parser to be constructed every time the method is accessed, which won't suit all scenarios.
Cheers!


[Feature Request] Disable shutdown screen

It would be nice if we could disable the screen that shows the "Shutting Down...", "Hibernating...", etc. messages after clicking one of the power buttons in the login screen.

Implemented on 3.2.0, thanks for your request!

maybe put a warning message on this because stuck on Hibernating... screen after resume

Implemented on 3.2.0, thanks for your request!

maybe put a warning message or do something with it because we will stuck on Hibernating... screen after resume


On new site version impossible change version of docs

https://gatling.io/docs/current/ header is lower than breadcrumb

Thanks for reporting (NB: issue only happens with FireFox).

Chrome Version 74.0.3729.169 too

Chrome Version 74.0.3729.169 and 75.0.3770.100

Works for me with those versions o_O

Fixed, thanks!

good


Task vNext - Create "Action visualizer" SDK component

Overview
The SDK needs a component to visualise what "InputActions" are being exposed by the InputSystem.
This would enable a user to test their controller mappings are working as expected
Requires

An SDK component that can be added to a scene to demonstrate what Actions are available
Guidance in the script for how to wire up and accept Input Actions
Documentation to aid and support the use of InputActions in a scene

Acceptance Criteria

[ ] A new SDK component is created for use in a scene
[ ] When added to a scene, the component will list all InputActions as they occur
[ ] The component should have configuration to filter on certain actions as required
[ ] Actions should be color coded to aid the user in visual testing
[ ] The script should be fully documented as an example for how to "wire up" Input Actions from the Input System
[ ] There should be documentation detailing the creation and use of Input Actions in a scene

Related to #2446 adding the base Interactive controls for Action consumption


Docker 1.12 - Reschedule existing service instances to newly added nodes

When i add new nodes to a docker swarm, some running containers should be automatically rescheduled to this new nodes.
Example:

I have 3 nodes in my cluster and 12 instances of a service (4 per node)
i add 2 more worker nodes
docker scheduler should move some of the 12 instances to this new nodes.
Instead of this both nodes currently stay empty until i manually scale the service

Perhaps this should be an option when creating a service or have a command docker service rebalance ?

This is a duplicate of https://github.com/docker/docker/issues/24103, so I'll close this one for housekeeping. Please continue the discussion over there


Beta Testers

Let me know if / when you need a beta tester.
cc @davidbegin

Yes! I'd love to help QA

Will do! I've almost got it functional, updating urwid_ueberzogen to get it to work mote robustly

@davidbegin @tjdevries Thank you for offering to beta test!
I've got this in a testable state - please capture any problems/feature requests as comments on this issue or in their own issues!
Follow the instructions below (also in the README).
git clone https://github.com/d0c-s4vage/lookatme.contrib.image_ueberzug
cd lookatme.contrib.image_ueberzug
virtualenv /tmp/venv
. /tmp/venv/bin/activate
pip install -r requirements.txt .
lookatme example/galaxies.md

You should see something like the gif in the README if it works for you:

Top concerns

Broken, existing functionality in lookatme

I've had to fix problems in list rendering and table rendering that I broken while adding this feature

Scrolling - definitely doesn't work very nicely. Images need to be cropped as they move in/out of view. Hiding the image once they're scrolled past does work though

Tried it out today on stream, and it worked to hilarious effect: https://www.twitch.tv/beginbot/clip/AverageAnimatedButterflyDoggo?filter=clips&range=24hr&sort=time

@davidbegin Ahaha that is awesome :^) I'm hoping to get this finalized this weekend. May also create another image plugin that uses tiv https://github.com/stefanhaustein/TerminalImageViewer

Turns out some changes in urwid-ueberzogen landed in the past two weeks, and I finished the updates to lookatme that let this plugin work. v1.0.0 of this plugin is out for basic, local image rendering!


DOC: Add sphinx documentation.

This adds sphinx documentation based on the scikit-xray documention. I drafted an introduction to databroker. It can be expanded and improved, but it's a start. There is no other substantive content in this PR.

I notice that ophyd is documented in NSLS-II/docs, and I think this should be too. That means we have two docs to maintian: /docs and /scikit-xray/docs. We can split up /docs later if needed, but that seems like a far-future problem. Closing this for now.


Generate typescript artifacts containing constants representing RDF vocab terms.

Seems the same issue as #10, but here for typescript
Describe the bug
Generate VocabTerms with labels and comments for iris other than classes or properties NOT working
To Reproduce
Use this vocabulary:
prd:levelVeryVeryHigh rdf:type inrupt_gen:ConstantIri ;
    rdfs:label "Very very high"@en ;
    rdfs:comment "Level very very high"@en ;
    skos:definition "http://mydomain/mypath" .

Steps to reproduce the behavior:

use following generator configuration

artifactName: vocab-bikeds
artifactGeneratorVersion: 4.0.0
artifactToGenerate:
  - programmingLanguage: TypeScript
    artifactVersion: "2.0.0"
    artifactNamePrefix: ""
    artifactNameSuffix: ""
    artifactDirectoryName: "src"
    sourceFileExtension: ts
    solidCommonVocabVersion: "^1.4.0"
    rdfjsTypesVersion: "^1.0.1"
    rdfjsImplVersion: "^1.1.0"
    supportBundling: false
    templateInternal: solidCommonVocabDependent/typescript/rdfjsRdfDataFactory/vocab.hbs

Observed behavior
I get following code generated:
  /**
   * Level very very high
   *
   * The term has a description only in English, with [1] label in the language [en], but [2] comments in languages [NoLocale, en] (so the difference is only between English and NoLocale, which we consider the same).
   */
  levelVeryVeryHigh: _NS("http://mydomain/mypath"),

NOK: labels and comments are missing
NOK: the generator crashes if the skos:definition is no valid URL
NOK: the IRI is not in the generated NamedNode
Expected behavior
The following code generated
  levelVeryVeryHigh: new _VocabTerm(
    _NS("levelVeryVeryHigh"),
    _rdfFactory,
    getLocalStore(),
    false
  )
    .addLabel(`Very very high`, "en")
    .addComment(`Level very very high`, "en");

Hi @MichelSc , thanks for reaching out. I'll put a ticket in our backlog to fix this, but unfortunately the artifact generator is not a very high priority for us right now, so this may not be addressed in the near future. I'm happy to assist if you want to go in the code and try and implement the fix though.


Add to CNCF landscape

Submit a PR for adding cdk8s to the CNCF landscape project:
https://github.com/cncf/landscape

Done and merged: https://github.com/cncf/landscape/pull/2140


Allow tortoise active set size to decay more quickly

Description
Right now, if many miners disappear for any reason, self-healing ensures that consensus will eventually be re-established and tortoise will begin verifying layers again, but this may take a very long time. If it happens early in epoch N, then tortoise will be stuck for the rest of epoch N, as well as epoch N+1 (since most of the miners active in epoch N probably already submitted ATXs for N+1), and won't be able to heal until epoch N+2, when the size of the active set is finally reduced. With two-week epochs, this means that, in an extreme case, tortoise could be stuck for as long as a month.
Rather than waiting this long with a sudden cliff at the end of epoch N+1, we could cause the size of the active set (total miner weight) to decay exponentially, allowing the vote threshold to be crossed more quickly so that consensus can heal. This is a tradeoff between safety and liveness. It should decay gradually at first, then more quickly if the situation continues.
CC @tal-m
Affected code
Verifying tortoise, self-healing

Right now, if many miners disappear for any reason, self-healing ensures that consensus will eventually be re-established and tortoise will begin verifying layers again, but this may take a very long time.

if majority of miners disappear forever - self-healing will not ensure this. as there will be always shortage of weight, and global threshold won't be crossed.

@dshulyak still relevant?

this issue can be transferred to research repository or to the forum research topic as the design isn't anywhere near ready for implementation

i will close it, if it comes up later in research discussions we will consider it again


release v0.15 checklist

Relase Checklist
Pre-release Test Checklist

[ ] The release checklist issue is created for the release ?
[ ] Sprints in the release are closed ?
[ ] The release changelog and READMEs are updated ?

Documentation

[ ] The documents have been updated with release dates ?
[ ] The rollback process is documented ?
[ ] The version numbers are incremented ?

Testing

[ ] Smoke test scenario are create and tested ?
[ ] All new functionality are manually tested on a release build ?
[ ] CI/CD verified and working ?

[ ] All stakeholders signed off for the release
[ ] The code is mergered into main

Post-release Test Checklist

[ ] CI/CD pipeline passed
[ ] The new release instructions work using the released artifact?
[ ] Read the docs reflect with updated release changes and tags
[ ] Release communitations are sent
[ ] Close the release checklist issue

TODO: clean up the gh-pages index file containing old chart version


set passthru in extendDerivation

Motivation for this change
Fixes #45933
I've only tested using the test cases in that issue, I'm hoping someone more familiar with this code can easily tell me if this is (a) fine or (b) a terrible idea for some reason :)

/cc @shlevy, @oxij, @edolstra since it looks like you've all touched this function


objectable#mass_update returns self using #tap block

Resolves #2, wrote a test on the return type of the method.  Tests pass and my code didn't add any more problems to rubocop.

@rdalin82 Thanks for the contribution!

@jon2992 thanks for setting up this issue, making it easy to contribute to, and giving feedback, cheers.


Have custom events include the original event that caused them as a property

It's a common need but I'd like to demonstrate it a the tab extension:
Using a custom handler
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
    // all undefined: e.altKey, e.ctrlKey, e.shiftKey
});

Here's the reason bootstrap.js:2145:
var clickHandler = function (e) { // e.g. e.altKey == true, e.ctrlKey == false, e.shiftKey == true
    e.preventDefault()
    Plugin.call($(this), 'show')
}

Do you mind to provide the orginal source event (here's the click event) as a property of the passed event inside my custom handler?
Thanks

Yes, this is planned. Quoting from #17021:

[ ] Have Bootstrap's custom events include the (e.g. click, keyboard) event that caused them as an originalEvent property: #15393

Ok. I got it. It's a duplicate! Thanks for quick response.

closing as dup


Install Miniforge

Instead of manually installed python versions, we should add a Miniforge installation with a prepared default environment.

Note to self: Windows gets stuck on starting the installer. How do I start it non-interactively?

[x] Ubuntu
[ ] Windows


as a user of this workbook, I need to be able to save the results for later processing

Since I will need to wait for the two web sites to process my multiple requests, it could take minutes to complete.  I will start it off, then go do something else (of course, that's the whole point of the notebook in the first place).  The problem is that if the notebook completes processing, and Google Colab stops my session while I'm away, then my results will be displayed, but a simple tweak may cause them to be lost.
I want to have the results saved somewhere automatically.

I'll add a final step to download the results as;

CSV with all of the columns from the EuPaGDT website results and from the RNA Fold Server include columns with the MFE and the URL to the SVG for the Centroid secondary structure
HTML with the same subset of columns that are displayed in the notebook.

The files should land up in the browser's default Downloads folder

resolved in commit id 66f3dc34a83f11a99de0f966b5bd91ca2ab61593


Undefined on sql file if migrations folder doesn't exist

With the option sql-file = true, when creating the first migration, if the migrations folder doesn't exists, it is created but the file names have undefined on its name:
20160517180317-undefined-down.sql
20160517180317-undefined-up.sql

If the migrations folder already exists the files are correctly named
20160517180317-initial-down.sql
20160517180317-initial-up.sql

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/34320967-undefined-on-sql-file-if-migrations-folder-doesn-t-exist?utm_campaign=plugin&utm_content=tracker%2F73887&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F73887&utm_medium=issues&utm_source=github).

Can't reproduce this, can you please post your used db-migrate version node version and the executed commands including a verbose run? Thanks

sure
db-migrate --version = 0.10.0-beta.11
node --version = v5.11.1
database.json :
{
    "dev" : {
        "driver" : "pg",
        "user" : "postgre",
        "password" : "123456",
        "host" : "localhost",
        "database" : "example",
        "schema" : "public"
    },
    "sql-file" : true
}

Running the command without migrations folder
db-migrate create initial --verbose
[INFO] Detected and using the projects local version of db-migrate. 'c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\node_modules\db-migrate\index.js'
[INFO] Using dev settings: { driver: 'pg',
  user: 'postgre',
  password: '******',
  host: 'localhost',
  database: 'example',
  schema: 'public' }
[INFO] Created migration up sql file at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\sqls\20160517181559-undefined-up.sql
[INFO] Created migration down sql file at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\sqls\20160517181559-undefined-down.sql
[INFO] Created migration at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\20160517181559-initial.js

Running the command with existing migrations folder
db-migrate create initial --verbose
[INFO] Detected and using the projects local version of db-migrate. 'c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\node_modules\db-migrate\index.js'
[INFO] Using dev settings: { driver: 'pg',
  user: 'postgre',
  password: '******',
  host: 'localhost',
  database: 'example',
  schema: 'public' }
[INFO] Created migration up sql file at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\sqls\20160517181659-initial-up.sql
[INFO] Created migration at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\20160517181659-initial.js
[INFO] Created migration down sql file at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\sqls\20160517181659-initial-down.sql

Ups I forgot to say that I have a  db-migrate.cmd file with the following content:
node node_modules/db-migrate/bin/db-migrate %*

This is only so I can use the short db-migrate command without the need for installing it globally

Still can't reproduce this, I guess I will need to get on a windows machine to reproduce this.

First of all, if using locally it is highly recommended to install db-migrate globally. db-migrate does prefer your local version over the global one anyway if it can find one from v0.10.x upwards.
And second, I have tried now many times with different things, but I was not able to reproduce your error even on windows.
Third: you don't need to create a cmd file for db-migrate. Npm does that for you already, take a look into your node_modules/.bin folder. You can always add this temporarily to your path.

To be more specific, it is only not recommended to use db-migrate not installed globally if and only if you're using it with the programable api.

I did a little debugging and found that when the directory doesn't exists the method call of createMigrationDir on the method executeCreateMigration executes after the createSqlFile, this is where the variable internals.argv.title is assigned, when the directory already exists this method finishes before the createSqlFile, thus the variable is already assigned

Do you anything else you might have forget? I have tested now on two systems, arch linux and windows and wasn't able to reproduce your issue. I have used your config and the exact same commands. I have create a db-migrate.cmd with your mentioned content but nothing, everything works as it should.

Adding the following logs on this lines yield to different results when the directory already exists or not:
//just before assigning title variable
548:  console.log("create migrations createMigrationDir assign title");

//just before calling the if (shouldCreateSqlFiles(internals, config))
592: console.log("shouldCreateSqlFiles " +  internals.argv.title );

//just before calling var migrationUpSQL = new Migration(internals.argv.title + ...
642:     console.log("createSqlFile internals " +  internals.argv.title );

The results are different:
When the directory exists
shouldCreateSqlFiles undefined
create migrations createMigrationDir assign title
createSqlFile internals initial
[INFO] Created migration up sql file at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\sqls\20160517183754-initial-up.sql
[INFO] Created migration at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\20160517183754-initial.js
[INFO] Created migration down sql file at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\sqls\20160517183754-initial-down.sql

When directory doesn't exists
shouldCreateSqlFiles undefined
createSqlFile internals undefined
[INFO] Created migration up sql file at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\sqls\20160517183809-undefined-up.sql
create migrations createMigrationDir assign title
[INFO] Created migration down sql file at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\sqls\20160517183809-undefined-down.sql
[INFO] Created migration at c:\Users\rafael\Documents\Repos\Contabilidad\AngularTypescriptSkeleton\server\migrations\20160517183809-initial.js

I hope this helps.

Hm yeah this seems to be a very rarely occuring bug, but I have found the source:
https://github.com/db-migrate/node-db-migrate/blob/v0.10.x/api.js#L591-L598
That callback might be called to early, I really don't know why this is not in the callback of the migration. Going to fix this.

Waiting for ci, bugfix release follows soon.

published as

<EMAIL_ADDRESS>
Please let me know if you have any further problems.

Thank you!


Unexpected overflow on ChatContainer

While using the ChatContainer, this one extends the window to its maximum to display messages, which is very annoying. How can I reproduce the same behavior that in the demo https://chatscope.io/demo/chat-friends: the ChatContainer keeps a fixed height.
When the ChatContainer is empty, it is set to the height I want, the problem happens when it starts having too much message and needs to grow.
I am not using the MainContainer, I just need the ChatContainer (it looks like the demo is using the MainContainer)
Thank you,
PS: You are doing an amazing work, this package is awesome!

You can use MainContainer with no Sidebar elements to get just a ChatContainer.
<MainContainer>
  <ChatContainer>
    // content
  </ChatContainer>
</MainContainer>

@AdrKacz simply add height to the ChatContainer component.
<ChatContainer style={{height:"300px"}}>
  <MessageList>
  </MessageList>
</ChatContainer>


[feature request] Default due date if missing when adding a todo

This is an excellent tool, my sincerest gratitude for building it. Perhaps this is just a result of my todolist workflow but the ability to have a default due date when adding a new todo would be a great feature. I add todos throughout the day and will forget to add a due date when things are hectic. Consequently, I won't see them with my default filters which uses agenda. Definitely seems like an issME but I believe it would be a nice feature.
I've gotten around it by adding a conditional to my aliased function.
function todo() {
   if [[ "$@" == "l" ]]; then
        todolist l by p agenda
   elif [[ "$1" == "a" && "${@:(-2):1}" != "due" ]]; then
        todolist $@ due today && todolist l by p agenda
   // even more conditionals
}

alias t="todo"

this happens to me as well.  one other option we could do is to include todos without a due date in the agenda view.    maybe todos without a due date are things to be groomed?

I think adding a default due date, or viewing undated tasks in the agenda would be in conflict with the GTD workflow. In my interpretation, it comes down to the concept of keeping these things isolated:

Doing planned tasks
Receiving ad-hoc tasks
Planning future tasks

Based on this, the agenda should only show things for today, or overdue events, so that you are not distracted by tasks you may need to be doing sometime in the future, and that are not 100% needed to be done today. Once the tasks on the agenda are completed you can start to tackle planning tasks that do not have a prescribed date.
Perhaps there could be another command to add an "ad-hoc" todo. Maybe something like:
ultralist adhoc <add todo text>

I've looked through the code, and I can tell how it works, but I don't write Go, so I'm not sure exactly which code would need to change but you could then assume in code that the user would be explicitly adding something that was due today, and have a different add function that doesn't do the "due" parsing and sets the due date to the current date.
Hope this is helpful. I'm working on a getting things done app written in Rust, and using this tool has been incredibly helpful to design out mine, so thank you very much for you work and providing it for others to learn from! (:
-- Phil


Finish configuring projects for new rotating logs

The following work needs to happen to make rotating logs happen on all projects:

Configure log rotation on cdh and derridas-margins
Place log files in updated location.
Add logging roles to cdh and derridas-margins playbooks

from what I can see on this:

mep and ppa have some configuration in local_settings.py that is not included in cdh-web or derrida that seems related to log rotation: https://github.com/Princeton-CDH/CDH_ansible/blob/8b971961a366bf9a24a54bd01417e734e3305665/templates/ppa/local_settings.py#L34-L41
there is a configure_logging role that is not included in in the cdh-web playbook, but is included for derrida.

so if I'm understanding this right we still need to:

[ ] copy the above conf block into the local_settings.py for cdh-web
[ ] copy the above conf block into the local_settings.py for derrida
[ ] add the configure_logging role to the cdh-web playbook

not sure what "place log files in updated location" entails.


FEATURE: Include per 100,000 People Statistics

Could you include a Cases/Death per 100,000 People statistics of the Countries. This would introduce a scale not dependent on the population of a country.

Similar to #30 and #1


Fix for unexpected removeItems chaining behavior

Boutique was exhibiting incorrect behavior when chaining the remove() function with an insert() after, due to an underlying implementation bug. The code below demonstrates how the bug manifested.
// We start with self.items = [1, 2, 3, 4, 5, 6, 7, 8]

// An API call is made and we receive 1, 2, 3, 8, 9, and 10 to be inserted into to self.items. We pass that `updatedItems` array into an `update` function that removes any items that need to be removed, and then inserts the newly updated items.

func update(_ updatedItems: [Int]) async throws {
    let items = self.items.filter({ updatedItems.contains($0) })

    try await self.$items
        .remove(items)
        .insert(updatedItems)
        .run()
}

// `self.items` now should be [1, 2, 3, 4, 5, 6, 7, 8]
// `self.items` is actually [10]

Unfortunately I made an assumption that when the size of the items being removed and inserted was the same, Boutique would use ItemRemovalStrategy.removeAll rather than ItemRemovalStrategy.removeItems(items). In practice this made sense in a very early version of Boutique, but does not any more and can lead to unexpected errors. The result is that every time a remove was chained to an insert, removeAll would be called, leaving a Store with just it's last element.

Hey @zhigang1992, I believe this issue should actually be fixed on the chained-remove-fix branch, the specific issue you mentioned in this commit. I had not noticed this behavior earlier but discovered it last week, along with a few other improvements to performance and API behavior.
I plan on merging this into main over the next couple of days, it's been useful to use Plinky as a testbed with a lot of Boutique code but I think the code is stable enough for me to ship to production. If this doesn't address the issue do let me know, I'd like to make sure I cover all of the use cases people have for Boutique.


ME interface and data widths

Draft PR to review changes for LCE burst interface and cce data width > 64 bits

Closing draft; breaking into two PRs


Unable to force delete backupvault

Describe the bug
Command Name
az backup vault delete
Errors:
Container not found. Please provide a valid container_name.
Traceback (most recent call last):
cli/command_modules/backup/custom.py, ln 79, in delete_vault
    client.delete(resource_group_name, vault_name)
mgmt/recoveryservices/operations/vaults_operations.py, ln 353, in delete
    raise exp
msrestazure.azure_exceptions.CloudError: Azure Error: ServiceResourceNotEmptyWithBackendMessage
Message: Vault cannot be deleted as there are existing resources within the vault. : Server2
Please ensure all containers have been unregistered from the vault and all private endpoints associated with the vault have been deleted, and retry operation. For more details, see https://aka.ms/AB-AA4ecq5

...

cli/command_modules/backup/custom.py, ln 848, in _validate_object
    raise ValueError(error_message)
ValueError: Container not found. Please provide a valid container_name.

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az backup vault delete --resource-group {} --name {} --force

Expected Behavior
Environment Summary
Linux-4.15.0-1092-azure-x86_64-with-debian-stretch-sid (Cloud Shell)
Python 3.6.10
Installer: DEB

azure-cli 2.9.1 *

Additional Context

backup

@Bobchev If you don't want to be prompted for the confirmation of deletion, please execute the command with --yes. However, there would still be a check to identify if there are existing protected items or registered containers with the vault. There is some issue with --force parameter, we will fix it at our end . Also, please ensure that the vault name you are passing in the command is correct.

@Bobchev could you please confirm if the issue has been resolved for you?

Suggested the workaround. Closing the issue since there is no further action pending at our end. We will triage the permanent fix internally.


Update phpunit and BaseTestCase

Update Composer to add phpunit version ^6.0 and update BaseTestCase to use namespace.

PHPUnit 6.0 does not work with PHP 5.5 which is Slim 3's minimum supported version.


Arrays of hashes are not recursively diff'd

So, I love this tool. But, I'm trying to diff some rather complicated JSON documents, and everything goes swimmingly until an array contains hashes. My preferred behavior would be to recursively diff each hash in the array. I'm looking at the code, and may attempt this myself, but I'm wondering if you've already tried and hit issues.

Yes, I have tried it and it's not the best idea unless you want to implement some fairly complicated logic to determine which hash should be compared to which. For example, let's pretend your data looks like this.
[ { :a => 1, :b => 2 }, { :b => 2, :c => 3 }, { :b => 2, :c => 4 } ]
And now you want to compare the data to this:
[ { :b => 2, :c => 5 }, { :a => 1, :b => 2 } ]
So, what's the expected output? The first element of the first array is obviously the same as the second element of the array, so we can't just compare indexes. I believe that in order to properly do this, one would need to implement a way to represent differing array positions, which I currently do not have an idea on how to represent in the removed/added hashes that are returned.

Hmmm....  that makes sense. For my particular case, taking the array hashes in order would work fine 95% of the time, but I definitely see your point. I may just put a wrapper around it for my use case, or possibly (shudder) figure out how to restructure the data so it's purely hash.

I took a shot at it... #12

Pull request #12 breaks merge/unmerge and is not a generalized solution for recursing through arrays. I'm going to close this for now since I don't plan on implementing an alternate solution any time soon. Any generalized solution for this will almost definitely change the structure of diffs and possibly break things for people who use this gem. (Did I mention I'm completely baffled why this gem is so popular?)


Tests in in Test Explorer are seen but do nothing with a symlinked folder

Type: Bug
It's still about https://github.com/microsoft/vscode-python/issues/22658#issuecomment-1938747836
I have this symlink: /Users/alan/Projects -> '/Users/alan/Library/Mobile Documents/com~apple~CloudDocs/Projects'
And my project ~/Projects/face-ai when opened with VScode:
code ~/Projects/face-ai

seems all fine except that running the Tests does not do anything!

If I open with original path:
code "/Users/alan/Library/Mobile Documents/com~apple~CloudDocs/Projects/face-ai"

Everything works fine.

I suspect that the whitespace in the symlink can be the cause.
I cannot change /Users/alan/Library/Mobile Documents/com~apple~CloudDocs beacuse this is from macOS and it's the place for iClouds, where I keep my projects backed up in the cloud.
Extension version: 2024.4.1
VS Code version: Code 1.88.0 (5c3e652f63e798a5ac2f31ffd0d863669328dc4c, 2024-04-03T13:28:09.495Z)
OS version: Darwin arm64 23.4.0
Modes:
Remote OS version: Linux x64 5.4.0-91-generic
Connection to 'SSH: toverdrive' could not be established  Canceled
Connection to 'SSH: toverdrive' could not be established  Canceled
Connection to 'SSH: toverdrive' could not be established  Canceled

Python version (& distribution if applicable, e.g. Anaconda): 3.10.14
Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Venv
Value of the python.languageServer setting: Default

User Settings

languageServer: "Pylance"

testing
• pytestArgs: "<placeholder>"
• pytestEnabled: true

terminal
• launchArgs: "<placeholder>"

Installed Extensions

Extension Name
Extension Id
Version

Auto Time Stamp
lpubsppop01.vscode-auto-timestamp
0.0.8

autoDocstring - Python Docstring Generator
njpwerner.autodocstring
0.6.1

AWS boto3
Boto3typed.boto3-ide
0.5.4

AWS Toolkit - Amazon Q, CodeWhisperer, and more
amazonwebservices.aws-toolkit-vscode
2.18.0

Base64Viewer
JasonMejane.base64viewer
1.5.2

Bash Debug
rogalmic.bash-debug
0.3.9

Bash IDE
mads-hartmann.bash-ide-vscode
1.39.0

C/C++
ms-vscode.cpptools
1.19.9

ChatGPT - Genie AI
genieai.chatgpt-vscode
0.0.10

Code Runner
formulahendry.code-runner
0.12.2

Code Spell Checker
streetsidesoftware.code-spell-checker
3.0.1

CodeLLDB
vadimcn.vscode-lldb
1.10.0

Continue - Claude, CodeLlama, GPT-4, and more
Continue.continue
0.9.108

Conventional Commits
vivaxy.vscode-conventional-commits
1.25.0

Coverage Gutters
ryanluker.vscode-coverage-gutters
2.11.1

crates
serayuzgur.crates
0.6.6

Crystal Language
crystal-lang-tools.crystal-lang
0.9.3

Debugger for Firefox
firefox-devtools.vscode-firefox-debug
2.9.10

Dev Containers
ms-vscode-remote.remote-containers
0.354.0

DICOM Tag Dump
smikitky.vscode-dicom
1.4.0

Docker
ms-azuretools.vscode-docker
1.29.0

Duplicate action
mrmlnc.vscode-duplicate
1.2.1

Edit csv
janisdd.vscode-edit-csv
0.9.1

Edit with Shell Command
ryu1kn.edit-with-shell
1.3.0

EditorConfig for VS Code
EditorConfig.EditorConfig
0.16.4

endwise
kaiwood.endwise
1.5.1

ESLint
dbaeumer.vscode-eslint
2.4.4

ev3dev-browser
ev3dev.ev3dev-browser
1.2.1

Even Better TOML
tamasfe.even-better-toml
0.19.2

filesize
mkxml.vscode-filesize
3.1.0

Git Graph
mhutchie.git-graph
1.30.0

Git History
donjayamanne.githistory
0.6.20

GitHub Actions
github.vscode-github-actions
0.26.2

GitHub Codespaces
GitHub.codespaces
1.16.19

GitHub Pull Requests
GitHub.vscode-pull-request-github
0.86.1

GitLens — Git supercharged
eamodio.gitlens
14.9.0

Gitpod
gitpod.gitpod-desktop
0.0.164

H5Web
h5web.vscode-h5web
0.1.3

iconfont-preview
stxr.iconfont-preview
0.0.5

Insert Date String
jsynowiec.vscode-insertdatestring
2.3.1

JavaScript Debugger
ms-vscode.js-debug
1.88.0

JavaScript Debugger Companion Extension
ms-vscode.js-debug-companion
1.1.2

JPEG-2000 Preview
analytic-signal.preview-jp2
0.0.4

Jupyter
ms-toolsai.jupyter
2024.3.1

Jupyter Cell Tags
ms-toolsai.vscode-jupyter-cell-tags
0.1.9

Jupyter Keymap
ms-toolsai.jupyter-keymap
1.1.2

Jupyter Notebook Renderers
ms-toolsai.jupyter-renderers
1.0.17

Jupyter Slide Show
ms-toolsai.vscode-jupyter-slideshow
0.1.6

LEGO® MINDSTORMS® EV3 MicroPython
lego-education.ev3-micropython
2.0.0

Live Preview
ms-vscode.live-server
0.4.13

Live Share
ms-vsliveshare.vsliveshare
1.0.5918

Makefile Tools
ms-vscode.makefile-tools
0.9.10

Markdown All in One
yzhang.markdown-all-in-one
3.6.2

markdownlint
DavidAnson.vscode-markdownlint
0.54.0

Material Icon Theme
PKief.material-icon-theme
4.34.0

Meld Diff
danielroedl.meld-diff
1.4.1

Mypy Type Checker
ms-python.mypy-type-checker
2023.6.0

MySQL
formulahendry.vscode-mysql
0.5.0

npm Intellisense
christian-kohler.npm-intellisense
1.4.5

Playwright Test for VSCode
ms-playwright.playwright
1.0.22

Prettier - Code formatter
esbenp.prettier-vscode
10.4.0

Pylance
ms-python.vscode-pylance
2024.4.1

Python
ms-python.python
2024.4.1

Python Debugger
ms-python.debugpy
2024.4.0

python-snippets
cstrap.python-snippets
0.1.2

python-string-sql
ptweir.python-string-sql
1.2.0

R
REditorSupport.r
2.8.2

R Debugger
RDebugger.r-debugger
0.5.4

Rainbow CSV
mechatroner.rainbow-csv
3.11.0

RBS Syntax Highlighting
GracefulPotato.rbs-syntax
0.3.0

Remote - SSH
ms-vscode-remote.remote-ssh
0.110.1

Remote - SSH: Editing Configuration Files
ms-vscode-remote.remote-ssh-edit
0.86.0

Remote - Tunnels
ms-vscode.remote-server
1.5.1

Remote Explorer
ms-vscode.remote-explorer
0.4.3

reStructuredText
lextudio.restructuredtext
189.3.0

reStructuredText Syntax highlighting
trond-snekvik.simple-rst
1.5.4

Ruby LSP
Shopify.ruby-lsp
0.5.17

Ruby Solargraph
castwide.solargraph
0.24.1

ruby-rubocop
misogi.ruby-rubocop
0.8.6

Ruff
charliermarsh.ruff
2024.16.0

rust-analyzer
rust-lang.rust-analyzer
0.4.1919

Shebang Snippets
rpinski.shebang-snippets
0.1.4

shell-format
foxundermoon.shell-format
7.2.5

ShellCheck
timonwong.shellcheck
0.37.0

shellman
Remisa.shellman
5.7.0

sidebar-markdown-notes
assisrMatheus.sidebar-markdown-notes
1.2.0

SQLite
alexcvzz.vscode-sqlite
0.14.1

SVG
jock.svg
1.5.3

Swift
sswg.swift-lang
1.8.1

Table Visualizer for JavaScript Profiles
ms-vscode.vscode-js-profile-table
1.0.8

TIFF Preview
analytic-signal.preview-tiff
1.0.1

Todo Tree
Gruntfuggly.todo-tree
0.0.226

Turbo Console Log
ChakrounAnas.turbo-console-log
2.10.4

vscode-icons
vscode-icons-team.vscode-icons
12.7.0

vscode-pdf
tomoki1207.pdf
1.2.2

WSL
ms-vscode-remote.remote-wsl
0.88.0

YAML
redhat.vscode-yaml
1.14.0

Zip File Explorer
slevesque.vscode-zipexplorer
0.3.1

ZipFS - a zip file system
arcanis.vscode-zipfs
3.0.0

System Info

Item
Value

CPUs
Apple M1 Max (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
40, 56, 48

Memory (System)
64.00GB (3.74GB free)

Process Argv
--remote ssh-remote+toverdrive /home/awilter/AWS_DEMO_LOCALHOST_2_CLOUD --crash-reporter-id d42c285a-75a9-4203-a778-028b68b74075

Screen Reader
no

VM
0%

Item
Value

Remote
SSH: toverdrive

OS
Linux x64 5.4.0-91-generic

CPUs
AMD Ryzen Threadripper PRO 5975WX 32-Cores (64 x 3432)

Memory (System)
251.60GB (192.54GB free)

VM
0%

Connection to 'SSH: toverdrive' could not be established  Canceled
Connection to 'SSH: toverdrive' could not be established  Canceled
Connection to 'SSH: toverdrive' could not be established  Canceled

A/B Experiments
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscoreces:30445986
vscod805:30301674
binariesv615:30325510
vsaa593:30376534
py29gd2263:30899288
c4g48928:30535728
azure-dev_surveyone:30548225
962ge761:30959799
pythongtdpath:30769146
welcomedialog:30910333
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
pythontestfixt:30902429
pythonregdiag2:30936856
pyreplss1:30897532
pythonmypyd1:30879173
pythoncet0:30885854
2e7ec940:31000449
pythontbext0:30879054
accentitlementsc:30995553
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
cppperfnew:31000557
d34g3935:30971562
fegfb526:30981948
bg6jg535:30979843
ccp2r6:30993542
dsvsc020:30976470
pythonait:31006305
jchc7451:30973076
gee8j676:31009558
dsvsc021:30996838
gd77d436:30999572
bdiig495:31013172

Hi! Was looking through this and tried both with:
ln -s "/Users/eleanorboyd/testingFiles/v2/symlink v5 reverse with space" "/Users/eleanorboyd/testingFiles/v2/symlink_v6"
ln -s "/Users/eleanorboyd/testingFiles/v2/symlink_folder/target folder has spaces" "/Users/eleanorboyd/testingFiles/v2/symlink_v4"
in both it successfully discovered and run the tests. Could you send along your full python logs? And also confirm you are the most recent version of the extension (pre-release). Thanks

Hi, thanks for getting back.
First, I still can't add comments in https://github.com/microsoft/vscode-python/issues/22018
Second, I believe this issue https://github.com/microsoft/vscode-python/issues/23224 may be somehow related.
I'm using your cwd_specified.zip
The scenario with the issue is this, you must use Mac iCloud folder (I testes with ~/Download and couldn't reproduce the issue):
/Users/alan/Library/Mobile Documents/com~apple~CloudDocs/Projects/cwd_specified
code "/Users/alan/Library/Mobile Documents/com~apple~CloudDocs/Projects/cwd_specified"

Do cmd + shift + P and then Python: Select Interpreter : Create Virtual Environment... : Venv
You may Delete and Recreate, choose any python version you like.
In a Terminal (be sure to see .venv), install pytest:
pip install pytest

Go to Test Explorer, running all tests should be OK.
Now, to reproduce the issue I'm seeing:
I have in my home folder (/Users/alan/) this symlink:
Projects -> '/Users/alan/Library/Mobile Documents/com~apple~CloudDocs/Projects'
ln -s '/Users/alan/Library/Mobile Documents/com~apple~CloudDocs/Projects' ~/

Then:
code ~/Projects/cwd_specified/

You need to set up the Python Interpreter again, choose the one already created and go to Test Explorer.
Try to run the tests, nothing happens.

Aha! I think I have found it. My edit to support symlinks only checked to see if the cwd was a symlink which does not work if the child directory is a cwd. So in your example the symlink is the parent directory of the workspace cwd (where you open the workspace on cwd_specified) which means my added code is not catching it.
const resolvedPath = fs.realpathSync(cwd);
if (stats.isSymbolicLink() // this will be false for the cwd if it is a child of a symlink

working on a fix now! Thank you for all your help!! Fingers crossed this fixes the bug.

Hello! I have put in a fix for this issue and it should now be working! If you could try it on the newest version of the python extension nightly pre-release that would be great so we know if it works!
Happy coding!

So sorry this is long, wrote steps best I could and hopefully this will help!! Let me know if you have any questions

create a folder nested like so  '/Users/eleanorboyd/testingFiles/v2/weird folder~name/general_folder'
inside general_folder create a python test file like test_ex.py
add a test inside like so

def test_random():
    assert True;

open vscode to general_folder
create a venv
install pytest (python -m pip install pytest)
CLOSE vscode
go to your terminal
create a symlink like so: ln -s '/Users/eleanorboyd/testingFiles/v2/weird folder~name' ~/weird-folder-link
now open vscode at 'weird-folder-link/general_folder' like code-insiders ~/weird-folder-link/general_folder
open the file test_ex.py copy the full path, verify that it is the symlink path so weird-folder-link
click on the test explorer tab
select pytest and root dir (".")
make sure the test test_random shows up
on the test explorer use the "go to test" button to the side of the test_random
make sure that the file it leads you to is the symlink path so weird-folder-link
run tests, make sure they pass and the icon for the test in the explorer turns green

So pumped to hear this! Thanks for all the responses / engagement to get this fix


LSP crashes on measurement auto complete

when any kind of latency is introduced to the page (network speed, network load, overloaded ui thread, server load, large number of measurements, etc) the LSP will stop working until a page refresh because of a timeout within Rust expiring. The error code looks a bit like this:

related: influxdata/idpe#7664

closing in favor of https://github.com/influxdata/influxdb/issues/18638


Load omnibar outside Angular

Omnibar uses setInterval() to detect user activity, but running this
inside Angular causes change detection to run every cycle.  Loading
omnibar outside Angular avoids this.

Codecov Report

Merging #317 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #317   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          59     59
  Lines        1371   1373    +2
  Branches      209    210    +1
=====================================
+ Hits         1371   1373    +2

Flag
Coverage Δ

#builder
100% <ø> (ø)
:arrow_up:

#runtime
100% <ø> (ø)
:arrow_up:

#srcapp
100% <100%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

src/app/app.component.ts
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Add rexml as a runtime dependency to support Ruby 3.0.0

rexml gem has not been default gem since Ruby 3.0.
It is required in the following.
https://github.com/drewblas/aws-ses/blob/v0.7.1/lib/aws/ses.rb#L1

@drewblas How do you feel about this PR?

@drewblas How do you feel about this PR?


Add new mod: FunkyShoeMan.ErnestoTakeover

Closes #494
https://github.com/FunkyShoeMan/Ernesto-Takeover

thank you Benjamin Crocker III

This is a duplicate.


Branch's node dependencies are not contained within the plugin

When installing the branch sdk using the instructions in the README
cordova plugin add branch-cordova-sdk --variable BRANCH_KEY=<your-branch-key> --variable URI_SCHEME=<your-app-uri-scheme-without-colon-and-slashes>

The npm install -D ' + moduleName; in beforePluginInstallHook.js adds branch's dependencies to the root package.
Our project structure looks like this
app/
├── package.js  <-- Branch's deps are added here
├── node_modules/
├── src/
├── cordova
│   └── plugins
│            └── io.branch.sdk

This would probably be solved if you could add the dependencies to bundledDependencies in package.json and run npm publish
Ref: https://docs.npmjs.com/files/package.json#bundleddependencies

Thanks so much for the investigation and thorough feedback @jaksah - This doesn't look like a major or breaking change so we'll get it done in the next update.

Tahnks @aaustin :)

Just merged the fix in!


Validate v1 and v2 charts for SLES 15 SP2

Test environment description
Testing rancher:v2.5.6-rc2 from official rancher-latest chart repo. Kubernetes-v1.19.7-rancher1-1 is deployed on custom cluster, used canal as network provider.
Tested on custom cluster running on Linux KVM hypervisor with SLE15-SP2 JeOS images with kernel-default 5.3.18-24.46-default, enabled firewalld, apparmor and docker-19.03.11_ce-6.34.2 from official SLE-Module-Containers15-SP2-Updates channel.
All VM nodes (1x cp, 1x etcd, 3x workers) with 4CPUs and 8GB RAM each, connected to hypervisor's brctl based bridge.
Used firewalld rules on all nodes:
  public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client
  ports: 6443/tcp 2376-2380/tcp 8472/udp 9099/tcp 80/tcp 443/tcp 10250-10252/tcp 10254/tcp 30000-32767/tcp 9796/tcp
  protocols:
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Test environment description
Testing rancher:v2.5.6-rc2 from official rancher-latest chart repo. Kubernetes-v1.19.7-rancher1-1 is deployed on custom cluster, used canal as network provider.
Tested on custom cluster running on Linux KVM hypervisor with SLE15-SP2 JeOS images with kernel-default 5.3.18-24.46-default, enabled firewalld, apparmor and docker-19.03.11_ce-6.34.2 from official SLE-Module-Containers15-SP2-Updates channel.
All VM nodes (1x cp, 1x etcd, 3x workers) with 4CPUs and 8GB RAM each, connected to hypervisor's brctl based bridge.
Used firewalld rules on all nodes:
  public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client
  ports: 6443/tcp 2376-2380/tcp 8472/udp 9099/tcp 80/tcp 443/tcp 10250-10252/tcp 10254/tcp 30000-32767/tcp 9796/tcp
  protocols:
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

P0 v1 charts validated

[X] Logging - rancher-logging:0.2.4 - fluend as target backend

Possible issues found in Project level logging?

the logging is deployed in System project not in the custom one
when editing logging settings in "Edit as File" and then switching back to "Edit as Form"  there is an error emitted after pressing Test button json: cannot unmarshal string into Go struct field FluentServer.fluentForwarderConfig.fluentServers.weight of type int as a workaround user has to edit Weight field and then it works again.
when trying Dry Run in Edit mode the test message is not comming
after disabling logging there is still rancher-logging-tester App in Active state

[x] Alerting - cluster-alerting:0.2.0 - tested with webhook notifier - pod changes and high cpu notifications with monitoring enabled (40 busybox pods doing sh -c "cat /dev/urandom > /dev/null")
[x] Pipeline - example go deployment - didn't try OAuth
[x] Monitoring cluster-monitoring:0.2.0, cluster & project levels validated
[x] Istio istio:1.5.900 with cluster level monitoring enabled - sample demobookservice deployed

P0 v1 charts validated

[X] Logging - rancher-logging:0.2.4 - fluend as target backend

Possible issues found in Project level logging?

the logging is deployed in System project not in the custom one
when editing logging settings in "Edit as File" and then switching back to "Edit as Form"  there is an error emitted after pressing Test button json: cannot unmarshal string into Go struct field FluentServer.fluentForwarderConfig.fluentServers.weight of type int as a workaround user has to edit Weight field and then it works again.
when trying Dry Run in Edit mode the test message is not comming
after disabling logging there is still rancher-logging-tester App in Active state

[x] Alerting - cluster-alerting:0.2.0 - tested with webhook notifier - pod changes and high cpu notifications with monitoring enabled (40 busybox pods doing sh -c "cat /dev/urandom > /dev/null")
[x] Pipeline - example go deployment - didn't try OAuth
[x] Monitoring cluster-monitoring:0.2.0, cluster & project levels validated
[x] Istio istio:1.5.900 with cluster level monitoring enabled - sample demobookservice deployed

P0 v2 charts validated
:+1: Monitoring 9.4.202 - NEW found a typo https://github.com/rancher/dashboard/issues/2234
:+1: Logging 3.8.201 - deployed in system project, elasticsearch as a target, namespaced scope inc. logging ingress
:+1: Istio 1.7.600 - demoservice deployed and validated
:+1: OPA Gatekeeper 3.2.101
:x: CIS Benchmark deployed but doesn't work - NEW unable to create a new Scan https://github.com/rancher/dashboard/issues/2235
TBD: fleet, backup&restore

P0 v2 charts validated
:+1: Monitoring 9.4.202 - NEW found a typo https://github.com/rancher/dashboard/issues/2234
:+1: Logging 3.8.201 - deployed in system project, elasticsearch as a target, namespaced scope inc. logging ingress
:+1: Istio 1.7.600 - demoservice deployed and validated
:+1: OPA Gatekeeper 3.2.101
:x: CIS Benchmark deployed but doesn't work - NEW unable to create a new Scan https://github.com/rancher/dashboard/issues/2235
TBD: fleet, backup&restore

I'd like to restart the same once a new RC will be available.


Revamp classification tests

This PR replaces the hacky classification tests based on symbols with tests that use the traits defined internally. Essentially, if we declare that a derivative is zero (locally or globally), we check that ForwardDiff agrees. Note that we don't check the other way around, which means we are free to underspecify zeros

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

Project coverage is 71.62%. Comparing base (8b85f1a) to head (e013b7c).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #76      +/-   ##
==========================================
+ Coverage   70.43%   71.62%   +1.18%
==========================================
  Files          14       14
  Lines         592      592
==========================================
+ Hits          417      424       +7
+ Misses        175      168       -7

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


chore: aligned .gitignore to the one used by Spring 3.4.0-SNAPSHOT

 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.

Thanks James, I've implemented your suggestions


Sort Loot Major Reward Types based on PQ

LootMajorRewardTypes is just an array in GameSettingConfig, so the items are not ordered. We'll need to add a displaySortOrder field and update the config in Firebase.

Actually this was an issue of modifying the array via the sort() method. Arrays are ordered, obv.


Add fake generic and modify tests

Summary
This PR adds a FakeGeneric subclass of BackendV2. All the occurrences of Fake backends in test/python/compiler/test_transpiler.py has been replaced with FakeGeneric
Details and comments

@HuangJunye, I humbly request you to see if this is good enough :)

@atharva-satpute , done with the changes :)

@MozammilQ Thanks for the awesome work here! Qiskit core developers really like it. Is it ok for them to take over the PR to finish it up?

To Qiskit Core developers: Thanks for the kind consideration, this work is not possible without the kind guidance of my mentor @HuangJunye , credit to any such work goes to him ! :)
@HuangJunye , around the time we last talked, I did some further work and did some more commits, today I have opened a draft PR for that work.
Here it is:
https://github.com/Qiskit/qiskit/pull/10942
https://github.com/Qiskit/qiskit/pull/10943

@HuangJunye , Yes, it is ok for Qiskit Core to take over the PR to finish it up!!

To Qiskit Core developers: Thanks for the kind consideration, this work is not possible without the kind guidance of my mentor @HuangJunye , credit to any such work goes to him ! :)
@HuangJunye , around the time we last talked, I did some further work and did some more commits, today I have opened a draft PR for that work. Here it is: #10942 #10943

Great. Thank you for adding the new work as well. The core team will take a look and work with them too.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

138 of 191 (72.25%)  changed or added relevant lines in 2 files are covered.
8 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.02%) to 86.421%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit/providers/fake_provider/fake_generic.py
137
190
72.11%

Files with Coverage Reduction
New Missed Lines
%

qiskit/circuit/tools/pi_check.py
1
91.15%

qiskit/transpiler/passes/scheduling/alignments/check_durations.py
3
60.0%

crates/qasm2/src/lex.rs
4
91.67%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
66435

Relevant Lines:
76874

💛  - Coveralls

As for your main comment:

The remaining concern I've got with the current approach is that we're locking in to specific defaults that users will start depending on (e.g. a specific basis, characterization, coupling map topology type, etc.). I'm not convinced that we won't want to change those as devices evolve, and to do so sooner than we rev the backend API (e.g. to V3).

Yes, I agree, this is a bit of a "short-sighted" and "a posteriori" implementation. Nothing assures us there won't be a new property we'd like to tune in a few months. I am open to looking for a more flexible approach.

The more I think about this, I'm starting to think the right factoring could be to have FakeGeneric be just a wrapper class for running a simulator, with an initializer that takes a Target and a map of calibrations, without any default initializer args.
Then, rather than having defaults hard-coded into the class, we subclass FakeGeneric with a more specific name (e.g. FakeGenericFullCX) descriptive of what sorts of settings are used to construct it (basis, coupling type, etc.). For this PR, perhaps we'd only have one subclass, but we'd be free to introduce more in the future.

I like the gist of the idea, but I think that it may not be necessary to add a new FakeGeneric class for this, we can maybe introduce a  FakeBackendRunMixin (more detailed suggestion at the end of this long comment). The context is the following:
There is a lot of code repetition currently happening between FakeBackendV2 and FakeGeneric. As far as I see it now, the "Fake backend V2 big picture" currently looks like this:

BackendV2 -> interface for target + run
FakeBackendV2(BackendV2) -> you give it config json files, it builds a target and adds infra to run in a simulator
FakeGeneric(BackendV2) -> you give it config options, it builds a target and adds infra to run in a simulator
Other specific instances of BackendV2 created to test specific issues (MumbaiFractionalCX for example), some of them only really build a target and don't care about the simulator.

The "adds infra to run in a simulator" part is identical for both FakeBackendV2 and FakeGeneric.
Now, FakeBackendV2 was designed to build targets from device snapshots that followed the "V1 style". With the migration of these "device-specific" fake backends to qiskit-ibm-runtime (as well as a copy of the FakeBackendV2 base class), there is strictly no need for having such a class in qiskit anymore. This opened the following options for me:

Turning FakeBackendV2 into what currently is FakeGeneric, replacing the option to build from config files with the ability to build from defaults + options. I noticed the following negative points for this option:

The current "building a fake backend from config files" functionality might still be handy for people to, for example, internally pre-test new backends.
The current FakeBackendV2 implementation is a direct equivalent of theFakeBackend (V1) class, which still exists, and will probably stay in qiskit until 2.0. Refactoring one and not the other might lead to confusion.
There might be external users (or libraries) basing their fake backend implementations on this class, so it's always a risk to break the interface.

Adding the "build from options" functionality to FakeBackendV2 (without removing the "build from config" option). Cons:

The class will be huge, with no clear separation of responsibilities. I don't think users would generally need both paths "enabled" at the same time.
There might be external users (or libraries) basing their fake backend implementations on this class, so it's always a risk to break the interface.

[current path] Keeping both classes separate, with clear separation of responsibilities. Cons:

Code repetition (the run part)

Your suggestion has made me think of a new path: creating something like a "FakeBackendRunMixin" that handles the run part, so that specific fake backend instances (in this case, FakeBackendV2 and FakeGeneric) only handle the target creation part. I think that this approach would also open the way for future fake backend implementations with different target creation strategies (we could maybe rethink the FakeGeneric name for that).  Thoughts?

I like that direction.
So in summary, you would keep FakeBackendV2 and FakeGeneric, but pull the run method out into a "mixin" which implements it as a simulator. Maybe such a mixin could be called "SimulatedRun", or something like that to describe what it does (rather than what the clients might be).
Even with this approach, I don't think we should hardcode anything into the new FakeGeneric directly. IMO, it should take a target and any characterization data via its __init__, and if we want to expose grab-and-go backends for tests, we should add descriptive classes with specifics hard-coded that subclass it. Thinking more about that, maybe the name would include the coupling map topology type, a description on the device basis, and a year to time stamp the characterization. E.g. FakeFullCX2024.
What do you think? I don't think many changes would be needed from the current state of the PR to realize the ideas we've been iterating on :).

Also, to bike shed on names a bit, maybe we ought to move away from the Fake prefix if we're not actually faking any real devices in Qiskit anymore. Maybe just GenericBackendV2 (which would extend FakeBackendV2 since we can't change that, and then we'd name concrete backends like GenericFullCX2024.
I'm off today and tomorrow but it's probably a good idea to check this with @mtreinish or @jakelishman, and I'll pop in when I can.

From an offline discussion with @ElePT, I understand now that it's a goal for FakeGeneric to be a single, configurable class for fictitious BackendV2 backends.
I'm still weary of defaults being hard-coded into such a class, so I wonder if we can provide defaults instead somewhere (i.e. as globals/enums) for users to pick up via composition.
The resulting client code might look like this:
from qiskit.provider.fake_provider import GenericBackend, BasisDefaults, CalibrationDefaults

# Minimal construction.
# - Requires a basis, as a list of strings.
#   (User can pick a default basis from `fake_provider.BasisDefaults`.)
# - Requires a coupling map.
#   (User can easily generate from `CouplingMap.from_{xyz}`.)
backend = GenericBackend(BasisDefaults.CX, CouplingMap.from_full(6))

# Or, using custom basis.
backend = GenericBackend(["id", "rz", "sx", "x", "cx"], CouplingMap.from_full(6))

# Minimal construction, with calibration enabled.
# - All required params from minimal.
# - Use kw-arg to specify a Callable that returns the calibration for a given gate.
backend = GenericBackend(
    BasisDefaults.CX,
    CouplingMap.from_full(6),
    calibration_func = CalibrationDefaults.NISQ_2024_1
)

# Or, using custom calibration mapping
my_mapping = {...}
backend = GenericBackend(
    BasisDefaults.CX,
    CouplingMap.from_full(6),
    calibration_func = my_mapping.get
)

Where notably, we ALWAYS require that a basis and a coupling map be specified. The basis can be pulled from an enumeration if a suitable default exists, else provided as a list. A CouplingMap is easy to generate using the existing Qiskit API (e.g. CouplingMap.from_full), and has the benefit of making the call-site more explicit (and removing arbitrary behavior from FakeGeneric) and removing the need for the num_qubits initializer parameter.
It seems reasonable to me as well for calibrations to be provided as a Callable. The defaults we provide can then do some extra manipulations, or the user can pass the .get method of their own custom dict if all they need is a simple lookup.
To implement this, we'd mostly just need two new enums for default basis sets and calibration maps.
# file `fake_generic.py`

from enum import Enum
from collections.abc import Callable

def _get_calibration_nisq_2024(inst):
    default_dict = {
        "cx": (1e-8, 9e-7, 1e-5, 5e-3),
        "ecr": (1e-8, 9e-7, 1e-5, 5e-3),
        "cz": (1e-8, 9e-7, 1e-5, 5e-3),
        "id": (3e-8, 4e-8, 9e-5, 1e-4),
        "rz": (0.0, 0.0),
        "sx": (1e-8, 9e-7, 1e-5, 5e-3),
        "x": (1e-8, 9e-7, 1e-5, 5e-3),
        "measure": (1e-8, 9e-7, 1e-5, 5e-3),
        "delay": (None, None),
        "reset": (None, None),
    }
    return default_dict.get(inst, (1e-8, 9e-7, 1e-5, 5e-3))

class CalibrationDefaults(Enum):
    NISQ_2024_1 = (_get_calibration_nisq_2024,)

    def __call__(self, *args, **kwargs):
        return self.value[0](*args, **kwargs)

class BasisDefaults(Enum):
    CX = ["cx", ...]
    CZ = ["cz", ...]

    def __get__(self, *args, **kwargs):
        return self.value

# Same as before, except `coupling_map` replaces `num_qubits` and is always required in addition to `basis`.
class GenericBackend:
    def __init__(self,
        basis: list[str],
        coupling_map: CouplingMap,
        *,
        calibration_func: Callable[str, (...)] | None = None,
        control_flow: bool = False,
        rng: np.random.Generator = None,
        dtm: float = None,
        seed: int = 42,):
        ...

I'm less attached to the specifics of how this is implemented (perhaps there's a more Pythonic way), but it seems to me like composition of defaults might be good compromise here, since it keeps arbitrary hard-coded behavior out of FakeGeneric without adding additional subclasses of it for each permutation of settings.

Thanks @kevinhartman for your suggestion, and thanks a lot for the code examples, we had gone back and forth over these concepts but I see much clearer now what you meant (for example, when I spoke about calibrations I was thinking about pulse schedules, but I see now that you were referring to what I had called "noise defaults").
I like this idea of clearly separating the "hardcoding" logic from the value-agnostic logic of the class, I think this can be very useful to increase the maintainability, and I extended it to the pulse defaults and qubit properties too. However, I originally added new input arguments so that users could set these defaults through the class init (as per your suggestion), but I ended up removing them in 0d303bb and making the default classes private. My reasoning here is that I don't think they will be used, and I think that it's always easier to add than to remove features, so I propose the compromise of keeping the extensible design without exposing the arguments or the default classes, trying it out, and then in the future if we see a need for exposing this extensibility it should be fairly easy to do (just make the default classes public and add the inputs). Let me know if this idea works out for you.
As for making coupling_map mandatory, I tried this out, as well as making basis_gates mandatory inputs, and the short answer is that it is not practical, most of the unit tests that rely on this class don't need a coupling map, and when they do, it is very useful to be able to provide it as a list. It's a bit more logic, but I think it's worth it for users.

I like this idea of clearly separating the hardcoded values from the target-building logic, I think it can improve the maintainability of the class, and I extended it to the pulse defaults and qubit properties too.

This I agree with as well, it's nice to have default values as pure data (e.g. in global vars) rather than as in-line code.
But, if we're not exposing the XYZDefaults enums, then we ought to simplify how we do that—the purpose of those enums in my proposal was to provide users with short aliases for common settings during the construction of a FakeGenericBackend (e.g. passing BasisDefaults.CX instead of ["cx", "id", "rz", "sx", "x"]). The way the PR uses these right now, they could just be private global variables without all of the enum machinery.

However, I am not sure these "extension mechanisms" (allowing people to provide their own defaults or extend these default enum classes) need to be exposed (and documented) just now.

I think there might have been a miscommunication with what exactly I was proposing here. These enums are not intended for extension. Their only purpose is to serve as a public roster of options that users can pick from when constructing a FakeGenericBackend (in fact, FakeGenericBackend's __init__ doesn't even need to know about these enums, since they behave like lists or callables, depending on which one we're talking about).

I tried the idea out in a previous commit (https://github.com/Qiskit/qiskit/commit/abef2280fbf6b6cbb10d8e493f9e9fcd671295ff), and I think this configurability saturates the init, adds extra public classes that need to be documented, and complicates the user experience.

Looking at this commit, I see reference to these enums within the FakeGenericBackend class itself, where the __init__ falls back to specific enum members if the user doesn't provide an option. This is not what I'd intended to recommend. What I was trying to communicate was I don't think that FakeGenericBackend should ever default anything on its own. No configuration data should be baked in (no pulse schedules, no noise, no basis, etc.)—IMO everything should be opt-in, and explicitly specified.

for example, when I spoke about calibrations I was thinking about pulse schedules, but I see now that you were referring to what I had called "noise defaults"

I hadn't realized originally that we were baking in pulse schedules and qubit properties as well. I can see how my request for being explicit about everything was misinterpreted now, since with all of those things it seems unwieldy from an API perspective.
...
But, I'm still not keen on baking hard-coded values into a class and naming it FakeGenericBackend, a name which does not convey to users that the settings contained therein are arbitrary (and in time, dated).
In the interest of time, let's sync on this offline tomorrow and then report back.

For now, we're thinking the best course of action for this PR is to make GenericFakeBackend a private class for use just within Qiskit, and only potentially expose it as a public interface later on

After additional offline discussion, we've decided that it's important for this interface to be public in this PR, given that we have internal users that are keen to start using it.
@ElePT, I've created a separate branch with some additional commits that I'd like to apply on top of what we've already got here, if you're okay with it. Most everything is the same, but I've adjusted some of the class factoring and package structure to hopefully be a bit more robust for public use.
The changes are:

The GenericFakeBackend class is turned into a function called make_generic_backend that returns a BackendV2. The reason for this is that the class itself did not actually add any additional behavior (other than the simulator stuff, which I've pulled out into a private _SimulatorBackend class that we can eventually reuse from FakeBackendV2). When the user calls make_generic_backend, they specify the same things they used to when constructing a GenericFakeBackend, but we're free to return any subclass of BackendV2 we like in the future. This ought to make internal changes cleaner if what we do under the hood needs to change—we aren't forced to allow the user to construct a GenericFakeBackend and maintain a superfluous class hierarchy. As I'll cover in the next bullet, it's also unimportant for us to maintain parity with the construction pattern used by the "fake" backend classes. That existing (and bad) pattern of abusing polymorphism to load up an otherwise identical struct is done for backends that are registered with a Provider. The generic backends have nothing to do with providers, so we're not subverting user expectations.
I've moved make_generic_backend to qiskit.providers.utils, and dropped the "fake" terminology. The reason for this move is that qiskit.providers.fake_provider is supposed to contain Qiskit's FakeProvider provider, and making a generic backend really has nothing to do with that. In fact, the prior GenericFakeBackend was not (and would never be intended to be) registered with the FakeProvider in that package. In its new location, make_generic_backend is just a function that lets users make custom backends. The word "fake" I've dropped as well here, since it's otherwise being overloaded to mean "runs on a simulator", which wasn't the original intent—it was supposed to mean "this backend is a snapshot of a real backend".

The branch with these changes is here:
https://github.com/Qiskit/qiskit/compare/main...kevinhartman:fake_generic_func
Let me know if you have questions (either here or offline if it's easier! 😄)

Hi @kevinhartman, this proposal involves changing the way users interface with fake backends. I understand that this is your intent, but these changes are out of scope for this PR. We discussed offline with the team that these concerns could be addressed in the future as a more holistic refactoring of the fake_provider module. This PR is currently blocking a series of changes that are planned for the next release and time is scarce. I understand that I might not be able to convince you that the current approach is best, but I hope that you can see the need to move forward for the sake of making it in time for the release deadline.

@ElePT
I’m just concerned that we’re missing out on an opportunity to move away from a cumbersome anti-pattern in Qiskit code that exists today with the FakeBackendV2 classes. Since these classes are on the way out of this repo, it feels like the right time to pivot to a more flexible object oriented design, esp. given that we're introducing a new interface. Inheritance for the sake of inheritance does come back to haunt software teams, I’ve seen it many times over the last 10 years.
From a user perspective, pointing users to a single function they can call should be just as easy as directing them to a class. If you think it’d be helpful to users, maybe the name of that function could be make_fake_backend. However, it really ought not to live in fake_provider since it isn’t part of that provider.
I realize that this PR series is taking a while to get through, but I can’t in good faith rush this to merge when I've got concerns with the new public API we're introducing.
Perhaps it'd be useful to get a second opinion. Tagging @mtreinish, @jakelishman, @kdk.

Thanks for the perspectives, @mtreinish and @jakelishman.
I'm good to go with the majority vote on this, though I maintain that the OO factoring is not ideal and this class's purpose feels obscured by its name and placement within the fake_provider package.
Once comments from other reviews are addressed, I'll sign off!

Thanks for the feedback, I have addressed all of the review comments in 54496db, except for the backend name. I think that the options are:
- ConfigurableFakeBackend or ConfigurableFakeBackendV2

GenericBackend or GenericBackendV2
GenericFakeBackend or GenericFakeBackendV2

I am fine settling for GenericBackendV2, which seems to be @jakelishman and @kevinhartman's preference.

I've renamed it to GenericBackendV2 in a36acaf. The module docs are still improvable, but I was planning to update them in #11376 once the deprecated classes are out, and include the examples that are currently in the release note.

Looks like another merge issue. I'll resolve this and push shortly.

@Mergifyio backport stable/0.46


Apps with jobs that only run on delete don't become ready

If a user creates an app with the following Acornfile, the app will be stuck in a "pending" status and will never become ready.
containers: web: {
	image: "nginx"
	ports: publish: "80/http"
	files: {
		"/usr/share/nginx/html/index.html": "
My First Acorn!!
"
	}
}

jobs: "delete-job": {
	image: "busybox"
	command: ["sleep", "10s"]
	events: ["delete"]
}

acorn version v0.7.0-alpha1-80-ge246d0c3+e246d0c3
Able to deploy apps successfully using the Acornfile provided in the issue.
Once app is deployed, we see web container deployed successfully.
When app is deleted using acorn rm <app-name> , we see "delete-job" being executed .
acorn containers
NAME                                            APP                           IMAGE                                                                     STATE     RESTARTCOUNT   CREATED   MESSAGE
mytest.delete-job-svvrp                         mytest                        busybox                                                                   running   0              9s ago
mytest.web-756c64bdb5-vsp9v                     mytest                        nginx                                                                     running   0              46s a

Once "delete-job" is completed , web container gets deleted.


Paper - Correcting auto-differentiation in neural-ODE training

This may be of interest.

Does the use of auto-differentiation yield reasonable updates to deep neural networks that represent neural ODEs? Through mathematical analysis and numerical evidence, we find that when the neural network employs high-order forms to approximate the underlying ODE flows (such as the Linear Multistep Method (LMM)), brute-force computation using auto-differentiation often produces non-converging artificial oscillations. In the case of Leapfrog, we propose a straightforward post-processing technique that effectively eliminates these oscillations, rectifies the gradient computation and thus respects the updates of the underlying flow.

https://arxiv.org/abs/2306.02192

This is a really nice paper -- thank you for sharing it!
At least in the weight-tied regime (=common for "true" neural ODEs, uncommon for ResNets) this seems to suggest that we can halve the cost of backpropagation when using Leapfrog -- we only really need to track the branch with non-negligible gradients.
I wonder how this problem would generalise to other linear multistep methods -- most practical usage of autodiff+diffeqsolves has involved Runge--Kutta methods.

They state p3,

We provide calculations only for Leapfrog, but the same phenomenon is expected to hold for general LMM type neural ODEs.


TS6133

All the model classes are imported regardless of use. This causes TS6133 compile errors, workaround is to set "noUnusedLocals": false in tsconfig.json

@deweyjose I now // @ts-ignore each of these imports, so we should be able to turn noUnusedLocals back on.  Closing


When excuting The term 'Select-MgProfile' is not recognized

When executing 365inspect and the parameters using Powershell 7.3.5 not able to  select MGProfiles as seen below from the output.
Verifying environment.
Environment is 7.3.5
[+] PowerShellGet is installed.
Importing PowerShellGet
Environment is 7.3.5
[+] ExchangeOnlineManagement is installed.
Inporting ExchangeOnlineManagement
Importing Microsoft.Graph
Environment is 7.3.5
[+] Microsoft.Graph is installed.
Inporting ExchangeOnlineManagement
Importing Microsoft.Graph
Environment is 7.3.5
[+] Microsoft.Online.SharePoint.PowerShell is installed.
Importing Microsoft.Online.SharePoint.PowerShell
Environment is 7.3.5
[+] MicrosoftTeams is installed.
Importing MicrosoftTeams
Connecting to Microsoft Graph
Welcome To Microsoft Graph!
Connecting to Microsoft Graph Failed.
Write-Error: C:\365inspect\365Inspect.ps1:294
Line |
294 |          Connect-Services
|          ~~~~~~~~~~~~~~~~
| The term 'Select-MgProfile' is not recognized as a name of a cmdlet, function, script file, or executable
| program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
| again.
PS C:\365inspect>
It has worked on earlier versions of the 365Inspect but not with the most updated one with some changes and modifications.

Hi there!
Thank you for checking out our tool!
Please verify that you are able to connect to, and approve permissions for, Microsoft Graph PowerShell.
In your screenshot, your connection to Microsoft Graph failed (the line immediately before the error message about Select-MgProfile

When properly connected, you should see a message that you are connected via Graph to your tenant before connecting to the next module.

I agree on the connectivity to Graph when running it direct connect-graph & connect-mggraph It works without failure.

Could you try running the tool again?
In our testing, and the screenshot above, we ran it in PS version 7.3.5 and had no issues connecting.

Yes, I ran it several times and still received the same error. The service principal I am using is fully capable and has all the access. Not sure why it bombs out on the Microsoft Graph on the new version but the old version works fine.

Hi @kennyb7322
The authentication methods used in this tool are designed for an authenticated user, and currently does not support using a Service Principal or Application authentication context.

I could get it to work by using an older version of PowerShell, the beta version; I was getting the same results. I don't know if some authentication caused it not to execute properly. I am going to try it on different instances and report back.

What version of Microsoft.Graph PowerShell Module do you have installed?
This works currently, using user credentials, with version 1.19.0 and lower.

So it works on Powershell 1.9.6      Microsoft.Graph and lower you are correct it does not work in 2.0.0. and it does not work also on the release candidates.

So it works on my VM but when I try to push it up to github I get an error. Any help will be greatly appreciated! Thanks.Manifest   1.9.6      Microsoft.Graph

Version 2.0.0 no longer supports the Select-MgProfile command.
In Microsoft's release notes for version 2.0.0 - https://github.com/microsoftgraph/msgraph-sdk-powershell/releases

We are working on a resolution to accommodate this change, in the meantime, you will need version 1.19.0 or lower to run the tool.


Add a field for last update date.

Add a field at the page of each project to show the latest update date.

The "active" field is enough.


fix devcontainer to be ready for development

DevContainer
The current DevContainer is outdated and when starting a codespace, you need to install a newer node, npm, typespec, etc...
This PR changes the devcontainer configuration so that the codespace is properly configured to start editing the specs.

use mcr.microsoft.com/devcontainers/typescript-node:20-bookworm as the base image
install packages-microsoft-prod.deb
install git
install npm oav

on environment start:

install npm packages from packages.json (typespec compiler amongst other)
set the node_modules/.bin folder to the path, so we can call tsp

set the node_modules/.bin folder to the path, so we can call tsp

Better to get into the habit of running npx tsp, or just install the matching version of tsp globally.


Thread safety

Hello!
Is an Automaton thread safe? Specifically, calling iter on the same (finalized) Automaton from multiple threads.
Thanks

Hi, the module is not thread safe at all.

ok, thank you!


change CIDR notation on the 172.16 network to give it the true full r…

change the ip black list cidr notation to reflect the true size/range of IPs in the <IP_ADDRESS> network (from /16 to /12).

never mind - if this gets used it errors out because for some reason <IP_ADDRESS>/12 is unacceptable in amazon CIDR notation.


Define http call method as GET by default

What would you like to be added:
For the HTTP Call method not to be required and be defined as get if not specified.
Why is this needed:
It's probably opinionated but for me, GET feels like the "default" behavior of HTTP (even if it's not per se, it's still what happen under the hood each time we type in an address in our browser).
Wdyt ?  @cdavernas @ricardozanini @fjtirado @matthias-pichler

No strong opinions on my side, but maybe slightly against... my reasoning:
GET seems like a good default in the browser, end-user client world but for server side code less so

I am neither for nor against, quite the contrary 🤣

I agree with @matthias-pichler. GET is a good default for browsers, but for workflows maybe not so good. I'm slightly biased because is most examples I wrote for Kogito to illustrate 0.8 functionality I used post. And thats probably why, while designing a custom extension, I decided to set method (POST, GET, DELETE, PUT, PATCH...) parameter as mandatory.
On the other hand, I do not really see a problem in omitting the method parameter for GET. At the end, it is saving lines. And, with mandatory or optional approach, POST has to be specified anyway (I do not think POST should be the default in any case)

Ok, let's keep it explicit.


Refresh ceph dashboard user role

This change allows the operator to refresh the
ceph dashboard admin role on multiple ceph-ansible
executions.
In the current state the role is set only when the
user is created, and there's no way to change it if
the user exists.

@dsavineau in the OSP context we set by default the admin user role to "read-only", but in TripleO a parameter (a boolean) is exposed and it allows operators to change privileges [1].
Without this patch changing that parameter in OSP has no effect during a stack update in which we add the env [2].
[1] https://github.com/openstack/tripleo-heat-templates/blob/master/deployment/ceph-ansible/ceph-mgr.yaml#L41
[2] https://pastebin.com/hwgQywEZ

@fmount is there a BZ for this?

@fmount is there a BZ for this?

@guits yes, I created it and I'm going to update the COMMITMSG to include it.

jenkins test centos-container-all_daemons

jenkins test centos-container-external_clients

jenkins test centos-container-lvm_osds

jenkins test centos-container-ooo_collocation

jenkins test centos-container-update

jenkins test centos-non_container-purge

jenkins test centos-non_container-lvm_osds

jenkins test centos-non_container-collocation

jenkins test centos-non_container-all_daemons

jenkins test centos-container-purge

check-rdo

check-rdo


update upstream to 0.75.1

includes the following prs:

https://github.com/FabricMC/fabric/pull/2646
https://github.com/FabricMC/fabric/pull/2898
https://github.com/FabricMC/fabric/pull/2905
https://github.com/FabricMC/fabric/pull/2930

also updates licenses
was fairly simple, all tests (except the four broken ones) pass without issues!

oh no, we don't merge PRs one-by-one; What I do is pretty much the equivalent of git merge fabric/1.19.3 (with fabric being a remote that points to the FAPI repo) although technically i use the intellij thingy so i can do incremental updates if needed;
Hm, am not sure how this could be fixed, but yeah, am worried about the git history getting messy

oh ok, I can redo the pr


fix bug of multiprocessing.Process may deadlock(caused by SIGTERM killed consumer process).

I don't understand how this change actually fixes the issue?

Ping @soarpenguin ^^

I'm going to close this off due to the lack of response.


draft

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

Merging #152 (8a59d11) into 3.5-dev (e6e8313) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           3.5-dev     #152   +/-   ##
========================================
  Coverage    63.48%   63.48%
========================================
  Files           23       23
  Lines         3640     3640
========================================
  Hits          2311     2311
  Misses        1150     1150
  Partials       179      179

Continue to review full report at Codecov.

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


remove hardcode for .Values.service.internalPort

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:

You should increment chart version (version) in Chart.yaml also you'll need to sign a Contributor License Agreement (CLA)

This change doesn't seem to make sense, since the container port is hard-coded. Also, it is good practice to use a named port to reference the container port.


Remove parseInt from changeSlide index method

slidesToScroll option allows non-integer (fractional) values.
Why restrict slickGoTo to only integers?
Edit: Just occurred to me, some folks may be passing strings into slickGoTo. In that case, how about using parseFloat instead of parseInt?

Used  Number instead of parseInt/parseFloat


Add task events

Fixes #45

With this PR you may have just made this my absolute favorite task and calendar management system, I really adore the work you've put into this!

Task event is great.
Ability to scedule  the tasks from Daily Notes would be a great option. on the calendar day or week page page.

@Gr-Nobel, this is covered by #28 and #63. I'm currently working on it in PR #192, so you can follow that PR for updates!