serialization: add language improvement to serialization

A small fix from the v1.1 merge that happened inside of the docker repo
after we pulled this in.
See https://github.com/docker/docker/pull/22264

Build failure is because of gopkg.in being down. Nothing to do with the patch.
Can I get a review @opencontainers/image-spec-maintainers?

LGTM
Confirmed this was in docker/docker#22264


ci: use Node v16

Also pins SHAs for actions.

This gets CI back to green after bd0fd3d0a77a293390c804e74a45899d83819ff5 bumped dependency versions, making CI fail on Node v12.


Deploy www.surveilr.com Astro repo to https://surveilr.com

[x] Initial deployment in static mode on GitHub Pages (hybrid not required)
[x] GitHub Actions for auto deployment

Set up GitHub Actions to automatically deploy the site to GitHub Pages and include Deno version 1.46.3 in the workflow

We'll consider this complete for now.


update storm --> 0.10.0

Apache Storm 0.10.0 have released and testing on this version is ok .   Using stable version maybe better ~

@darionyaphet
Thanks , I will merge it.


[Gateway API] Cilium panic: runtime error

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Creating an HttpRoute with missing port crashes the whole cilium-operator
- backendRefs:
  - name: <service-name>
    port: null

with the following error:
panic: runtime error: invalid memory address or nil pointer dereference

Cilium Version
v1.14.1
Kernel Version
Bottlerocket OS 1.14.3
Kernel 5.15.117
Kubernetes Version
v1.27.4
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Currently to avoid cilium crash we have to implement kyverno policies that denies configurations with missing port number

/assign @chaunceyjiang
I will try to fix this issue.

Additional panic information:


No intellisense for Javascript projects

For example without even having to analyze user Javascript classes, basic intellisense is missing:

I type test., nothing happens so I type Ctrl-Space and after 1-2 seconds(!) an empty menu comes up.
Function arguments aren't suggested:

My jsconfig.json:
{
    "compilerOptions": {
        "target": "ES6",
        "module": "commonjs"
    },
    "exclude": [
        "node_modules"
    ]
}

duplicate of #2054


AKS - Azure China missing 2020-03-01 in cli 2.3.1

No registered resource provider found for  API version '2020-03-01' for  type 'managedClusters'

Describe the bug
Command Name
az aks get-credentials
Errors:
No registered resource provider found for location 'chinaeast2' and API version '2020-03-01' for type 'managedClusters'. The supported api-versions are '2017-08-31, 2018-03-31, 2019-02-01, 2019-04-01, 2019-06-01, 2019-08-01, 2019-10-01, 2019-11-01, 2020-01-01, 2020-02-01'. The supported locations are 'chinaeast2, chinanorth2'.
To Reproduce
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.
az aks get-credentials --resource-group {} --name {}
Expected behavior
Environment summary
Windows-10-10.0.18362
Python  3.8.2
Installer: MSI
azure-cli 2.3.1
Additional context

thanks for reporting, routing to appropriate team

This is a known issue and is being investigated cc @feiskyer

@xinlizhou Could you use an older version of CLI as a mitigation? API version 2020-03-01 is not supported yet on AKS China.

try to use an older version by running azure-cli container:
https://github.com/Azure/azure-cli#docker
e.g.
docker run -v ${HOME}:/root -v /usr/local/bin/:/kube -it mcr.microsoft.com/azure-cli:2.2.0

Thanks a lot@andyzhangx @feiskyer!

Hi~
if I want to use azcli on Mac OS client, how can download the old version, 2.2.0 for example.

@yonzhan do we have guides to install older versions for Windows and MacOS?

@fengzhou-msft to provide guidance.

For windows installation I found that this link would work:
https://azurecliprod.azureedge.net/msi/azure-cli-2.2.0.msi

thanks @yonzhan @fjferdiez for the guides.

Please see the fix here: https://github.com/Azure/azure-cli/issues/13047


Refactor baseshader

Tasks

[x] Refactor logic out of base1.py
[x] Move wgsl in base2.py to a .wgsl  file.
[x] Combine base1.py and base2.py.
[x] Use .wgsl for shaderlib.
[x] Implement a mechanism to include wgsl from other wgsl files.
[x] Check docstrings.
[x] Check gallery and docs.

Notes
Most of our wgsl is now in .wgsl files. Some contains snippets/functions that can be imported into others using Jinja2's include mechanis (hooray jinja! 🚀 ), e.g. {$ include 'pygfx.light_common.wgsl'$}. This means that custom shaders, or shaders in downstream packages can also include our snippets. Even better, downstream, code can register a loader for a prefix so it can do e.g. {$ include 'fastplotlib.special_stuff.wgsl'$}.
API changes
(for the release notes)

Renamed WorldObjectShader to BaseShader.
The BaseShader class no longer has .code_definitions() and .code_common(). Use {$ include 'pygfx.std.wgsl' $} instead.

CI is having a bad day: fails at sudo apt-get update -y -qq.

When looking into jinja2's import mechanism, I also learned about its import keyword. It's a bit more advanced, but might be convenient for us: https://jinja.palletsprojects.com/en/3.1.x/templates/#import

When looking into jinja2's import mechanism, I also learned about its import keyword. It's a bit more advanced, but might be convenient for us in some cases: https://jinja.palletsprojects.com/en/3.1.x/templates/#import

Recently, I also went through the Jinja documentation and found that Jinja supports macro definitions.
While I tried to extend texture support for pygfx (such as multiple UV channels, different texture mapping modes, etc.), I have been looking for an elegant way to implement dynamic shader code generation. The macro definition feature in Jinja seems can  provide great assistance for this.
However, I am not very familiar with Jinja and am still learning and researching it.

The CI hiccup resolved itself, fortunately.


clarifying

closes https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/7563

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@CarolynRowe PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

I need to close this pull request.  It has conflicts with the base branch and I am following up with PMs about this requested change.  One of them specifically asked me to remove that you can specify presenters for regular meetings before we went live.  anyone can present....  i will follow up with them and submit another PR if we decide to make this change.

@CarolynRowe , please can you tell me offline whom asked you to remove that we can specify presenters in regular meetings?


Chart widget - numeric data "converted" to text, and then fails

Good day,
i'm trying to set up a chart widget for the number of errors reported per hour for the last 24 hours.
I've set up a chart widget and pointed it to a data source with the following splunk query:
Environment="Production" Level="ERROR" |bucket _time span=1h | stats count by _time
This leads to an empty chart widget, with a javascript error logged to the console pointing to highchart errors #14: String value sent to series.data, expected Number ( https://www.highcharts.com/errors/14 )
I feel like what I'm doing is rather basic - how can I fix this? I 'm pretty sure the count values returned form the query are actually numbers.

Hi @JoachimL, it has been a while since I used the Splunk API, so I can't remember if I've had this issue before.  Based on the error, it must be returning strings from the Splunk API.  I checked the Cyclotron code, and there's nothing to convert data types—the Splunk REST API doesn't provide column type information either.  I also checked the Splunk documentation, and didn't see any relevant options or anything else related to this.
I don't currently have access to a Splunk environment to verify the API responses (on vacation), but here's an easy solution for you.  You can add the Post-Processor function to your Data Source, and use that to convert any numerical columns:
pp = function (data) {
    return _.map(data, function (row) {
        row.count = parseInt(row.count, 10);
        return row;
    });
}

Here I'm using parseInt() on the count column, but you could extend to any other columns you want to transform (or parseFloat(), etc).


feat: SOF-1254 add temporal priority to triCaster

Allows reordering commands that are meant to execute at the same point in time. Based on https://github.com/tv2/tv-automation-state-timeline-resolver/pull/49 (waiting to get that merged)

@LindvedKrvang since multiple layers can have timeline objects that modify different properties of the state of the same "resource", it is possible that for example state.mixEffects.main.keyers.dsk1.onAir gets set by a different timeline object (residing on a different layer) than state.mixEffects.main.keyers.dsk1.input, so they can have different Ids as well as temporalPriority. The timeline objects are not stored in the state that we're doing the diffs on. Currently the timeline object Ids are used for debugging, but I can also see them being used for other purposes in the future (like forcing command to be sent when the value has not changed, but the timeline object Id has, which may or may not be useful in some upcoming features). If anything, I think we'll need even more meta properties like that in the state. We could of course store separate data structures in the state to hold all the timeline objects or just a subset of their properties, but I'm afraid we won't be able to escape from having to tie a particular value to a timeline object it came from or values coming from it.


unknown option '--incremental'

I do the work follow this article 'https://infer.liaohuqiu.net/docs/infer-workflow.html',
I  think all is ok ,but the commands
infer run --incremental --keep-going

and
infer --incremental --keep-going

do not work，the error info as below,
/Users/dy/Documents/iOS/Infer/infer-osx/bin/infer: unknown option '--incremental'.
Infer version v0.17.0
Copyright 2009 - present Facebook. All Rights Reserved.
Usage: infer command [options]
See `infer --help` for more information.

My computer is iMac,10.15.4 (19E287).
How can I do increment analysis by infer？

This page is not maintained by us. Unfortunately it is more than 5 years old and outdated. The incremental workflow uses --reactive now, see https://fbinfer.com/docs/infer-workflow

This page is not maintained by us. Unfortunately it is more than 5 years old and outdated. The incremental workflow uses --reactive now, see https://fbinfer.com/docs/infer-workflow

Many thanks!
It works well!

Many thanks!
It works well!


Connect Fail while connect in @livekit/react-components 1.0.2.  DO NOT USE @livekit/react-components 1.0.2!!

After Request connect to server in livekit-react with an example
I've got livekit connection error for a few seconds
"error Client initiated disconnect"
and after that show this error message
"error could not connect PeerConnection after timeout"
So I guess this can be hand shake problem with livekit react and livekit server.
How can i solve this problem?
This is my project envirorment.
package.json
{
  "name": "weco_client",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@livekit/react-components": "^1.0.2",
    "livekit-client": "^1.3.3",
    "autoprefixer": "^10.4.11",
    "axios": "^0.27.2",
    "next": "^12.3.0",
    "postcss": "^8.4.16",
    "postcss-loader": "^7.0.1",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-textarea-autosize": "^8.3.4",
    "recoil": "^0.7.5",
    "tailwindcss": "^3.1.8",
    "ws": "^8.8.1"
  },
  "devDependencies": {
    "eslint": "8.23.0",
    "eslint-config-next": "12.2.5"
  }
}

Server envirorment
livekit-server version 1.2.3

I've temporly fixed @livekit/react-componetns version as 1.0.1
fixed package.json
  "name": "weco_client",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@livekit/react-components": "^1.0.2",
    "livekit-client": "^1.3.3",
    "autoprefixer": "^10.4.11",
    "axios": "^0.27.2",
    "next": "^12.3.0",
    "postcss": "^8.4.16",
    "postcss-loader": "^7.0.1",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-textarea-autosize": "^8.3.4",
    "recoil": "^0.7.5",
    "tailwindcss": "^3.1.8",
    "ws": "^8.8.1"
  },
  "devDependencies": {
    "eslint": "8.23.0",
    "eslint-config-next": "12.2.5"
  }
}

what are the steps to repro here? which example are you seeing the issue with?

I'm Issued @livekit/react-components. whitch newest version (1.0.2) in npm.

Can you reproduce the issue with https://example.livekit.io? that's running the latest version of the SDK.

I've already reproduce in this repository and it working good for me.
so it's not different "livekit/react-components" and "livekit-client" package.json this repo and my repo.
but however i've investigate why getting error in the same package.json? so i've find it's difference in yarn.lock file.
In yarn.lock file, this repo is only using livekit-client as below, there is no livekit-copmonents,
i guess component directory in this repo, are using  instead of download yarn remote repo.
  version "1.3.2"
  resolved "https://registry.yarnpkg.com/livekit-client/-/livekit-client-1.3.2.tgz#72716de3ac51be4768498b7f42f06d8a40a6c624"
  integrity sha512-hBj4SCeB++xsewg5a1ebb6fPuqVMDlZplNOFxkrPz8TA87jXM1AhdzCQokbHVlpSgNPf1srM47/56yvjrb+eVQ==
  dependencies:
    async-await-queue "^1.2.1"
    events "^3.3.0"
    loglevel "^1.8.0"
    protobufjs "^7.0.0"
    sdp-transform "^2.14.1"
    ts-debounce "^4.0.0"
    typed-emitter "^2.1.0"
    ua-parser-js "^1.0.2"
    webrtc-adapter "^8.1.1"

but my yarn file is different
  version "1.0.1"
  resolved<EMAIL_ADDRESS>  integrity sha512-/+GGOVGmjSeqz3VOW0itJ+gnAsceJWA1AWFPDsrQSiiyVPG2uY7fdGEzrr1cEOxvKdUS6Wy5La8r0hdEANKkFg==
  dependencies:
    "@fortawesome/fontawesome-svg-core" "^6.1.1"
    "@fortawesome/free-solid-svg-icons" "^6.1.1"
    "@fortawesome/react-fontawesome" "^0.1.18"
    "@livekit/react-core" "^1.0.1"
    "@types/react-responsive" "^8.0.2"
    react-aspect-ratio "^1.0.50"
    react-responsive "^8.2.0"
    react-tiny-popover "^6.0.5"

"<EMAIL_ADDRESS>  version "1.0.2"
  resolved<EMAIL_ADDRESS>  integrity sha512-aHsb7nWL0QSMx72EQ1Xb9fshNgidnafRL+CouNYoljd2XqDm1Yv6bRGijBe1gXyzhQLNzttWaBWcbwlU1/jq+A==

<EMAIL_ADDRESS>  version "1.4.1"
  resolved "https://registry.yarnpkg.com/livekit-client/-/livekit-client-1.4.1.tgz#2638273cb1753a001596c03788567c352bb496bc"
  integrity sha512-0k2Qx2cqQTr7v3Gg1Tet879b3ja1iF1BCk4oTv3n1zfAzROZvq5B1YFY29wIMVUKKXrZgL8VEkj9Fz2qcVrNOA==
  dependencies:
    async-await-queue "^1.2.1"
    events "^3.3.0"
    loglevel "^1.8.0"
    protobufjs "^7.0.0"
    sdp-transform "^2.14.1"
    ts-debounce "^4.0.0"
    typed-emitter "^2.1.0"
    ua-parser-js "^1.0.2"
    webrtc-adapter "^8.1.1"

so i delete this yarn.lock file and component directory this repo
and execute "yarn" and "yarn start".
after that, it showing the same issue that i've write in issued
however when i using package.json (as looking above)

so i think, fixed version is not update in npm.

hi,
the version mismatch should be fixed in 1.0.3, feel free to reopen if the problem persists for you!


DOC: Better, shared docstrings in ndimage

This extends some of the docstrings of ndimage functions, namely those related to the extend mode, origin and prefiltering in interpolation.
It also creates a new _ni_docstrings.py file, to allow reusing docstring components in all files using doccer.

LGTM and test failures are unrelated, merging. Thanks @jaimefrio!


Check if table exists, UPSERT, REPLACE

Rationale
A large part of work with SQL databases is maintenance of statics. E.g. you run a predictive engine (ML or simple regressions) and some variables are current stats, like "amount of orders in the recent 1 hour". These tables are then queried often by predictive services or libraries.
Currently, we chose to do this with normal tables, and have to truncate or recreate them. Other ways of doing this with SQL would be VIEW or MATERIALIZED VIEW. But their main drawback is that they must be in the same DB as the source table, and block maintenance on it: ALTER TABLE becomes impossible (or requires recreation of the views).
That's why many use some Python code to extract data, transform and load in another DB. (An important requirement is to have just one such Python script per feature, that does both inititalization and updates. Because any business will generate many features, and doubling them and scattering the logic creates a lot of extra pain.)
Such operations require several kinds of actions:

UPSERT

Example 1: re-calculate total orders per city/client every day and store in a separate table (for performance reasons).
Example 2: maintain log-like table: select new orders from source table, but only a set of fields, transform, insert into another DB.
Without upsert, you have to run a program to do maintenance and call SQL scripts.

check if the target stats table exists

create if it doesn't (because we want to do both creation and update in one code unit)

check if the stat is recent, or requires update (this can be necessary if we had a large system outage and not sure if our logs are correct)

If this is on another DB, you have also to create temporary tables and insert the aggregated data into them

after all that run 2 SQL commands:
insert into city_stat
select o.city_id, count(*) orders, sum(o.cost) cost, current_time as update_timestamp
from orders o left join city_stat c on o.city_id=c.id
where c.id is null
group by o.city_id;
update city_stat
from orders o inner join city_stat c on o.city_id=c.id
set orders = count(*), cost=sum(o.cost), update_timestamp=current_time
where city_id=o.city_id
group by o.city_id;

Upserts in noSQL databases make this quite trivial:
upsert db/table
from <select query>

Note 1 probably it should support table recreation.
Note 2: it should also support increments to existing and to non-existing records. E.g.
upsert city_stats
set orders = (orders or 0) + i where city_id = j
from (some input data here ....)

REPLACE table data

Sometimes you need to keep just current stats, e.g. orders within last 1 hour per district/neighborhood.
Pandas package recognized this need and made it possible with a to_sql function:
 city_orders_stat.to_sql(sql_alchemy_connection_obj, 'city_stat', method='replace')

in this case the table will be dropped and recreated.
In SQL, it must be broken down into 4 stages:

test if target table exists (again, this should be done, because we want to keep minimum number of scripts per feature)
drop or truncate
recreate if necessary
create as select or select if in another db
insert if in another db

Thanks for the issue @culebron !
I had added some "non-goals" to the readme — they're certainly not permanent, but we should be really focused on what we can realistically build, and that needs to start with generating analytical queries. DDL is listed as a "non-goal" at the moment.
I'd welcome others adding a :+1: or comment here if this is important for us to have DDL in order to get to a version that people will use. And thanks again for writing the issue.

@max-sixty I did check non-goals. Why do you think REPLACE or UPSERT is a DDL operation? It seems to me that it's not data definition at all, they both just push the data somewhere, no matter what type it has.
Both operations will effectively allow getting rid of the procedures that I listed. In any serious application, you spend more time on this (which is working around SQL shortcomings), rather than on SELECT queries.

Sorry that I'm misusing terms — I had meant outside the focus of "read" queries.
Let me modify the non-goals a bit, because they're currently expressed too confidently relative to how much information I have. You're right those sorts of operations are important in large projects. My perspective is that SQL is particularly bad at read-queries relative to their semantic content, and so we should focus on those to start. But I'm totally open to seeing this grow to whatever people find helpful.
Again re welcoming others adding a 👍 or comment here if this is important for them.


Low FPS in latest version?

I remember a fresh installation of MetaDrive should have at least 300+ FPS when running the profile script, right?
Why current version become so slow?
Any idea? @QuanyiLi

Maybe we should add a unit test to ensure that nothing breaks the training fps in any new PR.


WFLY-17696 Replace SubsystemResourceDescriptionResolver and usage with version from wildfly-controller

https://issues.redhat.com/browse/WFLY-17696

Thanks @pferraro


Are nested visitors really not supported for preprocessors and decorators?

I've noticed that docs says

Preprocessors and decorators do not support nested visitors.

https://github.com/Redocly/openapi-cli/blob/master/docs/custom-rules.md#L19
But in our preprocessing plugin we successfully use nested visitor Parameter > Schema.
Similarly, in the https://github.com/Redocly/openapi-cli/issues/294#issuecomment-871258605 there is a PathItem > Operation nested visitor.
Can you confirm that docs are still right and successful usage is accidental (so we shouldn't rely on it)?

Can you confirm that docs are still right and successful usage is accidental (so we shouldn't rely on it)?

Preprocessors and decorators use same traversal logic as regular rules but there is caveat that you can modify something and break parent visiting logic. That's why we decided to disallow it in the docs. We're not going to break it I believe so I would be open to change the wording in the docs to warn about potential unexpected behaviour vs saying it's not supported.
I need to refresh my understanding of what can go wrong with nested decorators to be specific in the docs.


Update index.rst

Updated index.rst with a draft

This PR does not follow the standard workflow. Starting over again.


Research a way for the FE to access history data for the Validator's uptime.

Related issue -> https://github.com/LimeChain/hashport-validator/issues/734

Find a way to make it possible to get that data outside of the Grafana. Could it be in the API?

We have updated the docker scripts, so that prometheus and grafana data persists. Metrics can be accessed via API.


new filer

In the new filer the right click doesn't do anything. Not able to create new folder or new file by right clicking.

Thanks for testing the new Filer @karthik-holla. The right-click context menu is currently only implemented when clicking on an icon. In the meantime, you can press Command-N for a new folder. Creating documents is the task of applications, not of the Filer.


Adds useGetTransactionStatusPollerQuery hook

As title.
This is going to be used in the new useTransactionStatus hook I wrote the docs for in https://github.com/fractalwagmi/react-sdk/pull/92.

lgtm! always nice when the test is longer than the code itself 😆

This is almost always the case once you start seeking proper code coverage


navbar corrected

Description
Navbar corrected
Checklist

[x] I am making a proper pull request, not a spam.
[x] I've checked the issue list before deciding what to submit.

Related Issues or Pull Requests
#349

Hey @nisha331 please pull the changes

@nilisha-jais is it fine now ?

Yes it's fine but I cannot see any changes. What did you change

I just tried removing the conflict from here itself . Its working right? I don't know I just tried it. @nilisha-jais


Use "Post Redirect Get" Pattern

Thanks for this awesome library, There is one small thing which I noticed that every POST request itself renders the templates (e.g on failed login, the same POST request renders the template with error messages).
While this isn't a big deal but it would be great if that is changed to what we call "Post redirect get pattern" so that it will fix two small issues

No-fuss on reloading the page (right now it submits the form again)

Template rendering will be the responsibility of only one action (single source of truth)

PGR is used upon success, but I don't think it makes sense to do for invalid submissions. I think that would break semantics with REST? Also, I follow the Phoenix idiom where the invalid changeset generated from the action is used to render the form. Not sure how that could work with redirect since the changeset would then needs to be stored in the session.

I'll close this for now, but feel free to reopen.


State production suspension and caching with Molecule

There are two questions in this:

suspending a launched Molecule: CoroutineScope.launchMolecule implies in name and verifies in source that the launched Molecule will keep producing state while the launching Coroutine is active. In the case where there is no collector of the produced state, can there be a way to stop composing the Presenter?
If the above can be accommodated, can there be an API to seed the last produced state to presenters? This is so that resuming collecting from the presenter does not overwrite the last produced state value.

Consider the ProfilePresenter example:
@Composable
fun ProfilePresenter(
  userFlow: Flow<User>,
  balanceFlow: Flow<Long>,
): ProfileModel {
  val user by userFlow.collectAsState(null)
  val balance by balanceFlow.collectAsState(0L)

  return if (user == null) {
    Loading
  } else {
    Data(user.name, balance)
  }
}

The initial state is produced will always be Loading. In the case where Data has been produced and the ProfilePresenter is no longer being composed because the StateFlow is not being collected from, (maybe the owning screen has been placed in the back stack), I would like to prevent the last seen Data from immediately being overwritten by Loading as I return to the screen and the presenter produces state yet again.
i.e:

Screen in focus. State: Loading.
Data emitted. State: Data.
Screen in back stack, presenter is no longer composing. State: Data.
Screen back in focus, presenter is recomposed. Last seen Data state is overwritten. State: Loading.

The above can be worked around by using moleculeFlow with the Flow builder to allow seeding as the Flow is cold, and then creating a StateFlow with the right SharingStarted argument:
class SeededStateHolder {
    var seed: ProfileModel = Loading
    val profileStateFlow = flow {
        // Pass the seed to the presenter to prevent overwriting state
        emitAll(moleculeFlow(ProfilePresenter(seed, ....))
    }
    // update the seed on each emission
    .onEach { seed = it }
    .stateIn(...)
}

Though I wonder if I'm missing something more obvious. If not, a built in API that allows for it would be really nice.

In the case where there is no collector of the produced state, can there be a way to stop composing the Presenter?

The StateFlow created by launchMolecule is fed by a coroutine residing in the calling CoroutineScope. This coroutine runs the composition. If you kill that coroutine (e.g. by cancelling the Job in that CoroutineScope), it will stop composing. But there is no way to restart composition in that case.

If the above can be accommodated, can there be an API to seed the last produced state to presenters? This is so that resuming collecting from the presenter does not overwrite the last produced state value.

If you want to stop composition and restart it, that means managing the StateFlow by hand instead of using Molecule's API. The approach you wrote is how you'd do that: use moleculeFlow to create a cold flow that does its own composition, and then use stateIn to share it into a StateFlow. stateIn  provides various options for starting/stopping the driving coroutine depending on how many collectors it has.

Gotcha, if I understand correctly:

launchMolecule is not cancelable and resumable by design. It mirrors CoroutineScope.launch in this regard.
For use cases where being able to stop and resume state production is desired (e.g Android lifecycle and navigation changes), users should opt for moleculeFlow and add their restart semantics on top of it.

I'll close the issue, thank you.


netconify failing to terminate telnet session

Running netconify --facts --telnet=x.x.x.x,yyy -u user -P mypass
25% of the time the session fails to terminate properly and is left in a never ending waiting, which is not ideal when validating 600 terminal server connections via ansible.
This issue seems to occur when nc.close() is called in tty.py, and I suspect that the issue lies somewhere in parsing the rpc response received.  Probably due to login banners being present on the EX-4200's, which are messing things up when the  rpc is made.
If however self.nc.close() is replaced with self._tty_close() which is a bit of a brutal way to force the session to close, this does actually appear to bypass the issue.
I also had issues with detecting the current state of the login as a consequence of login banners being present.  The comment in tty.py for _ev_tty_nologin() , was helpful but did not resolve the issue entirely, and ultimately I needed to enable all three options.
    def _ev_tty_nologin():
      if self._ST_INIT == self.state:
        self.state = self._ST_TTY_NOLOGIN
        self.write('<close-session/>')
        sleep(5)
        self.write('\n')

In order for the state to be managed and finally lead to a login prompt.  These changes in addition to the others, worked successfully with 600 terminal server port checks.
  def logout(self):
    """
    cleanly logout of the TTY
    """
    self.notify('TTY', 'logging out ...')
    self._tty_close()
    return True

Regards,
Andy
<EMAIL_ADDRESS>

https://github.com/Juniper/py-junos-netconify/issues/46#issuecomment-249655221


sar report is broken

I tried the 'sar report only' but apparently it is broken:
$ sar -p -A 5 10 > /tmp/my_sar_file.txt
$ ./pgcluu -o /tmp/report_sar/ -i /tmp/my_sar_file.txt
FATAL: Can't open directory : No such file or directory
It seems that it broke after 'daily rotation' feature.

Latest commit 0e5a959 might fix that issue. Thanks for the report.


Multiple non-tiling apps

I have a few apps that don't tile:

Powershell
Webstorm/PyCharm

Might be related to #28

Much appreciate all the work you put into this. Makes a switch from Mac into Windows much more pleasant.

There're Read only windows like Taskbar and Powershell, i must guess its related to your question

cmd.exe also doesn't tiled.

I think all privileged windows are not taken into consideration at the moment.

Will close this in favor of #28


DOC: Add some See Also links between similar functions

special.comb and special.binom do the same thing, but with different options.
signal.triang and signal,bartlett are very similar except for the endpoints
fftpack.hilbert and signal.hilbert are both related to Hilbert transforms but not the same.

It looks like none of the cross-submodule docs rendered properly:
https://600-1460385-gh.circle-artifacts.com/0//home/ubuntu/scipy/doc/build/html-scipyorg/generated/scipy.special.comb.html#scipy.special.comb
https://600-1460385-gh.circle-artifacts.com/0//home/ubuntu/scipy/doc/build/html-scipyorg/generated/scipy.special.binom.html#scipy.special.binom
https://600-1460385-gh.circle-artifacts.com/0//home/ubuntu/scipy/doc/build/html-scipyorg/generated/scipy.signal.hilbert.html#scipy.signal.hilbert
https://600-1460385-gh.circle-artifacts.com/0//home/ubuntu/scipy/doc/build/html-scipyorg/generated/scipy.fftpack.hilbert.html#scipy.fftpack.hilbert

Might want to try :func:`~scipy.submodule.function`. (Remember it taking me longer than I would like to figure that out...) (Also it might need to be :py:func: though I don't think so.)

It should default to :py: already. If it doesn't already someone should add an option to sphinx to set a default namespace like scipy (for us) so it could just be:
:func:`signal.bartlett`

Probably needs full name for cross-module links scipy.fftpack.bartlett
--- probably no need for Sphinx-specific markup.

Default namespace is set to scipy.special in
scipy/special/__init__.py docstring  --- you cannot have two default
namespaces.

It looks like none of the cross-submodule docs rendered properly:
https://600-1460385-gh.circle-artifacts.com/0//home/ubuntu/scipy/doc/build/html-scipyorg/generated/scipy.special.comb.html#scipy.special.comb

Isn't that one ok?  It's in the same module.

Ok fixed except for https://622-1460385-gh.circle-artifacts.com/0//home/ubuntu/scipy/doc/build/html-scipyorg/generated/scipy.special.binom.html  which I don't understand.  Other things with add_newdoc seem to be correct?

Need to run generate_ufuncs.py.

So it will be fine in the real documentation but doesn't show up in CircleCI?

If you change stuff in scipy/special/add_newdocs.py, you need to re-run python generate_ufuncs.py and commit the changes.

Oh right, I've done that before.  Should be fixed now.

Looks like you need a rebase

The doc links now all look good but the diff is huge  (+16,630 −16,599). @pv is this expected from running the python generate_ufuncs.py function?

It maybe changed unix-style \n line endings to windows-style \r\n.

Yes indeed, running it on my Unix box made only a few lines changed, thanks @pv

Thanks @endolith


Fine-grained access control natively in ERMrest

I suggest we start doing some pilot testing on dev servers directly from this branch.  Let's get some positive feedback before merging to master.  But, I think it is ready to merge to master if nobody finds bugs or significant performance regressions...
Pilot users should consult the user-docs/acls.md document in this branch.
Compatibility of deployments and protocols
The API and service changes were implemented with transitional deployments in mind. However, there are on-disk DB changes and some API feature changes.

The deployment process will upgrade existing catalogs in a destructive fashion. There is no downgrade option to go back to older master code, other than restoring catalogs from backups taken before the upgrade.
The new service has a different ACL management API and the old meta API become read-only and deprecated. It attempts to expose the new catalog ACLs as if they were meta ACLs, to help with transitional client development. This should be dropped in the future as clients become aware of the newer APIs.
The new service has extra rights summary content in the model introspection results, and clients should be able to look for this and detect that they are talking to the new service while falling back on the old meta API results if this content is absent.
Continued use of PostgreSQL row-level security is not recommended with this codebase. It isn't inherently incompatible, but unless you have an extremely detailed understanding of how everything works, you may create situations where the two policy systems are in conflict and surprising results occur.

New static access controls
The service now supports ACLs at various levels of the model hierarchy. This allows differentiated access decisions on individual parts of the catalog instead of only at the whole catalog level. By only configuring catalog-level policies, one can emulate the old system where every part of the model has identical access controls.

catalog
schema
table
column: can restrict access on certain fields compared to the rest of the table

The new static ACLs have more precise rights which can be individually granted:

enumerate: detect that model element even exists
create: add new child model elements
select: retrieve data content from model element
write: modify data content under model element

insert: add new data rows
update: modify existing data rows
delete: remove existing data rows

owner: ability to manage model definitions

Dynamic access controls
When static ACLs do not permit access to a model element as a whole, dynamic ACL bindings can still grant rights for a limited subset of data in that model element.

table bindings: define how to make access decisions per-row

select: whether row is visible
update: whether row can be mutated
delete: whether row can be removed

column bindings: define how to make access decisions per-field

select: whether value can be seen or whether it is replaced with NULL in query results
update: whether field can be mutated

foreign key reference bindings: define how to make access decisions per-domain value

insert: whether domain key can be expressed during row insertion
update: whether domain key can be expressed during row mutation

The dynamic ACL bindings for tables and columns both express how to make an access decision using policy content stored either directly in the existing row or indirectly in other tuples which can be joined to the target row.  Foreign key reference ACL bindings instead retrieve policy content from the referenced row in the domain table or indirectly from tuples joined to the referenced row.
Policy management
This branch adds new REST APIs to incrementally manage static ACLs and dynamic ACL bindings on existing model elements.  It also expands the JSON representation of model elements so that policies can be included in model creation requests and retrieved in model introspection requests when the retrieving client owns the model element in question.
For all clients, the model introspection representations include new rights summary documents. These tell the client what static rights they have been granted without exposing the actual ACL content to a less-privileged client. A tri-state rights decision is exposed:

true: the right is granted
false: the right is not granted
null: the decision is uncertain and depends on dynamic rights checks on actual data requests

The current code does not include any ability to introspect or predict a dynamic decision. This is no worse off than with the previous codebase mixed with PostgreSQL row-level security. But, eventually we would like to expose additional per-row rights summaries that a GUI client might use to make a better UX. This will require REST API changes and also more invasive client development, so it is deferred for later development.
As a backward-compatibility mechanism, the old meta API is emulated in read-only fashion to expose a subset of top-level catalog ACL content.  This should allow older clients to continue to predict their access rights about as well as they could on the old codebase. Of course, clients should start using the new static rights summary to get a more fine-grained understanding of their rights.  The old meta API compatibility layer should be dropped after a reasonable transition period since it is not very accurate.
Other changes

The old valuemap inverted index table is no longer used for textfacet search

instead, dynamic query is evaluated which should honor fine-grained security decisions
this may introduce a performance regression for sprawling catalog models

Some other bug fixes have been made in this release branch due to interaction with other changed code
The test suite has been completely rewritten, replacing the BASH script with a modular Python script

BTW I set some "reviewers" not because you'll necessarily review any of the code changes but because you might be pilot users...

I suppose it would be good to test this out on GPCR and FaceBase next week?
Carl
From: Karl Czajkowski<EMAIL_ADDRESS>Reply-To: informatics-isi-edu/ermrest<EMAIL_ADDRESS>Date: Friday, June 16, 2017 at 12:18 PM
To: informatics-isi-edu/ermrest<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [informatics-isi-edu/ermrest] Fine-grained access control natively in ERMrest (#152)
I suggest we start doing some pilot testing on dev servers directly from this branch. Let's get some positive feedback before merging to master. But, I think it is ready to merge to master if nobody finds bugs or significant performance regressions...
Pilot users should consult the user-docs/acls.md document in this branch.
Compatibility of deployments and protocols
The API and service changes were implemented with transitional deployments in mind. However, there are on-disk DB changes and some API feature changes.

The deployment process will upgrade existing catalogs in a destructive fashion. There is no downgrade option to go back to older master code, other than restoring catalogs from backups taken before the upgrade.
The new service has a different ACL management API and the old meta API become read-only and deprecated. It attempts to expose the new catalog ACLs as if they were meta ACLs, to help with transitional client development. This should be dropped in the future as clients become aware of the newer APIs.
The new service has extra rights summary content in the model introspection results, and clients should be able to look for this and detect that they are talking to the new service while falling back on the old meta API results if this content is absent.
Continued use of PostgreSQL row-level security is not recommended with this codebase. It isn't inherently incompatible, but unless you have an extremely detailed understanding of how everything works, you may create situations where the two policy systems are in conflict and surprising results occur.

New static access controls
The service now supports ACLs at various levels of the model hierarchy. This allows differentiated access decisions on individual parts of the catalog instead of only at the whole catalog level. By only configuring catalog-level policies, one can emulate the old system where every part of the model has identical access controls.

catalog
schema
table
column: can restrict access on certain fields compared to the rest of the table

The new static ACLs have more precise rights which can be individually granted:

enumerate: detect that model element even exists
create: add new child model elements
select: retrieve data content from model element
write: modify data content under model element
*   insert: add new data rows
*   update: modify existing data rows
*   delete: remove existing data rows
owner: ability to manage model definitions

Dynamic access controls
When static ACLs do not permit access to a model element as a whole, dynamic ACL bindings can still grant rights for a limited subset of data in that model element.

table bindings: define how to make access decisions per-row
*   select: whether row is visible
*   update: whether row can be mutated
*   delete: whether row can be removed
column bindings: define how to make access decisions per-field
*   select: whether value can be seen or whether it is replaced with NULL in query results
*   update: whether field can be mutated
foreign key reference bindings: define how to make access decisions per-domain value
*   insert: whether domain key can be expressed during row insertion
*   update: whether domain key can be expressed during row mutation

The dynamic ACL bindings for tables and columns both express how to make an access decision using policy content stored either directly in the existing row or indirectly in other tuples which can be joined to the target row. Foreign key reference ACL bindings instead retrieve policy content from the referenced row in the domain table or indirectly from tuples joined to the referenced row.
Policy management
This branch adds new REST APIs to incrementally manage static ACLs and dynamic ACL bindings on existing model elements. It also expands the JSON representation of model elements so that policies can be included in model creation requests and retrieved in model introspection requests when the retrieving client owns the model element in question.
For all clients, the model introspection representations include new rights summary documents. These tell the client what static rights they have been granted without exposing the actual ACL content to a less-privileged client. A tri-state rights decision is exposed:

true: the right is granted
false: the right is not granted
null: the decision is uncertain and depends on dynamic rights checks on actual data requests

The current code does not include any ability to introspect or predict a dynamic decision. This is no worse off than with the previous codebase mixed with PostgreSQL row-level security. But, eventually we would like to expose additional per-row rights summaries that a GUI client might use to make a better UX. This will require REST API changes and also more invasive client development, so it is deferred for later development.
As a backward-compatibility mechanism, the old meta API is emulated in read-only fashion to expose a subset of top-level catalog ACL content. This should allow older clients to continue to predict their access rights about as well as they could on the old codebase. Of course, clients should start using the new static rights summary to get a more fine-grained understanding of their rights. The old meta API compatibility layer should be dropped after a reasonable transition period since it is not very accurate.
Other changes

The old valuemap inverted index table is no longer used for textfacet search

instead, dynamic query is evaluated which should honor fine-grained security decisions
this may introduce a performance regression for sprawling catalog models

Some other bug fixes have been made in this release branch due to interaction with other changed code
The test suite has been completely rewritten, replacing the BASH script with a modular Python script

You can view, comment on, or merge this pull request online at:
https://github.com/informatics-isi-edu/ermrest/pull/152
Commit Summary

add basic goals/use cases discussion for acls-everywhere branch [ci skip]
add more acls-everywhere draft documentation [ci skip]
another big revision to acls proposal [ci skip]
Document projection-type for dynamic ACL bindings
Merge branch 'master' into acls-everywhere
change textfacet api from precomputed valuemap to dynamic union query
handle false value in textfacet policy
also handle textfacet where policy excludes all columns
wip snapshot: start adding ACL storage and REST API for model, schema
wip snapshot: ACL storage, partial ACL-authz integration
wip snapshot: more ACL integration
fix regression in previous wip commit
replace bash test script with a python test suite
add python requests package for travis builds
pip install requests as the test user, not via sudo...
add env. variable to disable ssl verification for travis runs
tweaks to test diagnostics to try to debug travis authn failure
dump more request/response diagnostics for failing test suite setup
dump more cookie jar details before and after failure for travis..
use repr instead of str for diagnostcs
dump even more cookie info...
temporarily turn on cookielib.debug logging to stderr
attempt to workaround cookielib behavior for unqualified hostname on travis
fix typo in ermrest-registry-purge-tests.sh
disable cookielib debug logging again
add initial test suite for ACL management APIs and fix bugs to make it pass
fix bugs in validation of supported ACL names
refactor model reuse for sanity
add ownership enforcement for ACL access APIs, adjust catalog/acl tests
add more negative and corner-case tests for ACL management
remove remaining traces of the value_map table and maintenance scripts
add second user and TEST_COOKIES2 to travis build script
wip snapshot: start adding fine-grained authz and test cases w/ bug fixes
small authz changes and refactor authz tests for code deduplication
add table-level mutation ACL test permutations, bug fixes, refactoring
wip: add annotations API support at catalog level
add upgrade support for catalog annotations during ermrest-deploy
Merge branch 'master' into acls-everywhere
add enforcement of 63-byte (utf8) identifier size limit for postgres
add static rights sub-documents in model introspection and test cases
reviewed and edited acls.md doc [ci skip]
more acls.md edits plus code and test reconciliation
add tests for T3 fkeyref rights in static authz tests
thread optional roles through specialized has_rights() methods in model.key
add fkey ACL enforcement and test cases
Merge branch 'master' into acls-everywhere
update acls.md replacing projection strings with projection documents
specify "base" alias for ACL bindings [ci skip]
refactor model class decorators
small test cleanups
refactor acl introspection and rest handlers in prep for dynamic acls
wip snapshot: add dynamic acl storage and rest apis
enable dynacls introspection during model introspection
load generic acl binding deserialization into model for now
fix typo in dynamic acl deletion routine
add acl_bindings sub-document to model elements to show current policy
enable acl binding creation during model element creation via JSON sub-docs
add acl_bindings rest api test module, expand suite w/ acl modules
turn off tracing of acl binding introspection...
add jsonb to default column types policy built-in
stop intercepting exceptions from introspect()
wip snapshot: add AclBinding AST class w/ some validation
relocate some definitions in prep for row-level ACL work [ci skip]
wip snapshot: row-level select ACLs
add support for nonnull table acl projection type
refactor url.ast.data.predicate to model.predicate to avoid circular deps [ci skip]
partial fixes for dynacl enforcement subqueries [ci skip]
fix bugs in dynacl compilation with policies using filters [ci skip]
add authz_dynamic test module w/ basic read-only tests
try to improve error handling on secondary sessions in test suite
add more complex join cases to authz_dynamic test module
add more upgrade logic to ermrest-deploy for acls-everywhere dev branch
Merge branch 'master' into acls-everywhere
fix typo affecting /meta/ api compatibility shim
Merge branch 'master' into acls-everywhere
Merge branch 'master' into acls-everywhere
Merge branch 'master' into acls-everywhere
Merge branch 'master' into acls-everywhere
Merge branch 'master' into acls-everywhere
use live config from web.ctx in primary key check
change all tests to satisfy the newly merged primary key enforcement
add missing unittest.skipIf in authz tests requiring secondary session
change test expectation from 404 to 409 for foreign key lookup error
turn off verbose cookiestore logging
refactor authz_dynamic test module to better reuse expectations
update stale bits in readme [ci skip]
fix dynauthz=False to properly handle NULLs as access denied
add dynamic ACL enformement for data updates
add test cases for dynamic acls and row and attribute updates
add some column-level dynacl support, fix bugs, improve tests
add column dynacl support and tests for DELETE attribute api
fix bug in has_rights tests for finding applicable dynamic acl bindings
add a SelectOnly test class to authz_dynamic
add foreign key dynauthz checks and fix bugs in row insert authz
change default static acls for foreign key refs to all-allow
new foreign key dynacl enforcement needs to use dynacls from fkr not domain table
multiple small fixes and cleanups for authz
try to suppress insecure https request warning on travis builds
Merge branch 'master' into acls-everywhere
add table-to-column dynacl inheritance
Merge branch 'master' into acls-everywhere

File Changes

M .gitignorehttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-0 (1)
M .travis.ymlhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-1 (15)
M README.mdhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-2 (19)
M api-doc/index.mdhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-3 (7)
M api-doc/model/naming.mdhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-4 (13)
M api-doc/model/rest.mdhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-5 (1)
M api-doc/rest-catalog.mdhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-6 (77)
M ermrest/init.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-7 (25)
M ermrest/apicore.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-8 (13)
M ermrest/catalog.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-9 (270)
M ermrest/ermpath/resource.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-10 (421)
M ermrest/ermrest_apis.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-11 (5)
M ermrest/model/init.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-12 (6)
M ermrest/model/column.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-13 (161)
M ermrest/model/introspect.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-14 (42)
M ermrest/model/key.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-15 (299)
M ermrest/model/makefile-varshttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-16 (2)
M ermrest/model/misc.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-17 (742)
R ermrest/model/name.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-18 (188)
R ermrest/model/predicate.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-19 (157)
M ermrest/model/schema.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-20 (134)
M ermrest/model/table.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-21 (187)
M ermrest/model/type.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-22 (1)
M ermrest/url/ast/init.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-23 (28)
M ermrest/url/ast/api.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-24 (52)
M ermrest/url/ast/catalog.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-25 (140)
M ermrest/url/ast/data/init.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-26 (40)
M ermrest/url/ast/data/makefile-varshttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-27 (4)
M ermrest/url/ast/data/path.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-28 (8)
M ermrest/url/ast/makefile-varshttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-29 (6)
M ermrest/url/ast/model.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-30 (312)
M ermrest/url/lex.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-31 (1)
M ermrest/url/parse.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-32 (87)
M ermrest/util.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-33 (8)
M sbin/ermrest-deployhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-34 (133)
D sbin/ermrest-valuemap-recreatehttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-35 (76)
D sbin/ermrest-valuemap-workhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-36 (41)
M sbin/makefile-varshttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-37 (2)
M test/ermrest-registry-purge-tests.shhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-38 (2)
D test/rest-tests.shhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-39 (1620)
A test/resttest/init.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-40 (19)
A test/resttest/main.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-41 (6)
A test/resttest/acl_bindings.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-42 (323)
A test/resttest/acls.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-43 (333)
A test/resttest/annotations.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-44 (83)
A test/resttest/authz_dynamic.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-45 (1162)
A test/resttest/authz_static.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-46 (931)
A test/resttest/basics.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-47 (346)
A test/resttest/bulkschema.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-48 (112)
A test/resttest/catalog.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-49 (44)
A test/resttest/comments.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-50 (69)
A test/resttest/common.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-51 (278)
A test/resttest/ctypes.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-52 (314)
A test/resttest/data.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-53 (188)
A test/resttest/degenerate.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-54 (270)
A test/resttest/joins.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-55 (141)
A test/resttest/paging.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-56 (146)
A test/resttest/preconditions.pyhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-57 (111)
A user-doc/acls.mdhttps://github.com/informatics-isi-edu/ermrest/pull/152/files#diff-58 (874)

Patch Links:

https://github.com/informatics-isi-edu/ermrest/pull/152.patch
https://github.com/informatics-isi-edu/ermrest/pull/152.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/informatics-isi-edu/ermrest/pull/152, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADbjXoR0muXBGeIpKmF1LWhqDyvatowSks5sEtTFgaJpZM4N81Ze.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/informatics-isi-edu/ermrest","title":"informatics-isi-edu/ermrest","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/informatics-isi-edu/ermrest"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Fine-grained access control natively in ERMrest (#152)"}],"action":{"name":"View Pull Request","url":"https://github.com/informatics-isi-edu/ermrest/pull/152"}}}

FaceBase has been using and testing it. We'll now try some of the updates that Karl has been making to it.


[Deprecation] -webkit-radial-gradient

MDL version 1.3.0
Browser Google Chome Canary v60.0.3091.0 (Official Build) canary (64-bit)

I got this deprecation message at my console: "[Deprecation] -webkit-radial-gradient is deprecated. Please use radial-gradient instead".
I have ready my PR for this one if you want my contribution.

This is for Chrome. It appears due to some of the comments in the source this is used to fix a clipping bug in Safari. We'd be unable to merge such a change it seems since that would then break the Safari work-around.

@Garbee Good to know. Thank you!


[GHSA-4993-m7g5-r9hh] etcd has no minimum password length

Updates

Affected products

Comments
This also affects the v2 library.

Hi there @spzala! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository.
This change will be reviewed by our highly-trained Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory

👋 Hi @hanawatson, how did you determine that the v2 branch is vulnerable to CVE-2020-15115? I looked at files changed in version 3.4.10's and version 3.3.23's fix commits related to passwords (https://github.com/etcd-io/etcd/commit/36f8dee00316080e4f54f5df5a12a0fedd634d2c, https://github.com/etcd-io/etcd/commit/6f011ce524636443d5e2c46d70a3d733eaf8837d, https://github.com/etcd-io/etcd/commit/963b242846eccb396ac3c05f0245770139afa434) and the only change made to a file that is present in version 2.3.8 is a change to a documentation file.
Additionally, development of the v2 branch beyond 2.3.8 appears to occur in tags called client/[version number]. I checked the Documentation folder for client/v2.305.9 at https://github.com/etcd-io/etcd/tree/client/v2.305.9/Documentation and was unable to find a documentation file called authentication.go, which is the file where the maintainers indicated at https://github.com/etcd-io/etcd/commit/36f8dee00316080e4f54f5df5a12a0fedd634d2c that administrators need to enforce their own password strength policies.

👋 This pull request has been marked as stale because it has been open with no activity.  If you do nothing this pull request will be closed eventually by the stale bot. Please see CONTRIBUTING.md for more policy details.

Based on the actual code I'm not sure they actually fixed this, and  I do think the 2 line's vulnerable because it doesn't exist on non-empty passwords for password users
client 2.3 logic - no password length logic, not even non-empty)
https://github.com/etcd-io/etcd/blob/release-2.3/client/auth_user.go#L221C32-L221C32
server 2.3 logic - no length requirements here other than non-empty unless told it's a non password user
https://github.com/etcd-io/etcd/blob/release-2.3/etcdserver/auth/auth.go#L223
Client for 3.5 doesn't do anything with passwords, just forwards it on
https://github.com/etcd-io/etcd/blob/main/client/v3/auth.go#L157
server logic for 3.5
https://github.com/etcd-io/etcd/blob/release-3.5/server/auth/store.go#L420C10-L420C10
no length requirements here other than non-empty unless told it's a non password user
These look like the same level, so either they're both "vulnerable" or neither are? Unless I'm missing something?


[state restoration] restorablePush called with List<String?> argument type, but routeBuilder called with List<Object?> argument type

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create screen to be opened using restorablePush
Pass List<String?> type of variable on restorablePush argument
Simulate open restorablePush screen
Simulate don't keep activities
When we reopen the apps, the error occurred, said type 'List<Object?>' is not a subtype of type 'List<String?>' in type cast

Expected results
The argument type of routeBuilder should be the same as argument type when we push screen using restorablePush, since List<String?> is can be serializable using StandardMessageCodec
Actual results
routeBuilder is called with argument type List<Object?> instead of List<String?>
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

final navigatorKey = GlobalKey<NavigatorState>();

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      restorationScopeId: "app",
      navigatorKey: navigatorKey,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const SplashScreen(),
      builder: _builder,
    );
  }

  Widget _builder(BuildContext context, Widget? child) {
    return child ?? const Scaffold();
  }
}

class SplashScreen extends StatefulWidget {
  const SplashScreen({super.key});

  @override
  State<SplashScreen> createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            const TypeScreen(
              type: TypeEnum.test1,
              title: "TEST1",
            ).openRestorable();
          },
          child: const Text("TEST"),
        ),
      ),
    );
  }
}

enum TypeEnum { test1, test2 }

T? stringToEnum<T>(Iterable<T> values, String? value) {
  for (var type in values) {
    if ((type as Enum).name == value) return type;
  }
  return null;
}

class TypeScreen extends StatefulWidget {
  final String? title;
  final TypeEnum type;

  const TypeScreen({
    super.key,
    required this.type,
    this.title,
  });

  @override
  State<TypeScreen> createState() => _TypeScreenState();

  @pragma('vm:entry-point')
  static Route<void> _routeBuilder(BuildContext context, Object? rawArguments) {
    final argument = rawArguments as List<String?>;
    final screen = TypeScreen(
      type: stringToEnum<TypeEnum>(
        TypeEnum.values,
        argument[0],
      )!,
      title: argument[1],
    );
    return MaterialPageRoute<void>(
      builder: (context) => screen,
    );
  }

  String? openRestorable({bool replace = false, dynamic result}) {
    final argument = <String?>[type.name, title];
    if (replace) {
      return navigatorKey.currentState?.restorablePushReplacement(
        _routeBuilder,
        arguments: argument,
        result: result,
      );
    } else {
      return navigatorKey.currentState?.restorablePush(
        _routeBuilder,
        arguments: argument,
      );
    }
  }
}

class _TypeScreenState extends State<TypeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title ?? "unknown"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Type Screen: ${widget.type.name}',
            ),
          ],
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/19973012/76fe3009-5cf1-4454-add1-d91e1ec51a10

Logs
Logs
======== Exception caught by widgets library =======================================================
The following _CastError was thrown building _FocusMarker:
type 'List<Object?>' is not a subtype of type 'List<String?>' in type cast

The relevant error-causing widget was:
  MaterialApp MaterialApp:file:///Users/aziz/StudioProjects/restoration_test/lib/main.dart:14:12
When the exception was thrown, this was the stack:
#0      TypeScreen._routeBuilder (package:restoration_test/main.dart:81:35)
#1      _AnonymousRestorationInformation.createRoute (package:flutter/src/widgets/navigator.dart:5422:47)
#2      _RestorationInformation.toRouteEntry (package:flutter/src/widgets/navigator.dart:5331:34)
#3      _HistoryProperty.restoreEntriesForPage (package:flutter/src/widgets/navigator.dart:5552:69)
#4      NavigatorState.restoreState (package:flutter/src/widgets/navigator.dart:3334:42)
#5      RestorationMixin._doRestore (package:flutter/src/widgets/restoration.dart:917:5)
#6      RestorationMixin.didChangeDependencies (package:flutter/src/widgets/restoration.dart:903:7)
#7      NavigatorState.didChangeDependencies (package:flutter/src/widgets/navigator.dart:3405:11)
#8      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5119:11)
#9      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
...     Normal element mounting (338 frames)
#347    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
#348    Element.updateChild (package:flutter/src/widgets/framework.dart:3676:20)
#349    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#350    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#351    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#352    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2743:19)
#353    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:863:21)
#354    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:381:5)
#355    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1289:15)
#356    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1218:9)
#357    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:942:7)
#361    _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:192:26)
(elided 3 frames from class _Timer and dart:async-patch)
====================================================================================================

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.7.2, on macOS 14.0 23A5301h darwin-arm64, locale id-ID)
    • Flutter version 3.7.2 on channel stable at /Users/aziz/Library/Flutter/main
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 32fb2f948e (6 months ago), 2023-02-08 07:30:10 -0800
    • Engine revision f40b73f8a4
    • Dart version 2.19.2
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0-rc4)
    • Android SDK at /Users/aziz/Library/Android/sdk
    • Platform android-33, build-tools 34.0.0-rc4
    • ANDROID_HOME = /Users/aziz/Library/Android/sdk
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk-<IP_ADDRESS>.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment (build <IP_ADDRESS>+1-1)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode-beta.app/Contents/Developer
    • Build 15A5195m
    • CocoaPods version 1.12.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] VS Code (version 1.79.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 12 (API 32) (emulator)
    • macOS (desktop)             • macos         • darwin-arm64   • macOS 14.0 23A5301h darwin-arm64
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 115.0.5790.114

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

Hi @azizarc88. Thanks for filing this issue. I'm unable to reproduce this issue on the latest versions of flutter (Tested on Android and iOS). I see you are on an old version, can you upgrade to the latest versions of flutter to confirm this issue no longer persists?
https://github.com/flutter/flutter/assets/53122008/f421059b-ea98-4d1b-b3cc-78c5782b4bf5
flutter doctor -v

[✓] Flutter (Channel stable, 3.10.6, on macOS 13.0 22A380 darwin-arm64, locale
    en-NG)
    • Flutter version 3.10.6 on channel stable at
      /Users/damilolaalimi/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f468f3366c (4 weeks ago), 2023-07-12 15:19:05 -0700
    • Engine revision cdbeda788a
    • Dart version 3.0.6
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/damilolaalimi/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.80.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.0 22A380 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 115.0.5790.170

[✓] Network resources
    • All expected network resources are available.

• No issues found!

have you enable don't keep activities from developer option ?

Hi @azizarc88. Thanks for explaining further, I am able to reproduce this issue on Android with the steps you explained on the latest master and stable channels. Not too sure but this might be the expected behavior. Can you try this if it works in your use-case:
Code Sample

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

final navigatorKey = GlobalKey<NavigatorState>();

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      restorationScopeId: "app",
      navigatorKey: navigatorKey,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const SplashScreen(),
      builder: _builder,
    );
  }

  Widget _builder(BuildContext context, Widget? child) {
    return child ?? const Scaffold();
  }
}

class SplashScreen extends StatefulWidget {
  const SplashScreen({super.key});

  @override
  State<SplashScreen> createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            const TypeScreen(
              type: TypeEnum.test1,
              title: "TEST1",
            ).openRestorable();
          },
          child: const Text("TEST"),
        ),
      ),
    );
  }
}

enum TypeEnum { test1, test2 }

T? stringToEnum<T>(Iterable<T> values, String? value) {
  for (var type in values) {
    if ((type as Enum).name == value) return type;
  }
  return null;
}

class TypeScreen extends StatefulWidget {
  final String? title;
  final TypeEnum type;

  const TypeScreen({
    super.key,
    required this.type,
    this.title,
  });

  @override
  State<TypeScreen> createState() => _TypeScreenState();

  @pragma('vm:entry-point')
  static Route<void> _routeBuilder(BuildContext context, Object? rawArguments) {
    final argument = rawArguments as List;
    final screen = TypeScreen(
      type: stringToEnum<TypeEnum>(
        TypeEnum.values,
        argument[0],
      )!,
      title: argument[1],
    );
    return MaterialPageRoute<void>(
      builder: (context) => screen,
    );
  }

  String? openRestorable({bool replace = false, dynamic result}) {
    final argument = <Object?>[type.name, title];
    if (replace) {
      return navigatorKey.currentState?.restorablePushReplacement(
        _routeBuilder,
        arguments: argument,
        result: result,
      );
    } else {
      return navigatorKey.currentState?.restorablePush(
        _routeBuilder,
        arguments: argument,
      );
    }
  }
}

class _TypeScreenState extends State<TypeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title ?? "unknown"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Type Screen: ${widget.type.name}',
            ),
          ],
        ),
      ),
    );
  }
}

Thanks for your response @azizarc88. Yes, it seems to be supported but also from the doc:

Decoded values will use List<Object?> and Map<Object?, Object?> irrespective of content.

yes, but why List<Object?> cannot directly cast to List<String?> and throwing an error 🤔

Hi @azizarc88. Thanks for responding. To cast a List<Object?> to List<String?>:
List<Object?> objectList = ["1", 'two', "3.0", null, 'five'];

  List<String?> stringList = objectList.cast<String?>();

or
List<Object?> originalList = [1, 'two', 3.0, null, 'five'];

List<String?> stringList = originalList.map((item) {
  if (item is String) {
    return item;
  } else if (item != null) {
    return item.toString();
  } else {
    return null;
  }
}).toList();

Closing this as this seems to have been resolved, if you disagree, kindly comment and I'd reopen this.
Thank you!


docs: update to expose that IPv6 Inbound CIDRs are supported

as related to #991
The only example in the current documentation is this:
alb.ingress.kubernetes.io/inbound-cidrs: <IP_ADDRESS>/24

I'd be happy to submit a PR if that makes sense to update the docs here:
https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/#inbound-cidrs

looks like this may also need updating:
https://github.com/kubernetes-sigs/aws-alb-ingress-controller/blob/master/docs/guide/ingress/annotation.md

additionally, the docs don't specify the format to provide a list of CIDRs

/remove-lifecycle stale

The new v2 documentation has v6 examples as well.
https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/ingress/annotations/#inbound-cidrs


HSEARCH-2806 Remove method org.hibernate.search.engine.spi.EntityIndexBinding.getIndexManagers

https://hibernate.atlassian.net//browse/HSEARCH-2806

Did you happen to "evaluate the impact" on Infinispan?

@Sanne I thought you created the ticket because it became doable in Infinispan...
I'll have a look. Version 9.1 only, right?

@Sanne Infinispan master can compile with a few changes, at least: https://github.com/yrodiere/infinispan/tree/HSEARCH-2806
I can't easily build it on our CI, I'll have a look on Monday.

I trust that it's possible but I'm slightly concerned for 2 reasons:

the resulting code on Infinispan looks even less compelling -> should we improve our API?
they shipped the 9.1.0.Final already -> not really "our problem" but we could try to be nice neighbours: they probably expect component upgrades to be drop-in compatible now.

No "vetoing" this change but is it worth it?

No "vetoing" this change but is it worth it?

Personally I don't care, I just worked on this because you added a ticket for it in 5.8. We can postpone it to 6.

FYI, the Infinispan tests pass even after the changes: http://ci.hibernate.org/job/infinispan-yoann/3/
There are some test failures, but they seem unrelated.

merged this! Let's keep your Infinispan branch around..


feat(post-scan action): Create terraform version for the aws-promote-and-quarantine-plugin

Add terraform template option
Change Summary
This update will allow deployment of the promote-and-quarantine plugin using terraform
PR Checklist

[X] I've read and followed the Contributing Guide.
Documents/Readmes

[X] Updated accordingly
[ ] Not required

Plugins that have versioning

[ ] Version bumped and follows Semantic Versioning
[X] Not required

Why this PR include the Terraform template for aws-python-slack-notification?

Success Move / Copy to Promote / Quarantine by terraform template

20221114

?

If Terraform variables name are changed, please also modify the old variables with the new naming in the other files, and apply the deployment to ensure the template is working fine.

I will leave this one for the last until all the changes are made to avoid re-work

Why this PR include the Terraform template for aws-python-slack-notification?

That was a mistake, I will fix it...

Why this PR include the Terraform template for aws-python-slack-notification?

That should be fixed as well...

The folder "aws-python-slack-notification" still in this PR.
post-scan-actions/aws-python-slack-notification

Why this PR include the Terraform template for aws-python-slack-notification?

That should be fixed as well...

The folder "aws-python-slack-notification" still in this PR. post-scan-actions/aws-python-slack-notification

Please remove the changes for  aws-python-slack-notification in this PR.

All the references from others files in the Slack plugin should be removed now.

Hey @jack-c-tang can you review this PR?

Hi @felipecosta09 , Please squash your commits.

Hi @felipecosta09 , Please squash your commits.

Hi @kwan-su please squash from your side, it is just a button click. Check the #94


[fix] Docker gen.validators script

This PR is:

fixing the gen.committee.py file to assign the correct id to the workers
changing the gen.validators.sh file to make prometheus parse workers as well for metrics.

Is there something we could have captured in the snapshot tests updated in #625 that would have helped the next developer how to make those updates in advance? (e.g. : adding to the test : "you should run the following Docker script and check everything passes")

I see what you mean @huitseeker . Off the top of my head, I believe the most straightforward way would be to have a dedicated test that runs the python code that generates the committee.json file and compares the output like we do in the snapshot testing. Might be other more elegant ways but this will give us strong guarantees that we remain consistent


41986: Remove experimental feature to use clientapi_core.lib.xml

Rationale
Issue 41986 outlines the process for fully switching over to using @labkey/api by removing the experimental flag. This PR removes the flag and fully switches us over from using clientapi_core.lib.xml to using labkey_api_js.lib.xml. It updates clientapi_core to be a backwards compatible reference for labkey_api_js.
With this, a portion of the clientapi/core scripts (e.g. Experiment.js, Assay.js, etc) can be removed as they are no longer accessible and have been fully supplanted by their @labkey/api counterpart. Another portion of these scripts are still utilized by our server-side JS. For these I've moved them into the server-side scripts directory (core/resources/scripts/labkey) and updated the Gradle plugin to no longer generate these scripts.
All of these scripts included inline documentation which was rolled up and served via JSDoc. To help users access the new documentation generated with @labkey/api I've added a banner message to the JSDoc site. See https://github.com/LabKey/tools/pull/1 for more information.
Related Pull Requests

https://github.com/LabKey/gradlePlugin/pull/106
https://github.com/LabKey/tools/pull/1
https://github.com/LabKey/platform/pull/1021 (added the experimental flag)

Changes

Check-in the generated server-side JS scripts and remove the clientapi/core scripts.
Remove EXPERIMENTAL_JAVASCRIPT_API experimental flag. The @labkey/api package is now the only implementation served to the client-side.
Update clientapi_core.lib.xml to be a backwards compatible reference for labkey_api_js.lib.xml. This will keep it working for anyone who had been requesting that library explicitly.
Remove core/script-fragments/labkey as they are no longer needed due to the server-side scripts no longer being generated. The ExtJS variants still remain.
Migrate inline documentation for clientapi/dom scripts that was previously in the associated clientapi/core script due to how the documentation is generated (see TODO above).

This is blocked on merging until the gradlePlugin version is updated and released. This will be done with https://github.com/LabKey/server/pull/18.


Adaptions to compile with OCC 7.2.0

fixes #429

I just run the unit tests with OCC 7.2 and there are multiple tests failing:

OccIssues.GeomAPI_ExtremaCurveCurve
TiglBSplineAlgorithms/GordonSurface.testFromBRep/2
TiglBSplineAlgorithms/GordonSurface.testFromBRep/8
TiglBSplineAlgorithms/GordonSurface.testFromBRep/9
and then the test executable crashes with a "vector subscript out of range" (VS debug error)

I'm not sure if these issues are caused by this PR, i guess they have existed before. So in case the CI tests run successfully, I guess the PR is ok for your OCC version.

I just run the unit tests with OCC 7.2 and there are multiple tests failing

@bernhardmgruber This is indeed a regression of OCCT 7.2.0, introduced in commit http://git.dev.opencascade.org/gitweb/?p=occt.git;a=commit;h=246c7a7554dd24047ada720fbfce42e9c10b4657.
This however is not introduced by your changes!
I filed an issue into the OCCT issue tracker: https://tracker.dev.opencascade.org/view.php?id=29858

Great news! I though i have to fix something again^^
And thanks for opening an issue, maybe they can fix it with the next version


IOS - Contact list becomes empty after activating voice typing and deactivating it

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.75-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Component Left Hand Navigation (LHN)
Action Performed:

Open IOS hybrid app
Tap on FAB > Start chat
While the input field is in focus tap on voice typing
Tap on it again to deactivate voice typing

Expected Result:
The contact list shows recent and all contacts
Actual Result:
The contact list becomes empty
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Standalone
[ ] Android: HybridApp
[ ] Android: mWeb Chrome
[x] iOS: Standalone
[x] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

https://github.com/user-attachments/assets/cb12c457-3215-45d3-a0bf-a7a5e13db869
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.

The contact list becomes empty

What is the root cause of that problem?

The bug has been reported here.

When we deactivate voice typing, an additional U+FFFC is added to the end of input's value. It leads to the contact list becomes empty.

What changes do you think we should make in order to solve the problem?

We can update:

    const setValue = (newValue: string) => {
        let formattedValue = isMultiline ? newValue : newValue.replace(/\n/g, ' ');
        formattedValue = formattedValue.replace(/\uFFFC/g, '');

It will remove the U+FFFC from the input value. We can consider only applying that removal if the platform is IOS.
https://github.com/Expensify/App/blob/10bfe9ab2895923c3f985d6529f6ff25809053e4/src/components/TextInput/BaseTextInput/index.native.tsx#L220-L221

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

We can create the util function to get the formattedValue such as:

    const getFormattedText = (newValue)=>{
        let formattedValue = isMultiline ? newValue : newValue.replace(/\n/g, ' ');
        formattedValue = formattedValue.replace(/\uFFFC/g, '');
        return formattedValue
    }

and check if the input contains \uFFFC, it should be removed from output.
What alternative solutions did you explore? (Optional)

Ehhh, I am not convinced this is really worth doing anything about now. I can reproduce this, but if you type something in the search box, anything at all, the contacts appear again. It seems like the voice to text result is treated as a search result even when it's empty, so you just need to add something to bring about a different result.
I'm not super convinced this will really come up frequently, if at all. As it is fairly intuitive that you just type in the box to see other results.
I'm going to close this for now and we can revisit if actual customers report confusion about this. LMK if anyone disagrees with that!

@joekaufmanexpensify I understand the low priority for now, but this issue could impact user experience significantly. When the contact list appears empty after voice typing, it’s not intuitive for users to know they just need to type something to restore it. This could lead to confusion or frustration, especially for first-time users or those relying on voice input. Fixing it now, with minimal effort, can prevent potential complaints later and ensure a smoother experience.

Hm, I am not sure I agree on the intuitiveness. I personally expect if someone sees empty search results, they're likely to either type something else, or navigate out and back into the page. Both of which resolve this. Further, I would be surprised if many/any customers intentionally experience this. In fact, the only real case I see for this is someone using voice to type by mistake because if there's any input there will be search results. In which case I'd expect them to type right after because they probably meant to be searching something with the keyboard.
I still think we should wait and see if this impacts any customers and then fix it then, if so.


Update raw-window-handle to v0.5

Update raw-window-handle to v0.5. This mainly consisted of using the
newly added RawDisplayHandle trait instead of the previously used
RawWindowHandle trait. For the Linux implementation, this also included
updating winit to v0.27
Context: I am trying to update a rust game to winit v0.27, because that fixes a nasty bug, but raw-window-handle v0.3 is holding me back. The game uses your library and thus also uses raw-window-handle v0.3.

... oh btw, this is a breaking change.


Error in accessing string within a numba struct

Suppose I have a numpy recarray with a heterogenous dtype that includes fixed length strings:
import numpy as np
import numba

N = 10
numpy_dtype = [('a', np.float64), ('b', np.int32), ('c', (np.str_, 5))]
arr = np.recarray(N, dtype=numpy_dtype)

# Fill with data
arr.a = np.random.normal(size=(N,))
arr.b = np.arange(N).astype(np.int32)
arr.c = np.array(['abcde']*N, (np.str_, 5))

### Is there a better type to use below rather than numba.string_ ?
numba_type_map = {'<f8': numba.f8, '<i4': numba.i4, '|S5': numba.string_}
numba_dtype = [(field, numba_type_map[field_type]) for field, field_type in arr.dtype.descr]
record_type = numba.struct(numba_dtype)

@numba.jit(numba.void(record_type[:]))
def test(x):
    sz = x.shape[0]
    for k in xrange(sz):
        s = x[k].c   #<<<<<<<<<<<<<<<<<<<<<<<
        if s == 'abcde':
            print k, s, numba.typeof(s)

if __name__ == '__main__':
    test(arr)

In the above code if s=x[k].c, I get an error:
Traceback (most recent call last):
  File "ntest.py", line 17, in <module>
    @numba.jit(numba.void(record_type[:]))
  File "/Users/lev/anaconda/lib/python2.7/site-packages/numba/decorators.py", line 224, in _jit_decorator
    nopython=nopython, func_ast=func_ast, **kwargs)
  File "/Users/lev/anaconda/lib/python2.7/site-packages/numba/decorators.py", line 133, in compile_function
    func_env = pipeline.compile2(env, func, restype, argtypes, func_ast=func_ast, **kwds)
  File "/Users/lev/anaconda/lib/python2.7/site-packages/numba/pipeline.py", line 144, in compile2
    post_ast = pipeline(func_ast, env)
  File "/Users/lev/anaconda/lib/python2.7/site-packages/numba/pipeline.py", line 191, in __call__
    ast = self.transform(ast, env)
  File "/Users/lev/anaconda/lib/python2.7/site-packages/numba/pipeline.py", line 656, in transform
    ast = stage(ast, env)
  File "/Users/lev/anaconda/lib/python2.7/site-packages/numba/pipeline.py", line 641, in _stage
    return _check_stage_object(stage_obj)(ast, env)
  File "/Users/lev/anaconda/lib/python2.7/site-packages/numba/pipeline.py", line 202, in __call__
    reporting.report(env, exc=e)
  File "/Users/lev/anaconda/lib/python2.7/site-packages/numba/reporting.py", line 181, in report
    raise exc
numba.error.NumbaError: (see below)
--------------------- Numba Encountered Errors or Warnings ---------------------
        if s == 'abcde':
-----------^
Error 23:11: Comparisons of types string and string are not yet supported
--------------------------------------------------------------------------------

However, if s=x.c[k], I get the expected result:
0 abcde object
1 abcde object
2 abcde object
3 abcde object
4 abcde object
5 abcde object
6 abcde object
7 abcde object
8 abcde object
9 abcde object

although, I do not completely understand why numba is typing the fixed length string as an object. For the code that breaks, numba.typeof(s) for s=x[k].c returns string.
Is there a better way to type fixed length strings in numba than the way I'm currently doing things? @markflorisson88, @teoliphant - Will numba 0.2 possibly address the error?
This code was tested using Anaconda 1.8.0 on OS X with numba 0.11.1.

Closing this as it uses code that simply does not exist any more (latest Numba is 0.43.1).


Random HP and no results

Characters start off with a random number off HP remaining and results against all are not showing...

I can't reproduce this. Possibly a specific browser problem. Please provide as much info as possible.
Thanks


Right single quotation mark being used instead of apostrophe

Looking through the training data, I noticed that the right single quotation mark (U+2019) ’ is being used in several places instead of the apostrophe ', for instance:
    - I’d like to make a transfer
    - I’d like to send money

I imagine that this would have an effect on downstream ML processes as the apostrophe is more commonly recognized in this context. Happy to open a pull request if this is an issue.

Thanks for raising this issue, @alopez will get back to you about it soon✨
Please also check out the docs and the forum in case your issue was raised there too 🤗

Now that I think of it, technically if the single quotation mark occurs in real life then it also makes sense to keep in the training data. Just to play safe there, feel free to just add two examples with the apostrophe in this case.

Makes sense, closing the issue


Different binding Data from JSON to Controller in .NET core API and Web API 2

From @LeDucThang on August 14, 2018 5:39
Issue Title
Different binding Data from JSON to Controller in .NET core API and Web API 2
General
compare between API in .NET core 2.1 and Web API 2 in .NET Framework 4.6
With .NET core, i used this configuration in Startup file
services.AddMvc(options =>
            {
                options.Filters.Add(new AuthenticationFilter(Configuration, JWTHandler));
            }).AddJsonOptions(options =>
            {
                options.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
                options.SerializerSettings.ContractResolver = new DefaultContractResolver();
                options.SerializerSettings.DefaultValueHandling = DefaultValueHandling.Populate;
            });

With .NET 4.6, i use default template Web API 2
My DTO:
public class CarrierEntity : BaseEntity
    {
        public Guid Id { get; set; }
        public string Code { get; set; }
        public string Name { get; set; }
        public bool IsActive { get; set; }
        public CarrierEntity():base() { }
        public CarrierEntity(Carrier Carrier, params object[] args) :base(Carrier) {}
    }

My Controller:
[Route("api/Carriers")]
public class CarrierController : CommonController
{
	private ICarrierService CarrierService;
	public CarrierController(ICarrierService CarrierService)
	{
		this.CarrierService = CarrierService;
	}
	[Route(""), HttpPost]
	public CarrierEntity Create([FromBody]CarrierEntity CarrierEntity)
	{
		return CarrierService.Create(EmployeeEntity, CarrierEntity);
	}
}

I use this json for 2 case
{
   "Code":"ABC",
   "Name":"ABC"
}

With .NET full, the mapped object is
{
   "Id": "00000000-0000-0000-0000-000000000000",
  "Code":"ABC",
   "Name":"ABC"
   "IsActive":false
}

With .NET core, the controller cannot bind json to CarrierEntity object.
But if i use json like bottom, my .net core web app can bind json to CarrierEntity object.
{
   "Id": "00000000-0000-0000-0000-000000000000",
  "Code":"ABC",
   "Name":"ABC"
   "IsActive":false
}

My question is which configuration can make .net core web app binding like old framework web api 2
Copied from original issue: dotnet/core#1858

@dougbu, can you please look into this? Thanks!

With .NET core, the controller cannot bind json to CarrierEntity object.

@LeDucThang please clarify this statement. For example, is the CarrierService value non-null but all properties uninitialized? Does the ModelState include errors?
I'm also wondering whether the difference between ASP.NET MVC and ASP.NET Core MVC is due to different versions of Json.NET. Please check if using the latest Newtonsoft.Json package (v11.0.2) in both makes the behaviour consistent.
If differences remain, please provide us with two minimal repro projects that illustrate the inconsistency, preferably hosted in a GitHub repo. That'll help avoid me testing different scenarios than your exact case or speculating about BaseEntity and CommonController.

Hi. We're closing this issue as there's been no response and we have been unable to reproduce it. If you have more details and are encountering this issue please add a new reply and re-open the issue.

Dear mkArtakMSFT  and dougbu
Last week, i was too busy and could not response you. I give you my repository with 4 case which compared between WebAPI2 and CoreAPI in TestAPI project
https://github.com/LeDucThang/EShop
the main difference is : WebAPI recognize null to DefaultValue and CoreAPI cannot parse json to entity object

@LeDucThang the difference here goes away if you update the actions to check ModelState.IsValid:
if (!ModelState.IsValid)
{
    return BadRequest(ModelState);
}

In both ASP.NET Core MVC and ASP.NET Web API errors are reported in your tests. In the Core case, the response is
"{\"Time\":[\"Error converting value {null} to type 'System.DateTime'. Path 'Time', line 1, position 38.\"]}"

And for non-Core, the same error is serialized as
"{\"Message\":\"The request is invalid.\",\"ModelState\":{\"CarrierEntity.Time\":[\"Error converting value {null} to type 'System.DateTime'. Path 'Time', line 1, position 38.\"]}}"

With respect to the null parameter value, we made an intentional change between Web API and ASP.NET Core MVC to be more consistent about deserialization errors. The model is not bound when the request is invalid.

i understood. thank you very much. i will change my project with your suggestion


fix: add check for length == 0 to prevent mask to allow any data key

Task linked: DEV-7697 (C4 #97) - Insufficient Length Check When Verifying Allowed Data Keys