Remove grid item at certain breakpoints

Thanks for all the work with this library, it has been a pleasure to use so far.
I've been messing with the idea of hiding/removing a grid item at certain breakpoints, e.g., a user has a grid item that contains a picture that is meant for a desktop view and not a mobile view.
I successfully removed a grid item from the layouts prop for a certain breakpoint but after resizing to a different breakpoint the change trickles down and the grid item is removed for the new breakpoint as well.
Has anyone implemented such functionality? If not, is there a task on the roadmap to support it? (perhaps through a 'isVisible' flag on a grid item)

You'll need to define all possible breakpoints in this case, because if you define a breakpoint by width but you don't define a layout to go along with it, the library will attempt to fudge a breakpoint by best-effort.

@sh3nan1gans did you solve this? I'm looking into this aswell. Removing some items at some breakpoint and showing some at others.
@STRML is it possible to do at all?

@nilssonan - I haven't attempted to do this yet. Might be a while until I get around to trying it out.


Problem in developer installation of OpenFermion-Cirq

When trying to install OpenFermion-Cirq version 0.2.2.dev35 in developer mode, the installer requests the file runtime-requirements.txt, which is not present in the repository and makes the installation to fail. What is present is a file called requirements.txt. If I modify setup.py to change the name from runtime-requirements.txt to requirements.txt, then another error arises:
error in openfermioncirq setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "'+git://g'"

#300 fixes the first issue (wrong reference to requirements file). As for the second issue, that's happening because we are near the end of a release cycle and need to direct our continuous integration services at the develop branches of Cirq and OpenFermion. A quick and dirty fix is just to remove or comment those lines from the requirements file, and manually install the development versions of Cirq and OpenFermion.

More generally, I don't think our developer install instructions should be telling devs to install openfermioncirq itself. Doing so creates ambiguity about whether import openfermioncirq is going to import the installed version or the source code you've been editing, which can result in some very confusing situations.

But the purpose of the -e option of pip install is to make it so that the source code you've been editing is the installed version. I think it's more convenient to do pip install -e . than to have to manually set your PYTHONPATH (is that recommendation you're suggesting?).

Oh, really? I guess that does make sense then. I've always just edited my path, or used homebrew commands that include my working directory in the path before running python commands.

@Strilanc the solution to this is to put the dev releases in requirements.txt, right?

Correct. Once we depend on cirq~=0.4.0.dev and similarly for openfermion, this should stop being a problem.

master now depends on the dev versions of Cirq and OpenFermion.


locationPermissionLevel not taken into account on Android

🐛 Bug Report
After specifying locationPermissionLevel

The plugin still asks to use permissions all the time on Android.
Expected behavior
Location permission dialog is not asking to allow permission all the time.
Reproduction steps
invoke getCurrentPosition method and specify locationPermissionLevel parameter.
Permission dialog will ask about allowing location all the time.
Configuration
Version: ^5.3.2+2
Platform:

[ ] :iphone: iOS
[x] :robot: Android

Hi @kightsonsanom,
I am currently working on a major new release which will also solve this problem, hope you have a little bit more patience. Thanks for reporting though.

@mvanbeusekom It works as expected, thank you!


Number of Projects in Maps

When a project is added, the community partner pop-up box field “number of Projects” in maps won’t change. This error should be fixed.

same issue to #468

@vineethreddyramasa assigned as QA.

@shashankpatibandla as QA tester

Passed. test document - https://docs.google.com/spreadsheets/d/1W4L89SBJNWQJow-gi0Odr3ZvQqe2NSUSY3oo3s3yU3o/edit#gid=1361726414


⚠ Samsung has degraded performance

In 527be61, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2317 ms

Resolved: Samsung performance has improved in 0d35ea2.


Missing module: polars

Command: singularity exec --bind ${TEST_DIR}:/candle_data_dir build/PathDSP.sif /usr/local/PathDSP/train.sh 5 /candle_data_dir --epochs 1
Output:
--epochs is not a file
CMD = python /usr/local/PathDSP/train.py --epochs 1
using data from /candle_data_dir
/candle_data_dir//Data
/usr/local/PathDSP/train.sh: line 72: ./candle_glue.sh: No such file or directory
using original data placed in /candle_data_dir//Data
using CUDA_VISIBLE_DEVICES 5
using CANDLE_DATA_DIR /candle_data_dir
using CANDLE_CONFIG
activating environment
Not a conda environment: /usr/local/conda_envs/PathDSP_env
running command python /usr/local/PathDSP/train.py --epochs 1
Importing candle utils for pytorch
Traceback (most recent call last):
File "/usr/local/PathDSP/train.py", line 6, in
from preprocess_new import mkdir, preprocess
File "/usr/local/PathDSP/preprocess_new.py", line 6, in
import polars as pl
ModuleNotFoundError: No module named 'polars'

Are there a requirements file or install instructions?

I have updated documentation


bump to v0.24.0-beta.0

/retest

/assign @soltysh

/hold

test matrix is green, good to merge
/hold cancel


Can't set no_selection=true

I'm using lazyvim and trying to enable the no_selection. Selecting multiple words with Ctrl + D then using mi creates multi cursor successfully but the words are still selected. My expectation is that I can append to these words after pressing mi

Here's my lua config
return {
  "vscode-neovim/vscode-multi-cursor.nvim",
  event = "VeryLazy",
  vscode = true,
  opts = function(_, opts)
    vim.keymap.set("n", "<C-d>", "mciw*<Cmd>nohl<CR>", { remap = true })

    local custom_opts = {
      no_selection = true,
    }

    opts = vim.tbl_extend("force", opts, custom_opts)
    return opts
  end,
}

Please add some print statements to see what the output is.
https://github.com/vscode-neovim/vscode-multi-cursor.nvim/blob/67e101404db09a26acdfccb3a0fdbcc49768b834/lua/vscode-multi-cursor/config.lua#L18-L21
 function M.setup(opts)
   config = {}
   config = M.get(opts)
   vim.print(config)
 end

hi @xiyaowong. The config is loaded as expected. Here's the output in vscode

hi @xiyaowong , the config is set correctly. Here's the vscode output


System-tests: create test for REST API - DELETE | /v1/addresses/myspace

tracker https://github.com/EnMasseProject/enmasse/issues/936
Create new tests for delete all addresses with REST API

https://github.com/EnMasseProject/enmasse/pull/1045/files


Swift when(): Promise not fulfilled if passed an empty array

If when() is passed an empty array the rootPromise is never fulfilled.
I would expect it to be fulfilled right away.

Ah sorry, noticed that the latest version guards against this now. Closing.


Unable to include HTML formatting in errors via simple_forms

My company uses uniqueness checks, and sometimes requires a link to the duplicated item.
However the HTML is escaped and the link does not render. I can't find a way to configure Simple Form to make this display the link instead of raw HTML.
Using:

Rails 3.2.22
Simple Form 2.1.3
Bootstrap

Reproduction:

git clone https://github.com/AJFaraday/simple_form_issue_app
rake assets:precompile
rake db:create
rake db:migrate
rails s
Point a browser at localhost:3000
Click 'New Doohickey'
Type the name 'test'
Click 'Create Doohickey'
Click 'New Doohickey'
Type the name 'test'
Click 'Create Doohickey'

Observe: The error message contains an  tag, which is visible, and not rendered as a link.

I have tried:

Wrapping the input call in a raw call.
Looking for options for /config/initializers/simple_form.rb and /config/initializers/simple_form_bootstrap.rb

Is this a bug? Or is there some kind of config option I'm missing which would make this link display?

Hi @AJFaraday
Thanks for the report 😄
We only release security fixes for this version, try to update to the last version of simple form.
Thanks


fix: enable help for category statuses

Description of changes
This PR adds functionality to the preserveHelpInformation function to allow it to parse the argument passed to amplify status. It also adds status subcommands to the CommandsInfo object.

Issue #, if available

Description of how you validated changes
Unit tests still pass
Checklist

[x] PR description included
[x] yarn test passes
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[ ] New AWS SDK calls or CloudFormation actions have been added to relevant test and service IAM policies
[ ] Pull request labels are added

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Hey, would you be able to attach some screenshots with the before and after of this change? This looks good though, I just want to see how it looks like 😄

@evcodes Here are the screenshots


DS: Support other languages

Is it possible to make jupyter support other language like julia and R?
Or at least provide some interface for other extension to integrate.

@rchiodo   I had a chance to try out the variable listing to replace the current whos (which looks like it was deprecated in Julia in 0.6).
It could be that the first part of the answer is:
"query": "String.(Base.names(Main))",

Note that following:
julia> a = 5
5

julia> b = "test"
"test"

julia> String.(Base.names(Main))
7-element Array{String,1}:
 "Base"
 "Core"
 "InteractiveUtils"
 "Main"
 "a"
 "ans"
 "b"

But I tried to put the following in my settings.json and it didn't seem to help?
    "jupyter.variableQueries": [
        {
            "language": "julia",
            "query": "String.(Base.names(Main))",
            "parseExpr": "'(\\w+)'"
        }
    ]

So something else is missing.  I also am not sure I understand how things would parse after it has the names.  It looks to me like https://github.com/microsoft/vscode-jupyter/blob/69a2fb578b5b1cd1ae836934885b24e87cbd2e39/src/client/datascience/jupyter/kernelVariables.ts#L423-L493 would need to be language specific as well, unless I am missing something?  But I don't know typescript, so hard for me to know what is going on.

@rchiodo   I had a chance to try out the variable listing to replace the current whos (which looks like it was deprecated in Julia in 0.6).
It could be that the first part of the answer is:
"query": "String.(Base.names(Main))",

Note that following:
julia> a = 5
5

julia> b = "test"
"test"

julia> String.(Base.names(Main))
7-element Array{String,1}:
 "Base"
 "Core"
 "InteractiveUtils"
 "Main"
 "a"
 "ans"
 "b"

But I tried to put the following in my settings.json and it didn't seem to help?
    "jupyter.variableQueries": [
        {
            "language": "julia",
            "query": "String.(Base.names(Main))",
            "parseExpr": "'(\\w+)'"
        }
    ]

So something else is missing.  I also am not sure I understand how things would parse after it has the names.  It looks to me like https://github.com/microsoft/vscode-jupyter/blob/69a2fb578b5b1cd1ae836934885b24e87cbd2e39/src/client/datascience/jupyter/kernelVariables.ts#L423-L493 would need to be language specific as well, unless I am missing something?  But I don't know typescript, so hard for me to know what is going on.

Thanks @jlperla, I'll try the same thing with a julia kernel and debug bits of our stuff. Might be the parseExpr is not working.
The spot you linked to in the kernelVariables.ts is where we parse the results of a jupyter 'inspect' request (this request is what we use: https://jupyter-client.readthedocs.io/en/stable/messaging.html#introspection). We had hoped that other kernels would return data in the same format as ipython, but that's probaly not happening.
I'll debug it from our side and see what's happening.

Thanks @jlperla, I'll try the same thing with a julia kernel and debug bits of our stuff. Might be the parseExpr is not working.
The spot you linked to in the kernelVariables.ts is where we parse the results of a jupyter 'inspect' request (this request is what we use: https://jupyter-client.readthedocs.io/en/stable/messaging.html#introspection). We had hoped that other kernels would return data in the same format as ipython, but that's probaly not happening.
I'll debug it from our side and see what's happening.

I think
"[" * join(map(i->"'$i'", String.(Base.names(Main))), ", ") * "]" |> println

would return the list in a format that is similar to the Python version, so using that as the query might just work?

I think
"[" * join(map(i->"'$i'", String.(Base.names(Main))), ", ") * "]" |> println

would return the list in a format that is similar to the Python version, so using that as the query might just work?

Thanks @rchiodo .  I suspect @davidanthoff  has the best approach for that string, and then the parsing shouldn't be different.
For the inspection, that makes sense.  I am not sure how to call it manually to see what it is returning, but I think this is the IJulia code: https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/handlers.jl#L229-L248

Thanks @rchiodo .  I suspect @davidanthoff  has the best approach for that string, and then the parsing shouldn't be different.
For the inspection, that makes sense.  I am not sure how to call it manually to see what it is returning, but I think this is the IJulia code: https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/handlers.jl#L229-L248

I used this as the query:
{
            "language": "julia",
            "query": "String.(Base.names(Main))",
            "parseExpr": " \"(\\w+)\""
        }

Which does give us the list of variables.
However after that, the inspect request fails with this message from the julia kernel:

I used this as the query:
{
            "language": "julia",
            "query": "String.(Base.names(Main))",
            "parseExpr": " \"(\\w+)\""
        }

Which does give us the list of variables.
However after that, the inspect request fails with this message from the julia kernel:

Thanks @rchiodo   Try the suggestion from @davidanthoff . There aren't enough adjectives in the world to describe how much more knowledgeable and competent he is on these things than me.

Thanks @rchiodo   Try the suggestion from @davidanthoff . There aren't enough adjectives in the world to describe how much more knowledgeable and competent he is on these things than me.

It's not the query that is failing. I can get the list. It's the inspect request.
For example, with this code here:
a = 5

The regex I was using returns me:
"Base",
"Core"
"Main",
"a"
All 3 of those give the same inspect result.
Trying with @davidanthoff's query and regex gives the same result.
Should an inspect request for "a" throw a bounds error? Do you have a way for me to try the same inspect request in a cell (IPython does this if you prefix code with a ?, like ?x will inspect x)

It's not the query that is failing. I can get the list. It's the inspect request.
For example, with this code here:
a = 5

The regex I was using returns me:
"Base",
"Core"
"Main",
"a"
All 3 of those give the same inspect result.
Trying with @davidanthoff's query and regex gives the same result.
Should an inspect request for "a" throw a bounds error? Do you have a way for me to try the same inspect request in a cell (IPython does this if you prefix code with a ?, like ?x will inspect x)

I see.  I am not sure if it is relevant, but these guys told me the following:
julia> a = 5
5

julia> varinfo(Main, r"a")
  name                    size summary
  –––––––––––––––– ––––––––––– –––––––
  Base                         Module
  InteractiveUtils 198.160 KiB Module
  Main                         Module
  a                    8 bytes Int64
  ans                  8 bytes Int64

julia> varinfo(Main, r"^a$")
  name    size summary
  –––– ––––––– –––––––
  a    8 bytes Int64
``
So if `varinfo` is used behind the hood, maybe you need to put pass in the `^` and `$` around the string?

I see.  I am not sure if it is relevant, but these guys told me the following:
julia> a = 5
5

julia> varinfo(Main, r"a")
  name                    size summary
  –––––––––––––––– ––––––––––– –––––––
  Base                         Module
  InteractiveUtils 198.160 KiB Module
  Main                         Module
  a                    8 bytes Int64
  ans                  8 bytes Int64

julia> varinfo(Main, r"^a$")
  name    size summary
  –––– ––––––– –––––––
  a    8 bytes Int64
``
So if `varinfo` is used behind the hood, maybe you need to put pass in the `^` and `$` around the string?

That gives the same bounds error on the inspect request. Inspecting "^a$" instead of "a" gives the same problem.

That gives the same bounds error on the inspect request. Inspecting "^a$" instead of "a" gives the same problem.

Is the inspect request just sending some Julia code to eval in the kernel? What exactly is being sent? Or is there a special inspect Jupyter message?

Is the inspect request just sending some Julia code to eval in the kernel? What exactly is being sent? Or is there a special inspect Jupyter message?

Wait, that may not be it.  See  that https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/handlers.jl#L192  is called from the inspector implementaiton: https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/handlers.jl#L236
Note that
julia> a = 5
5

julia> using IJulia

julia> IJulia.docdict("a")
Dict{String,Union{String, JSON.Writer.JSONText}} with 3 entries:
  "text/plain"    => "  No documentation found.\n\n  \e[36ma\e[39m is of type \e[36mInt64\e[39m.\n\n\e[1m  Summary\e[22…
  "text/markdown" => "No documentation found.\n\n`a` is of type `Int64`.\n\n# Summary\n\n```\nprimitive type Int64 <: S…
  "text/latex"    => "No documentation found.\n\n\\texttt{a} is of type \\texttt{Int64}.\n\n\\section{Summary}\n\\begin…

Is that the text that would be parsed by the https://github.com/microsoft/vscode-jupyter/blob/69a2fb578b5b1cd1ae836934885b24e87cbd2e39/src/client/datascience/jupyter/kernelVariables.ts#L438-L443
But I think we are now in the guts where @stevengj might be able to point some of this stuff out.

Wait, that may not be it.  See  that https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/handlers.jl#L192  is called from the inspector implementaiton: https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/handlers.jl#L236
Note that
julia> a = 5
5

julia> using IJulia

julia> IJulia.docdict("a")
Dict{String,Union{String, JSON.Writer.JSONText}} with 3 entries:
  "text/plain"    => "  No documentation found.\n\n  \e[36ma\e[39m is of type \e[36mInt64\e[39m.\n\n\e[1m  Summary\e[22…
  "text/markdown" => "No documentation found.\n\n`a` is of type `Int64`.\n\n# Summary\n\n```\nprimitive type Int64 <: S…
  "text/latex"    => "No documentation found.\n\n\\texttt{a} is of type \\texttt{Int64}.\n\n\\section{Summary}\n\\begin…

Is that the text that would be parsed by the https://github.com/microsoft/vscode-jupyter/blob/69a2fb578b5b1cd1ae836934885b24e87cbd2e39/src/client/datascience/jupyter/kernelVariables.ts#L438-L443
But I think we are now in the guts where @stevengj might be able to point some of this stuff out.

Yes this text here:
e[36ma\e[39m is of type \e[36mInt64\e[39m.\n\n\e[1m  Summary\e[

is the type of response we're expecting.

Yes this text here:
e[36ma\e[39m is of type \e[36mInt64\e[39m.\n\n\e[1m  Summary\e[

is the type of response we're expecting.

Is the inspect request just sending some Julia code to eval in the kernel? What exactly is being sent? Or is there a special inspect Jupyter message?

The inspect request is a special jupyter kernel message.
The docs for it are here:
https://jupyter-client.readthedocs.io/en/stable/messaging.html#introspection
We send the inspect_request with the 'code' value set to the name of the variable.

Is the inspect request just sending some Julia code to eval in the kernel? What exactly is being sent? Or is there a special inspect Jupyter message?

The inspect request is a special jupyter kernel message.
The docs for it are here:
https://jupyter-client.readthedocs.io/en/stable/messaging.html#introspection
We send the inspect_request with the 'code' value set to the name of the variable.

What are you sending as the cursor_pos in the inspect message? The stack trace from your screenshot to me looks like a string indexing error inside get_token at https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/handlers.jl#L195 from your screenshot.
Is there any chance you could let me know the line number of the stack trace item that I marked with a red error from your screenshot?

Namely the line number of the stack trace in get_token.

What are you sending as the cursor_pos in the inspect message? The stack trace from your screenshot to me looks like a string indexing error inside get_token at https://github.com/JuliaLang/IJulia.jl/blob/9b10fa9b879574bbf720f5285029e07758e50a5e/src/handlers.jl#L195 from your screenshot.
Is there any chance you could let me know the line number of the stack trace item that I marked with a red error from your screenshot?

Namely the line number of the stack trace in get_token.

We set cursor_pos to zero.
Trace for the get_token is at line 217:
" [4] get_token(::String, ::Int64) at C:\Users\Rich.julia\packages\IJulia\IDNmS\src\handlers.jl:217"

We set cursor_pos to zero.
Trace for the get_token is at line 217:
" [4] get_token(::String, ::Int64) at C:\Users\Rich.julia\packages\IJulia\IDNmS\src\handlers.jl:217"

Closing this as other languages are supported in the new UI (with other extensions supporting their own kernels and language servers)


Adding WeldJoint and ConstantSampler

This PR adds the following:

dart/statespace/WeldJoint
constraint/uniform/ConstantSampler

and uses ConstantSampler as a sampler for WeldJoint.

This change is

Coverage decreased (-1.1%) to 84.256% when pulling 343e563abe78c26bf649ee263b160b91988d781d on statespace/WeldJoint into 4cd2795dcf7b90e6b295aaae5e83e244161ab10e on master.

@mkoval I initially had that, which works fine, but it would unnecessarily try to "sample" when it can simply return a fixed value, so I thought this would be cleaner? I can switch back to using RnBoxConstraint if necessary.

Addressed @mkoval 's comments.

Coverage decreased (-1.1%) to 84.285% when pulling 3715bc3021462abca992b9deae913de5fe48bd8b on statespace/WeldJoint into 4cd2795dcf7b90e6b295aaae5e83e244161ab10e on master.

@jslee02 Sorry to ask you, but would you mind writing unit tests for the two classes? Thanks a lot!!

Changes Unknown when pulling de460566765d1adab96dcfadb287b65f2bac423b on statespace/WeldJoint into ** on master**.

Changes Unknown when pulling 51446a6826c252dba2923faf230c43e3e7806952 on statespace/WeldJoint into ** on master**.

Changes Unknown when pulling 6a3080cd77cd5478d32ed2f802663a37cbf9b887 on statespace/WeldJoint into ** on master**.

Changes Unknown when pulling 6a3080cd77cd5478d32ed2f802663a37cbf9b887 on statespace/WeldJoint into ** on master**.


Credentials failing when using test.salesforce.com

I logged in the sandbox account at test.salesforce.com using the email address appended with ".test" as required and got in fine.
Trying the same successful credentials through this gem per your instructions:
client = Databasedotcom::Client.new :host => "test.salesforce.com"
Object dump of the client (client id/secret stripped for security purposes):
#<Databasedotcom::Client:0x007fa8150ef5c8 @options={:host=>"test.salesforce.com"}, @client_id="xxx", @client_secret="xxx", @host="test.salesforce.com", @debugging=nil, @version=nil, @sobject_module=nil, @ca_file=nil, @verify_mode=nil>;
I get a Password Invalid error.  Can you confirm that logging into your sandbox account through this gem works for you?  Unless you know what I'm missing here?

If your Salesforce instance requires a security token, you need to append that to your password. See the section entitled "Authentication via username and password" at https://github.com/heroku/databasedotcom/blob/master/README.rdoc

Closing- please re-open if you feel that the security token wasn't the issue

I tried with and without the security token.  I am aware of the Salesforce password+security_token requirement and couldn't get through.
Can you give your sandbox environment a try through this gem and see if this works for you?
Chad


Is there any way to assert function argument histories?

I would't like to assert function argument histories like as bellow.
protocol Foo {
    func fooFunc(_ arg: Int)
    func barFunc(_ arg1: Int, arg2: String)
}

let mock = FooMock()
mock.fooFunc(1)
mock.fooFunc(2)
mock.fooFunc(3)

XCTAssertEqual(mock.fooFuncValues, [1, 2, 3])

mock.barFunc(1, "A")
mock.barFunc(2, "B")
mock.barFunc(3, "C")

XCTAssertEqual(mock.barFuncValues, [(1, "A"), (2, "B"), (3, "C")])

Is there any way to achive this? And if I can't do currently, can I contribute to implement this feature?

This is currently not supported; contributions are welcome!
Do you want the history to be enabled for all funcs or only for some funcs?
If the former, you can add an input flag (e.g. --enable-args-history) to the commandline, and support it if the flag is enabled.
If the latter, you could utilize arguments to the @mockable annotation (e.g. /// @mockable(history: fooFunc = true; barFunc = true)) and support it if listed in the arguments (see 'typealias', 'rx', 'module' in README for other examples).

@elsh
Thanks! I'd like to contribute!

Do you want the history to be enabled for all funcs or only for some funcs?
If the former, you can add an input flag (e.g. --enable-args-history) to the commandline, and support it if the flag is enabled.
If the latter, you could utilize arguments to the @mockable annotation (e.g. /// @mockable(history: fooFunc = true; barFunc = true)) and support it if listed in the arguments (see 'typealias', 'rx', 'module' in README for other examples).

I think the former way is better because it's easy to use.
However, do you have any concerns? (e.g. performance)

@tinder-maxwellelliott
Yes, it's right.
However, we must implement like that many times in some usecases.
For example, my app is built with VIPER architecture and our Presenters output effects to Views/Interactors by calling those functions like as bellow. (In fact, it's more complicated than that.)
In this usecase, using test spy is easy way.
// Protocols
protocol FooView {
    func setTitle(_ title: String)
}
protocol FooUsecase {
    func getUser(userId: String)
}
protocol FooInteractorDelegate {
    func didGetUser(_ user: User)
}

// Presenter
class FooPresenter {
    private let view: FooView
    private let interactor: FooUsecase

    private let userId: String

    init(view: FooView, interactor: FooUsecase, userId: String) {
        self.view = view
        self.interactor = interactor
        self.userId = userId
    }
}

extension FooPresenter {
    func viewDidLoad() {
        interactor.getUser(userId: userId)
    }
}

extension FooPresenter: FooInteractorDelegate {
    func didGetUser(_ user: User) {
        view.setTitle(user.name)
    }
}

// Test
let mockView = FooViewMock()
let mockInteractor = FooUsecaseMock()

let presenter = FooPresenter(view: mockView, interactor: mockInteractor, userId: "foo_user")

presenter.viewDidLoad()
XCTAssertEqual(mockInteractor.getUserValues, ["foo_user"])

let user = User(id: "foo_user", name: "foo")
presenter.didGetUser(user)
XCTAssertEqual(mockView.setTitleValues, ["foo"])

And some other mock generators support this feature, for example,  ArgumentCaptor in Brightigy/Cuckoo.
I want to use this feature in Mockolo. Maybe I implement this as opt-in.
How about it?

@elsh
Thanks! I'd like to contribute!

Do you want the history to be enabled for all funcs or only for some funcs?
If the former, you can add an input flag (e.g. --enable-args-history) to the commandline, and support it if the flag is enabled.
If the latter, you could utilize arguments to the @mockable annotation (e.g. /// @mockable(history: fooFunc = true; barFunc = true)) and support it if listed in the arguments (see 'typealias', 'rx', 'module' in README for other examples).

I think the former way is better because it's easy to use.
However, do you have any concerns? (e.g. performance)

The only concern is that if you enable this for all funcs, there will be more generated code, thus the compile time of mocks will increase as well, so use it at your discretion.
I agree with @tinder-maxwellelliott that this can easily be supported in the test code itself as in the example.  However, if you don't want to have to write it for all funcs in the tests and that you have a lot of funcs, we could support this with the optional input flag mentioned above.

@elsh
Thanks! I'd like to contribute!

Do you want the history to be enabled for all funcs or only for some funcs?
If the former, you can add an input flag (e.g. ) to the commandline, and support it if the flag is enabled.
If the latter, you could utilize arguments to the @mockable annotation (e.g. /// @mockable(history: fooFunc = true; barFunc = true)) and support it if listed in the arguments (see 'typealias', 'rx', 'module' in README for other examples).

I think the former way is better because it's easy to use.
However, do you have any concerns? (e.g. performance)

The only concern is that if you enable this for all funcs, there will be more generated code, thus the compile time of mocks will increase as well, so use it at your discretion.
I agree with @tinder-maxwellelliott that this can easily be supported in the test code itself as in the example. However, if you don't want to have to write it for all funcs in the tests and that you have a lot of funcs, we could support this with the optional input flag mentioned above.

OK, I also agree with @tinder-maxwellelliott and worry about the compile time of mocks.
So I suggest the flexible way as bellow.

By default, generate argument capture with only annotated funcs. (e.g. /// @mockable(history: fooFunc = true; barFunc = true))
if passed --enable-args-history args, generate argument captures with all funcs and ignore annotations.

How about it?

Sounds good. Let me know if you have any questions re: implementation.
On Thu, Jun 4, 2020 at 8:09 PM andooown<EMAIL_ADDRESS>wrote:

@elsh
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_elsh&d=DwMCaQ&c=r2dcLCtU9q6n0vrtnDw9vg&r=sTqCC7cTwGN2QCw_Vq6sKQ&m=SEk6aH6UNlf6bzj_JybBbKbhS1SS49gwNSKJx828Fkc&s=t3EAcFJXubWO9nHQURvwfw50x8IEr2nha2lUkFGreh4&e=
Thanks! I'd like to contribute!
Do you want the history to be enabled for all funcs or only for some funcs?
If the former, you can add an input flag (e.g. ) to the commandline, and
support it if the flag is enabled.
If the latter, you could utilize arguments to the @mockable annotation
(e.g. /// @mockable(history: fooFunc = true; barFunc = true)) and support
it if listed in the arguments (see 'typealias', 'rx', 'module' in README
for other examples).
I think the former way is better because it's easy to use.
However, do you have any concerns? (e.g. performance)
The only concern is that if you enable this for all funcs, there will be
more generated code, thus the compile time of mocks will increase as well,
so use it at your discretion.
I agree with @tinder-maxwellelliott
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_tinder-2Dmaxwellelliott&d=DwMCaQ&c=r2dcLCtU9q6n0vrtnDw9vg&r=sTqCC7cTwGN2QCw_Vq6sKQ&m=SEk6aH6UNlf6bzj_JybBbKbhS1SS49gwNSKJx828Fkc&s=0CVCFCfP-NQl3P0e5a0vMnxgSrNDAZ3JxqG0cZLuPPA&e=
that this can easily be supported in the test code itself as in the
example. However, if you don't want to have to write it for all funcs in
the tests and that you have a lot of funcs, we could support this with the
optional input flag mentioned above.
OK, I also agree with @tinder-maxwellelliott
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_tinder-2Dmaxwellelliott&d=DwMCaQ&c=r2dcLCtU9q6n0vrtnDw9vg&r=sTqCC7cTwGN2QCw_Vq6sKQ&m=SEk6aH6UNlf6bzj_JybBbKbhS1SS49gwNSKJx828Fkc&s=0CVCFCfP-NQl3P0e5a0vMnxgSrNDAZ3JxqG0cZLuPPA&e=
and worry about the compile time of mocks.
So I suggest the flexible way as bellow.

By default, generate argument capture with only annotated funcs.
(e.g. /// @mockable(history: fooFunc = true; barFunc = true))
if passed --enable-args-history args, generate argument captures
with all funcs and ignore annotations.

How about it?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_uber_mockolo_issues_111-23issuecomment-2D639231286&d=DwMCaQ&c=r2dcLCtU9q6n0vrtnDw9vg&r=sTqCC7cTwGN2QCw_Vq6sKQ&m=SEk6aH6UNlf6bzj_JybBbKbhS1SS49gwNSKJx828Fkc&s=QwvE8tvwtvzTtzeGE77x7_5ur75jr4q5LTz2N3X377E&e=,
or unsubscribe
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AAUG5PAWZGYHGAJTSCNBU33RVBOVBANCNFSM4NP5EZVA&d=DwMCaQ&c=r2dcLCtU9q6n0vrtnDw9vg&r=sTqCC7cTwGN2QCw_Vq6sKQ&m=SEk6aH6UNlf6bzj_JybBbKbhS1SS49gwNSKJx828Fkc&s=x-CSMwJ-K_SN8uwSIYsmstTR-C4NXotftykr9X9loQY&e=
.

@elsh Thanks! I'm going to start implementing!

@elsh
Test failed on your latest commit(ec8361f3cd2c400d20e7927ccdec153f8813b6b9).
Were you about to start something?

Pull the latest

I implemented it in #114!

@andooown Thanks for implementing this! 👍   It's been merged to master.

@elsh Thanks for your reviews!


Pr/123

sorry - meant to merge into my own fork. Mental note - always check your mirrors before trying to merge.


Add topic continuous-delivery

Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/main/CONTRIBUTING.md.
[x] I am not the sole author or employee of a company who created the topic or collection I'm changing.

Which change are you proposing?

[ ] Suggesting edits to an existing topic or collection
[x] Curating a new topic or collection
[ ] Something that does not neatly fit into the binary options above

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288, size <= 75 kB)
[ ] Content (and my changes are in index.md)

Please replace this line with an explanation of why you think these changes should be made.

Curating a new topic or collection

[x] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[ ] My folder contains a *.png image (if applicable) and index.md
[x] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/main/docs

The whole field of CI/CD is getting more and more important, especially due to automation.

Something that does not neatly fit into the binary options above

[x] My suggested edits are not about an existing topic or collection, or at least not a single one
[ ] My suggested edits are not about curating a new topic or collection, or at least not a single one
[x] My suggested edits conform to the Style Guide and API docs: https://github.com/github/explore/tree/main/docs

Please replace this line with an explanation of your proposed changes.

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

Always a pleasure!


Branchv1.3 edit itinerary attraction2

ItineraryAttraction now extends Attraction.
Edit itinerary attraction can now edit every fields available to attraction.

Codecov Report

Merging #188 into master will increase coverage by 2.07%.
The diff coverage is 60.20%.

@@             Coverage Diff              @@
##             master     #188      +/-   ##
============================================
+ Coverage     61.41%   63.49%   +2.07%
- Complexity      666      683      +17
============================================
  Files           115      115
  Lines          2449     2509      +60
  Branches        338      351      +13
============================================
+ Hits           1504     1593      +89
+ Misses          856      827      -29
  Partials         89       89

Impacted Files
Coverage Δ
Complexity Δ

...traction/EditItineraryAttractionCommandParser.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...a/seedu/address/model/itinerary/ItineraryTime.java
66.66% <ø> (+26.66%)
9.00 <0.00> (+2.00)

...action/DeleteItineraryAttractionCommandParser.java
91.66% <50.00%> (+91.66%)
4.00 <0.00> (+4.00)

...u/address/model/itinerary/ItineraryAttraction.java
71.79% <85.71%> (+17.94%)
10.00 <4.00> (+1.00)

...ttraction/AddItineraryAttractionCommandParser.java
93.75% <91.66%> (+93.75%)
5.00 <3.00> (+5.00)

...raryattraction/EditItineraryAttractionCommand.java
46.96% <92.85%> (+46.96%)
0.00 <0.00> (ø)

...eraryattraction/AddItineraryAttractionCommand.java
69.23% <100.00%> (ø)
8.00 <1.00> (ø)

...ryattraction/DeleteItineraryAttractionCommand.java
100.00% <100.00%> (+6.25%)
9.00 <5.00> (+1.00)

...in/java/seedu/address/logic/parser/ParserUtil.java
98.80% <100.00%> (+6.21%)
33.00 <1.00> (+3.00)

...c/main/java/seedu/address/model/ItineraryList.java
80.64% <100.00%> (+2.86%)
13.00 <1.00> (+1.00)

... and 4 more

Continue to review full report at Codecov.

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


Optimize the code for the case when developers deploy more than 257 turms instances in a cluster

The implementation has been changed so the bug shouldn't exist currently.
https://github.com/turms-im/turms/commit/75e8b7ffb83346ef6a8cf54088012364879a09c5


Scope of phasing out of third-party cookies

Hi,
I would like to understand the scope of the cookies covered in third-party cookie deprecation based on my testing with enabling the flag to test for breakage as described in https://developer.chrome.com/docs/privacy-sandbox/third-party-cookie-phase-out/#test on multiple websites that we own.
Background
We have a cookie X on domain Y set by a fetch call to origin Y  from first party website domain A. The cookie is set with SameSite=None and Secure flag. The cookie is also set with HttpOnly flag to make sure that it is not accessible by Javascript on  website.
Observation
Even though X being a third-party cookie I am still able to see the cookie X sent in fetch request to origin Y from website A. We have no iframe or embedded content on website A that would try to access the cookie which will anyway be not possible as the cookie is set with HttpOnly flag.
Query

Is cookie X going to be treated as third-party cookie and supposed to be blocked?

As mentioned in https://developer.chrome.com/docs/privacy-sandbox/third-party-cookie-phase-out/#understand-your-third-party-cookies Cookies that are sent in cross-site contexts, like iframes or subresource requests, are generally referred to as third-party cookies. but this cookie is not sent in any embedded context so is exempted from third-party cookie block?

Similarly on https://developer.chrome.com/docs/privacy-sandbox/third-party-cookie-phase-out/#understand-your-third-party-cookies If the cookie you're setting is not used across sites, for example, it's used to manage sessions on your site and it's never used in a cross-site iframe, that cookie is always used in a first-party context., can a third party cookie be used in First party context? Is there a distinction between third party cookie and third party context?

From how you're describing this it feels like the cookie should be blocked, but what you'll observe really depends on how you observe it. For example, the Set-Cookie response header will not be stripped from the request and will be visible e.g. in DevTools, however, the cookie will not be stored in the browser.
If you're not hosting an iframe or any other means of reading the cookie, how do you know it is not blocked?

I can see the cookie being set in the browser on domain Y. We also read the
cookie on service side when a fetch API call is made to origin Y which also
matches with the cookie being sent request header.
On Thu, Nov 30, 2023 at 6:05 AM Johann Hofmann @.***>
wrote:

From how you're describing this it feels like the cookie should be
blocked, but what you'll observe really depends on how you observe it. For
example, the Set-Cookie response header will not be stripped from the
request and will be visible e.g. in DevTools, however, the cookie will not
be stored in the browser.
If you're not hosting an iframe or any other means of reading the cookie,
how do you know it is not blocked?
—
Reply to this email directly, view it on GitHub
https://github.com/GoogleChromeLabs/privacy-sandbox-dev-support/issues/191#issuecomment-1833846179,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACCVDQOWVBJPYSVYLQS4XETYHCHEBAVCNFSM6AAAAABAAMB3XKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZTHA2DMMJXHE
.
You are receiving this because you authored the thread.Message ID:
@.***
.com>

Hmm, could you host a simple example, for example on glitch.com, of how you're trying to read / write this cookie? Also, to confirm, you're using the test-third-party-cookie-phaseout flag?

yes, test-third-party-cookie-phaseout is enabled in this testing.

Hi @vishparshav, bumping this to check if you'd be able to share an example?

Hi,
Thanks for following up on this. I had setup an example https://classy-oasis-estimate.glitch.me/ to simulate this behavior. On the page load this page will send a request to another domain https://gold-uncovered-headline.glitch.me/set-cookie to set a third party cookie. But I am seeing the cookie being blocked and not able to simulate the behavior seen on our end.
Is there a way I can sync with you offline to sync on this?

@vishparshav  - In your example, both domains share an eTLD+1 and are thus considered to be "samesite".  For purposes of third-party cookie phaseout, "third-party" means domains that are not "samesite".
If the second domain in your example were to be gold-uncovered-headline.glitch2.me, then I would expect the cookie to be blocked.

I am seeing the cookies being blocked when a call to https://gold-uncovered-headline.glitch.me/set-cookie is made from  https://classy-oasis-estimate.glitch.me

This is an example similar to what we have on our side where you can consider call https://gold-uncovered-headline.glitch2.me metaphorically and I am seeing the cookies being passed with no issues whatsoever.

This is an example similar to what we have on our side where you can consider call being made to https://gold-uncovered-headline.glitch2.me/ metaphorically and I am seeing the cookies being passed with no issues whatsoever.

glitch2.me is not in the same eTLD+1 as glitch.me, hence the difference.  Here's a great blog post that explains the difference.

Somewhat confusingly, classy-oasis-estimate.glitch.me and gold-uncovered-headline.glitch.me are actually not same site, because glitch.me is on the PSL. So, those cookies are expected to be blocked, yes. And yeah, I can see them being blocked when I try this as well.
So, @vishparshav, it sounds like there's something off with your specific setup, maybe you are actually using two same-site domains (like you would be here if it wasn't for the PSL)? It would be great if you could share additional details, if you want to go into full detail on your breakage you can also file a new breakage tracking bug at https://goo.gle/report-3pc-broken and we can take a look.

FWIW I built a tool to help work out what constitutes "site": url-parts.glitch.me
This is included in the article web.dev/articles/url-parts

Is cookie X going to be treated as third-party cookie and supposed to be blocked?

This cookie X is sent by subresource request, and is considered a third-party cookie if domain Y and domain A are cross-site to each other, thus should be blocked with test-third-party-cookie-phaseout flag enabled.
There could be some user settings that unblock a third-party cookie that should have been blocked. To tell whether this is the case, starting M123, in the DevTools Network panel cookie table, there will be an info label indicating why the third-party cookie is unblocked. E.g. https://developer.chrome.com/blog/new-in-devtools-123/?utm_source=devtools

... can a third party cookie be used in First party context? Is there a distinction between third party cookie and third party context?

"Third-party context" is another way to describe "cross-site context." Cookies with the SameSite=None; Secure and not Partitioned attributes that operate in cross-site contexts are third-party cookies.

@shuranhuang
Thanks for the update.
I see "This cookie is allowed by user preference" as the exception reason. I have test-third-party-cookie-phaseout flag enabled and "Block all third party cookie" option also enabled in Tracking Protection but still this is allowed due to user preference. Also tested this on a different machine to verify.
The link shared does not explain about user preference. Can you please comment what preference could be allowing the 3P cookie here or if I am missing something here?
Attaching screenshots for the configurations and message

Glad to know the information is helpful in some degree:)  @samdutton do you know if there is any short link / material we can use to explain the "user preference" for 3PCD?
@vishparshav with 3PCD enabled, there are different ways to unblock third-party cookies for certain use cases (more can be found in https://developers.google.com/privacy-sandbox/3pcd/temporary-exceptions/preserving-critical-user-experiences). The "user preference" reason means the cookie is unblocked by user with exception settings explicitly. To find those settings, you can take a look at the "sites allowed to use third-party cookies" section under chrome://settings/trackingProtection and see if there is an exception for your testing domain.

@shuranhuang I dont see any domain allowed in my "sites allowed to use third-party cookies" section. Here is the attached screenshot.

Thanks for providing the screenshot.
It's possible that this is due to a bug we found out recently - differentiating 3p cookies unblocked by "enterprise policy" from "user preference" does not work properly. Could you take a look at chrome://policy and see if CookiesAllowedForUrls is listed and has your testing domain listed in the value field?

@shuranhuang Thanks for guidance on this. I was able to find the enterprise policy on my machine which was allowing the 3P cookie to be set. When tested on non-enterprise machine I could the see the cookie being blocked. Thanks for the help!

Closing this as completed, since no further comment in more than four months, but feel free to reopen if necessary.


feat: add DuckySoLucky to contributors

this is gonna cause a merge conflict with #5

this is a regression


Submitting usage to collector - Status 409

When I submit usage to collector, I get a http status code 409 even when the payload has new usage entries along with the old entries. Is this the expected behavior.
Payload 1
{
  "usage": [
    {
      "start":<PHONE_NUMBER>327,
      "end":<PHONE_NUMBER>332,
      "organization_id": "us-south:a3d7fe4d-3cb1-4cc3-a831-ffe98e20cf27",
      "space_id": "aaeae239-f3f8-483c-9dd0-de5d41c38b6a",
      "consumer_id": "app:bbeae239-f3f8-483c-9dd0-de6781c38bab",
      "resource_id": "object-storage",
      "plan_id": "basic",
      "resource_instance_id": "0b39fa70-a65f-4183-bae8-385633ca5c87",
      "measured_usage": [
        {
          "measure": "storage",
          "quantity":<PHONE_NUMBER>
        },
        {
          "measure": "light_api_calls",
          "quantity": 1000
        },
        {
          "measure": "heavy_api_calls",
          "quantity": 100
        }
      ]
    },
    {
      "start":<PHONE_NUMBER>337,
      "end":<PHONE_NUMBER>349,
      "organization_id": "us-south:a3d7fe4d-3cb1-4cc3-a831-ffe98e20cf27",
      "space_id": "aaeae239-f3f8-483c-9dd0-de5d41c38b6a",
      "consumer_id": "app:bbeae239-f3f8-483c-9dd0-de6781c38bab",
      "resource_id": "object-storage",
      "plan_id": "basic",
      "resource_instance_id": "0b39fa70-a65f-4183-bae8-385633ca5c87",
      "measured_usage": [
        {
          "measure": "storage",
          "quantity":<PHONE_NUMBER>
        },
        {
          "measure": "light_api_calls",
          "quantity": 1000
        },
        {
          "measure": "heavy_api_calls",
          "quantity": 100
        }
      ]
    }
  ]
}

Payload 2
{
  "usage": [
    {
      "start":<PHONE_NUMBER>337,
      "end":<PHONE_NUMBER>349,
      "organization_id": "us-south:a3d7fe4d-3cb1-4cc3-a831-ffe98e20cf27",
      "space_id": "aaeae239-f3f8-483c-9dd0-de5d41c38b6a",
      "consumer_id": "app:bbeae239-f3f8-483c-9dd0-de6781c38bab",
      "resource_id": "object-storage",
      "plan_id": "basic",
      "resource_instance_id": "0b39fa70-a65f-4183-bae8-385633ca5c87",
      "measured_usage": [
        {
          "measure": "storage",
          "quantity":<PHONE_NUMBER>
        },
        {
          "measure": "light_api_calls",
          "quantity": 1000
        },
        {
          "measure": "heavy_api_calls",
          "quantity": 100
        }
      ]
    },
    {
      "start":<PHONE_NUMBER>352,
      "end":<PHONE_NUMBER>363,
      "organization_id": "us-south:a3d7fe4d-3cb1-4cc3-a831-ffe98e20cf27",
      "space_id": "aaeae239-f3f8-483c-9dd0-de5d41c38b6a",
      "consumer_id": "app:bbeae239-f3f8-483c-9dd0-de6781c38bab",
      "resource_id": "object-storage",
      "plan_id": "basic",
      "resource_instance_id": "0b39fa70-a65f-4183-bae8-385633ca5c87",
      "measured_usage": [
        {
          "measure": "storage",
          "quantity":<PHONE_NUMBER>
        },
        {
          "measure": "light_api_calls",
          "quantity": 1000
        },
        {
          "measure": "heavy_api_calls",
          "quantity": 100
        }
      ]
    }
  ]
}

Yes, the request will be rejected with a 409 if you have a duplicate in there (duplicate being defined as same resource id, start and end time). Looks like 2nd usage of your 1st request is a duplicate of the 1st usage of your 2nd request.
There was a bug in the duplicate detection code before where duplicates were not always correctly detected. This bug has been fixed this week, and that's the reason for getting a 409.

So if the submission contains even one duplicate, the whole set is rejected? or the new records are accepted, but the system returns 409 to indicate a duplicate ?

Currently the whole set gets rejected, as we need a clear indication of the decision on the batch: either 201 the batch is accepted and you get back a URL where you can retrieve it later, or 409 indicating that the batch is rejected. Service providers can also post individual usage docs (batches of 1 usage doc) if they'd like to get a 201 vs 409 decision on each individual usage doc.

This can prevent 'incremental submissions' in case of failure on submitter side.
Consider the following situation - provider submits 5 records.  After getting 201, it tries to log success, but that step fails. While provider pauses, the new usage is generated. If the new record is added to the next (re)submission batch, it will not be accepted as the whole batch is rejected.

Supporting that would require turning the duplicate detection off in the collector while keeping it in the other services down the pipeline, starting with the metering service. This might not be a bad idea although we'll still need to find a way to notify the service providers about these duplicates after they've been accepted by the collector. I'm going to investigate to understand the work involved.

Alternatively, the collector could keep detecting duplicates but accept and pass downstream only new submissions. Same issue that you mention - notifying submitter about duplicates present in the submission would still need to be addressed.

Accepting only new submissions would be extremely helpful for the cf-bridge as well. TL;DR: we have the same problem as the one described by @piotrprzybylski
Currently we batch the requests The entries in the batch depend on the events on the CC side which does not seem to be with guaranteed order for a 1 minute. We therefore simply ignore events newer that 1 minute and will resubmit the usage hoping the DB will be order in a while.
Another issue is when the bridge restarts - it does not have persistent storage and simply starts from the begining. If we want to keep it simple and stupid (KISS) we will need a way to inform abacus to ignore the duplicates.
I raised an issue #128 to track the changes in cf-bridge (if needed).

In case of 409 I'm submitting usage one by one until I got 201. Then I activate batching. This seems to solve the problem.

This issue was fixed in commits 635c52f (turn off duplicate detection in usage collector) and da7e29a (produce unique doc ids in usage collector).
Commit da7e29a incorrectly referenced issue #132 but it should have referenced this issue instead.
Commit 635c52f also mentioned the idea of storing the duplicate docs in an 'errors' db but that's not needed at this point to fix this particular issue, as the duplicate docs are stored in the usage collector's db anyway so they're not lost even if they're detected as duplicates and skipped by the meter service later.


[DOCKER] ubuntu_install_tflite.sh flatbuffers build failure

Since 14/3/2019 ubuntu_install_tflite.sh fails due to build failure in flatbuffers.
The ubuntu_install_tflite.sh script checkouts out the head of flatbuffers and tries to build it.  Upstream flatbuffers commit: 3b23ff18ea27c6cac33c8211d405d57d4595db1a  "Made ToStringVisitor backwards compatible with older behavior." triggers the following build error:
/flatbuffers/include/flatbuffers/minireflect.h:293:7: error: declaration of 'vector_delimited' shadows a member of 'flatbuffers::ToStringVisitor' [-Werror=shadow]
The build error itself is an issue with the upstream project but the important underlying issue for TVM is that the ubutnu_install_tflite.sh script is tracking the bleeding edge of flatbuffers rather than pulling and building a known fixed version of flatbuffers.  This means tvm rebuilds of the build infrastructure docker images are not repeatable / subject to arbitrary failure.

https://github.com/google/flatbuffers/issues/5238

Ah. Is there a known fixed version commit I could checkout in order to get a build working?

cc @FrozenGene let us change the build script to use a stable version.

The last tagged release is tagged v1.10.0 it dates back to Oct 2018 (flat buffers appears to do a release tag about every 6 months).  I can prep a patch to pin to v1.10.0

@mjs-arm this issue look resolved. Can we close ?


Added Modulo Division.

Great work, thank you!

Always welcome .
If you make any python repository in future do let me know by sending a
mail✌✌
On Wed, Oct 14, 2020, 11:40 PM Luke Weiler<EMAIL_ADDRESS>wrote:

Great work, thank you!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Todarith/mathgenerator/pull/15#issuecomment-708572450,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANPK3FJFE6N2HJL4CRASQ7TSKXSSFANCNFSM4SQ6DOEA
.


HTTP 404 when redirecting to the AccessDenied page

Functional impact
When accessing a page with no access permissions, an HTTP 404 error is returned (after an HTTP 302 redirect to an invalid location) instead of the AccessDenied page.
Minimal repro steps

Set up a simple project using the ASP.NET Core 2.1 MVC template and add Azure AD authentication.
Annotate a controller action with some dummy role requirement that won't be fulfilled (e.g. HomeController.Contact).
Launch, navigate to the annotated action (e.g. Home/Contact)
An HTTP 302 is returned, redirecting to /Account/AccessDenied, missing the /AzureAD prefix.

Expected result
An HTTP 302 redirecting to /AzureAD/Account/AccessDenied
Actual result
An HTTP 302 redirecting to /Account/AccessDenied
Further technical details
CookieAuthentication Login, Logout and AccessDeniedPath properties are not updated to reflect the new /AzureAD/ area due to a bug in the CookieOptionsConfiguration class.
When configuring CookieAuthenticationOptions, the scheme name is compared with the OpenIdConnectScheme name instead of the CookieScheme name.
This check causes the  GetAzureADScheme method to return null and to skip the CookieAuthenticationOptions configuration.

https://github.com/aspnet/AspNetCore/commit/23c528c176e654e14cf5d078558420e00154d0e6


MG-1969 - Check parent group domain while creating/assigning groups

What type of PR is this?
This is a feature because it adds the following functionality: it check if parent and child groups are in the same domain before creating or assigning the child.
What does this do?
It implements a grpc call to check if parent is in the same domain as the child.
Which issue(s) does this PR fix/relate to?

Related Issue #1969
Resolves #1969

Have you included tests for your changes?
Yes
Did you document any new/modified feature?
N/A
Notes

@arvindh123 Please review this one.

@nyagamunene  I think , if SpiceDB prevents the creation of group with parent group id of different domain.
So this PR is no need.


Fails to post meme. EDIT: FIXED

Sometimes doesn't press the "Post" button in postmemes, possibly because of ratelimits and the default config is too fast.

how did you patched that ?

just increase the min delays a bit


Add smooth transition when swtiching from dark/light

Implemented a smoother transition effect when toggling between dark & light modes to enhance the UI experience.
Changes:
Applied Tailwind CSS transition-colors utility class to smoothly transition text color changes. Set the transition duration to 400ms (duration-400) for a more gradual & visually appealing effect.
Impact:
Enhances user experience by providing a seamless transition between dark and light modes, reducing abrupt changes and ensuring a smoother UI interaction.

You can adjust the transition time yourself. 400ms is too long. Thank you for the PR.

Alright, Can try with
duration-200
duration-200
Should be relatively faster.


I2C is currently bit-banged on Zephyr

The current implementation of Zephyr driver is a bit-banged one:
https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/i2c/i2c_litex.c#L11
Is this intentional? Should I2C support be removed from here, or should a Zephyr driver for I2C be added?

Apologies, I thought there was an i2c.py core in migen, but it is indeed bit-banged!
This sounds reasonable enough for an I2C master.
My mistake!


Support preview endpoints to list branches or pull requests for a commit

GitHub Developer API announcement:
https://developer.github.com/changes/2019-04-11-pulls-branches-for-commit/
This would be a great PR for any new contributor to this repo or a new Go developer.
All contributions are greatly appreciated!
Feel free to volunteer for any issue and the issue can be assigned to you so that others don't attempt to duplicate the work.
Please check out our CONTRIBUTING.md guide to get started.
Thank you!

@gmlewis Can I take this?

Thank you, @vaibhavsingh97 !
It's yours.

@vaibhavsingh97 Any update on this?

@vaibhavsingh97 Any update on the PR?

If no one is working on this issue, I would like to take this up.

I think we can safely say that this issue has been abandoned.
@sks444 - it is yours.
Since #1170 was never reviewed, feel free to start from scratch as you see fit, carefully reviewing the GitHub Developer API announcement listed at the top of this issue and following our CONTRIBUTING.md guide also linked above.
Thank you, @sks444!

Thank you @gmlewis,
I will go through all the prerequisite and start working on this.


feat: 限流也采用redis

:tada: This issue has been resolved in version 1.1.0 :tada:
The release is available on:

GitHub release
v1.1.0

Your semantic-release bot :package::rocket:


Friday feature, its a weekend !!!

I love Friday

okay, I think I can jump on this tomorrow, what colors were you thinking of.


Foresight

Design a model for Foresight. The ability to predict future outcomes; also called "mental time travel".
References:
https://www.amazon.com/Invention-Tomorrow-Natural-History-Foresight/dp/154167572X/ref=nodl_?dplnkId=fc045187-b0a8-4d1e-827d-461e14c72fe8

Having N cycles of future state predictions


Add a title to the link node to support titles in markdown

We have a use case for supporting titles in link markdown nodes (see markdown spec). We're currently copying source code and modifying it inside our own project, but that's not really sustainable so here's a PR to add it to Lexical.
Note that this doesn't add support for adding the title via the WYSIWYG editor, but it will support adding it in Markdown and then converting back to rich text.

@zurfyx can this be merged now?

@fantactuka @zurfyx I've rebased this to fix the conflict created by my other PR (#4168) so it should be good to merge now I think.

Thank you! Sorry for the delay


Repository names not shown properly in source control panel

Issue Type: Bug
After last update, the repository names are not shown properly in the source control panel, the name of the branch (right) overlaps the name of the repository (left) and the panel has to be extended to see the complete name. I think that the repository name should overlap the branch name so you can see the repo you are working on it at first sight.

VS Code version: Code 1.48.2 (a0479759d6e9ea56afa657e454193f72aef85bd0, 2020-08-25T10:13:11.295Z)
OS version: Windows_NT x64 10.0.18363

This is a duplicate of #104801, though the screenshot here is helpful. That issue was closed, clearly there is disagreement over which part of the name is more important.
Personally I think a reasonable compromise would be to show at least some characters from the repository name. The current behaviour looks like a bug.
It might even make sense for one or both to display the end rather than the beginning of the name? The user can always hover of the string to get the full one, but only if there is some part of the string visible to hover over!

The user can always hover over the string to get the full one, but only if there is some part of the string visible to hover over!

I've added a minimum width such that you can always see a bit of the name.

It might even make sense for one or both to display the end rather than the beginning of the name?

I think that this may vary a lot depending on your repo and branch naming conventions, probably there is no good answer :-)


Unable to disable spell check

Search before asking

[X] I had searched in the issues and found no similar issues.

Operating System

[ ] macOS
[X] Windows
[ ] Linux

Operating System Version
Windows 10
It happens on the web browser too?
No, it just happens on the Desktop app
Rocket.Chat Desktop App Version
3.9.3 (also 3.1.1)
Rocket.Chat Server Version
4.8
Describe the bug
I am unable to disable spell checking. I am using english UI, but even if I switch to different language, the spell checking triggers for non-english words. I'm working in a multilingual environment, and type technical stuff all the time, it makes no sense for me to have an active spell checker.
v 3.1.1

v 3.9.3

interestingly enough, "ok" is no longer highlighted after update
How to Reproduce
I just type in any non-english word.
Describe your Expected behavior
I would like to have a toggle in the preferences to disable the spell checking completely.
Anything else
This issue is always present.
Are you willing to submit a code contribution?

[ ] Yes, I am willing to submit a Pull Request!

Okay I will work on it, I interested on it

Hey @Curis-lab, are you still on this issue or I can start start working?
Please let me know.

Sure @preeesha You can. Sorry for late reply

Thanks @Curis-lab.
I am working on this issue now.


The error "Object is possibly null or undefined" is ambiguous.

I have problem distinguishing if the accessor options or headers or both is possibly undefined or null below.

Can it instead of using the text Object is possibly... output the accessor expression 'this.option.headers' is possibly ...?

we can not write the full expression, this could be a function call, a function expression, a whole program .. the error span seems correct to me.
@sandersn and @DanielRosenwasser any ideas on making this error message better?

You could have a more helpful error message when the possibly null value is an identifier or property/element access, For more complex expressions, just default to the other one.
An alternative is to check for each of the possible forms and report the specifics.

Cannot access property '{0}' on a possibly null or undefined value.
Cannot access element on a possibly null or undefined value.
Cannot call a possibly null or undefined value.
Cannot construct a possibly null or undefined value.

If you change the code so that it's options that could be undefined or null, then doesn't the error span shrink to this.options? That seems like it distinguishes well enough between this.options and this.options.headers as the source of the message.

Though it is not every time I just look at my IDE. I some time look at the output of my terminal.

@tinganho the --pretty compiler option should give some context on what the error span refers to.
I generally agree with @sandersn though, I'd like to see if this is a problem a lot of people run into.

Not sure if this is related but I have no idea why I get the same error when I try
    const l = document.querySelector('link[rel="import"]') as HTMLLinkElement
    if (l == null || l == undefined) return;
    const t = l.import.querySelector('template')

Doh! Sorry I needed to do if (l.import == null ) return;

Is this issue still open? Can I go for it? Any pointers what file should I go for this fix?


Siwtest

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

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/MicrosoftDocs/azure-iot-docs-sdk-typescript, working directory: W:\uuhj-s, target branch: master, target branch commit: c26698bb41c4e77a523acc170eff91a85c45e2c9, source branch: siwtest, source branch commit: .

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


Vibration with Delay=0 doesn't play unless there's one with non-zero delay in the same trigger

Fuse <IP_ADDRESS>66 on a Galaxy S7
This code has three triggers that should play vibration. The first one, with Delay=0, never plays. In the second one, where there's also one with Delay=2, both the vibrations play. In the final trigger, where there's no delay specified, the vibration also plays.
I've observed the exact same issue with PlaySound, so I suspect the actual problem is related to some common action-code, not Vibration itself.
<App>
	<ClientPanel>
		<StackPanel>
			<Button Text="Delay 0">
				<Clicked>
					<DebugAction Message="Clicked Delay 0"/>
					<Vibrate Duration="1" Delay="0"/> <!-- This never plays -->
				</Clicked>
			</Button>
			<Button Text="Delay 0 and 1">
				<Clicked>
					<DebugAction Message="Clicked 0 and 1"/>
					<Vibrate Duration="1" Delay="0"/> <!-- This plays -->
					<Vibrate Duration="1" Delay="2"/> <!-- This plays -->
				</Clicked>
			</Button>
			<Button Text="No delay">
				<Clicked>
					<DebugAction Message="Clicked no delay"/>
					<Vibrate Duration="1"/> <!-- This plays -->
				</Clicked>
			</Button>
		</StackPanel>
	</ClientPanel>
</App>

As a workaround you can likely remove the Delay="0" and it'll work.


Cluster-wide SMMR changes

I think that I found bugs. Please look at the following steps:

Create SMCP:

oc apply -n istio-system -f - <<EOF
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  mode: ClusterWide
  proxy:
    accessLogging:
      file:
        name: /dev/stdout
  security:
    dataPlane:
      mtls: true
  tracing:
    type: None
EOF

Deploy bookinfo:

oc new-project bookinfo
kubectl label namespace bookinfo istio-injection=enabled
oc apply -n bookinfo -f https://raw.githubusercontent.com/maistra/istio/maistra-2.4/samples/bookinfo/platform/kube/bookinfo.yaml

Deploy sleep:

oc new-project sleep
oc apply -n sleep -f https://raw.githubusercontent.com/maistra/istio/maistra-2.4/samples/sleep/sleep.yaml

So far, everything works as expected. Bookinfo has sidecars, sleep does not have.

Label sleep for injection and redeploy it:

kubectl label namespace sleep istio-injection=enabled
oc delete -n sleep -f https://raw.githubusercontent.com/maistra/istio/maistra-2.4/samples/sleep/sleep.yaml
oc apply -n sleep -f https://raw.githubusercontent.com/maistra/istio/maistra-2.4/samples/sleep/sleep.yaml

Sleep has sidecar injected, so everything is still correct.

Exclude sleep namespace from injection:

oc apply -n istio-system -f - <<EOF
apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
  name: default
spec:
  members:
  - "*"
  excludeNamespaces:
  - istio-operator
  - sleep
EOF

Redeploy sleep:

oc delete -n sleep -f https://raw.githubusercontent.com/maistra/istio/maistra-2.4/samples/sleep/sleep.yaml
oc apply -n sleep -f https://raw.githubusercontent.com/maistra/istio/maistra-2.4/samples/sleep/sleep.yaml

Sleep has no sidecar anymore.

Configure custom injection label:

oc apply -n istio-system -f - <<EOF
apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
  name: default
spec:
  members:
  - "*"
  excludeNamespaces:
  - istio-operator
  - sleep
  memberSelector:
    matchLabels:
      maistra-injection: enabled
EOF

Redeploy bookinfo:

oc delete -n bookinfo -f https://raw.githubusercontent.com/maistra/istio/maistra-2.4/samples/bookinfo/platform/kube/bookinfo.yaml
oc apply -n bookinfo -f https://raw.githubusercontent.com/maistra/istio/maistra-2.4/samples/bookinfo/platform/kube/bookinfo.yaml

Bookinfo still has sidecars, while it does not have maistra-injection: enabled label!

Deploy sleep in another project:

oc new-project test
oc apply -n sleep -f https://raw.githubusercontent.com/maistra/istio/maistra-2.4/samples/sleep/sleep.yaml

And sleep got sidecar, while it does not have maistra-injection: enabled nor istio-injection: enabled label!
I see that this namespace has label maistra.io/member-of: istio-system.

The behavior is correct. You set spec.members to *, which means ALL namespaces are in the mesh (except istio-operator and sleep, which are explicitly excluded).
Step 9 seems to have an error. You're creating the namespace test, but applying to sleep.

To achieve what you're trying to achieve, you should omit spec.members and just set spec.memberSelector (and optionally spec.excludeNamespaces).

I think that we should allow to use (members=[""] and excludeNamespces) or only excludeNamespaces. We cannot objectively say which option is better, but I would prefer to implement as simple semantics as we can. I also think that members=[""] + excludeNamespaces may be an intuitive option for Istio users, because for example traffic.sidecar.istio.io/excludeInboundPorts follows this rule: "Only applies when all inbound traffic (i.e. '*') is being redirected."
I also was very surprised that memberSelectors does not overwrite default selector istio-inection=enabled. Currently, I am not able to disable injection for istio-injection=enabled. I think that istio-injection=enabled is the right default, but when custom memberSelectors is defined, then the default label should be ignored.
You're right that members and memberSelectors should be sufficient, but excludeNamespaces allows to exclude namespaces chosen by a mesh admin, so that project admins are not able to join the mesh by labeling their projects, and I believe that this option may desired by some users.


Bug 2014275: Special Resource Operator(SRO) - Fail to deploy simple-kmod on GCP

When deploying in GCP the crane package gets into an infinite loop if traffic towards metadata server is dropped. This makes SRO unresponsive.
Changing authn discovery from crane package into a manual approach where we grab the pull secrets from a secret will avoid the use of the metadata server while still being able to authenticate and obtain the same info.

/hold


find_bitmap not working on screenshots taken via Macbook Pro with Retina screen

Autopy version = 1.0.1
Python version = 2.7.10 (MacOS default distribution)
I'm currently using a 15in Macbook Pro with Retina screen. When I take a screenshot on the built-in display (Using either OSX's built-in screenshot utility or SnagIt), None is returned when running the following code:
screenshot = autopy.bitmap.capture_screen()
screen_selection = autopy.bitmap.Bitmap.open('screen_selection.png')
bitmap_loc = screenshot.find_bitmap(screen_selection)

If, however, I take the screenshot and then run the above code with an external display, it returns the correct coordinates.
I wonder if this has to do somehow with the HiDPI nature of the retina screen?
Edit:
Oddly, this seems to work if I first save the bitmap taken with capture_screen() to a file and then compare them.

This seems to be an issue with the way screenshots are processed on MacOS (and how color profiles are applied). I'm closing this as I've gotten around the issue by processing the image with CV2 (speaking of which, it'd be awesome if there was a to_string method added onto the bitmap class for further processing images without having to save them to disk first).


Alternative: add getAlternativeMonoid

This provides a way to lift a semigroup into a monoid via an alternative...
think of it like a generalised version of Option's getMonoid, except it applies to any Alternative.
It also means any module without a specialised getMonoid function like TaskOption and IOOption also have a way to produce an amalgamation.
Hopefully this is useful and not a duplication of functionality.
Alternatively, should all Alternative-capable modules expose a getMonoid function?
I did debate adding a way to get an Alternative Semigroup from a Semigroup (and Alternative Monoid from a Monoid) but I realised this had the biggest bang for buck in utilising the capabilities of the underlying Alternative.
I am pretty sure the order of () => F.alt(first, () => second)) is irrelevant given it's a Semigroup.
(If the tests are redundant I'd be happy to rewrite them as showing identical behaviour to Option's getMonoid function.)

@willheslam not sure why the CI is failing, the log is no longer available

@willheslam not sure why the CI is failing, the log is no longer available

I don't remember either, but it's passing now. Thanks for reviewing this!

Thank you @willheslam

Hi @willheslam, not sure if you see this on a merged PR but I have the following question:
in the implementation
return {
      concat: (first: HKT<F, A>, second: HKT<F, A>) =>
        F.alt(SF.concat(first, second), () => F.alt(first, () => second)),
      empty: F.zero()
    }

both first and second are being used twice and might also be evaluated twice, e.g. if SF.concat(first, second) fails and the alternative gets pulled in, first will be evaluated again.
If this is an effectful operation, e.g. a TaskEither this task would be triggered twice. This might be a performance concern but also might lead to unexpected results for side effects.
Is there a particular conceptual reason to evaluate the parameters twice? Do you see any potential issue with this?


Update Helm release cockroachdb to v11.2.4

This PR contains the following updates:

Package
Update
Change

cockroachdb (source)
minor
11.1.6 -> 11.2.4

⚠ Dependency Lookup Warnings ⚠
Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update (11.2.4). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.