specifies the returned values for uninitialized meters and registers

Fixes #324

@jafingerhut, your take on this?

@cc10512 @antoninbas When you say that you plan in P4Runtime to require the default value to be GREEN, at least for direct meters, do you mean that if you have a table with direct meters, and you create a new table entry, but have not yet specified any parameters for the meter (e.g. you have not yet used an appropriate control plane API to specify a committed and peak information rate, etc.), then no matter how high a rate that the meter is accessed, it should always return GREEN?  That is, effectively the meter's rate and/or burst sizes are infinite, or at least faster than any rate that the device can process packets and/or bits?
If so, that sounds like a reasonable default setting to me, perhaps both for direct and indexed meters that the control plane has not yet initialized.  It seems good to call this out as a special case for PSA implementers.

@jafingerhut, indeed, that is the intent: a meter that has not been initialized by the control plane will always return GREEN. The question for the PSA WG was whether we mandate GREEN as the return value, or we recommend it, and leave to a target implementation the decision of what should be the default. If the P4Runtime API requires it, I propose that we mandate it as well.

@jafingerhut For P4 Runtime, I think the agreement right now is that adding an entry to a table will automatically initialize direct counters to 0 and direct meters in a way that GREEN is always returned. Unless explicit initialization values are provided (https://github.com/p4lang/PI/blob/master/proto/p4/p4runtime.proto#L159).
We haven't discussed indirect resources yet. It seems that for the sake of consistency, we could specify the same default initialization values.
A note on meters: a hardware target may not be able to strictly implement this property (infinite rates), in which case the target should do "best-effort".

@cc10512 Mandating it in PSA seems like a reasonable thing to do.
@antoninbas At least the PSA spec says that meters should support packet/bit rates up to their highest port speed.  It is possible to access individual meters at a higher rate than that, of course, but at least that rate should be able to return green for all packets, if a P4 program is written in a way so that an individual meter is not accessed at a higher rate than all packet from/to a single port.  Seems like pretty good 'best effort' in most cases.

@jafingerhut fixed.


[Namespacing] Prefix isUndefined with "CSS"

Consistently namespace all of css-layout's public C API with "CSS". The only function that needed to be renamed was isUndefined, which I renamed to CSSValueIsUndefined.
Fixes #210.
Test Plan: Ran Buck tests.

👍

Looks good! I'm on vacation a couple days but will make sure to merge this next week. Thank you 👍

Could you please rebase?

@ide updated the pull request.

@ide updated the pull request.

Thanks! Merging now :) I made the necessary updated to react-native


Fix crash in example app

My account doesn't have a name, so the example app crashed for me :)

thanks! I changed it a little bit and merged to develop


Update example_5.py to make it work without modifications (issue with GPU collector)

Hi Adam,
If I clone the current branch on master as of today, install following your instructions, and then run python examples/example_5.py it will run until the point when we have to start training. Then I get this error message in the logger:
2020-04-09 12:56:20.698844  | dqn_pong_0 itr #764 Optimizing over 15 iterations.
0% [##############################] 100% | ETA: 00:00:00
Total time elapsed: 00:00:00
2020-04-09 12:56:21.500512  | dqn_pong_0 itr #779 Evaluating agent...
2020-04-09 12:56:21.500667  | dqn_pong_0 itr #779 Agent at itr 779, eval eps 0.001
2020-04-09 12:56:21.500750  | dqn_pong_0 itr #779 Agent at itr 779, eval eps 0.001
2020-04-09 12:56:28.444518  | dqn_pong_0 itr #779 Evaluation reach max num trajectories (5).
2020-04-09 12:56:28.444959  | dqn_pong_0 itr #779 Evaluation runs complete.
2020-04-09 12:56:28.445058  | dqn_pong_0 itr #779 saving snapshot...
2020-04-09 12:56:28.445247  | dqn_pong_0 itr #779 saved
2020-04-09 12:56:28.447052  | -----------------------------  -------------
2020-04-09 12:56:28.447101  | Diagnostics/StepsInEval         7603
2020-04-09 12:56:28.447117  | Diagnostics/TrajsInEval           10
2020-04-09 12:56:28.447130  | Diagnostics/CumEvalTime          369.052
2020-04-09 12:56:28.447141  | Diagnostics/CumTrainTime          41.8431
2020-04-09 12:56:28.447153  | Diagnostics/Iteration            779
2020-04-09 12:56:28.447166  | Diagnostics/CumTime (s)          410.895
2020-04-09 12:56:28.447178  | Diagnostics/CumSteps           49920
2020-04-09 12:56:28.447190  | Diagnostics/CumCompletedTrajs     32
2020-04-09 12:56:28.447203  | Diagnostics/CumUpdates             0
2020-04-09 12:56:28.447216  | Diagnostics/StepsPerSecond      1192.96
2020-04-09 12:56:28.447228  | Diagnostics/UpdatesPerSecond       0
2020-04-09 12:56:28.447241  | Diagnostics/ReplayRatio            0
2020-04-09 12:56:28.447253  | Diagnostics/CumReplayRatio         0
2020-04-09 12:56:28.447267  | LengthAverage                    760.3
2020-04-09 12:56:28.447280  | LengthStd                          2.32594
2020-04-09 12:56:28.447293  | LengthMedian                     760.5
2020-04-09 12:56:28.447317  | LengthMin                        757
2020-04-09 12:56:28.447329  | LengthMax                        763
2020-04-09 12:56:28.447341  | ReturnAverage                    -21
2020-04-09 12:56:28.447354  | ReturnStd                          0
2020-04-09 12:56:28.447366  | ReturnMedian                     -21
2020-04-09 12:56:28.447379  | ReturnMin                        -21
2020-04-09 12:56:28.447391  | ReturnMax                        -21
2020-04-09 12:56:28.447404  | NonzeroRewardsAverage             21
2020-04-09 12:56:28.447416  | NonzeroRewardsStd                  0
2020-04-09 12:56:28.447429  | NonzeroRewardsMedian              21
2020-04-09 12:56:28.447440  | NonzeroRewardsMin                 21
2020-04-09 12:56:28.447453  | NonzeroRewardsMax                 21
2020-04-09 12:56:28.447465  | DiscountedReturnAverage           -1.85744
2020-04-09 12:56:28.447478  | DiscountedReturnStd                0.0435044
2020-04-09 12:56:28.447490  | DiscountedReturnMedian            -1.85323
2020-04-09 12:56:28.447503  | DiscountedReturnMin               -1.91956
2020-04-09 12:56:28.447515  | DiscountedReturnMax               -1.80722
2020-04-09 12:56:28.447528  | GameScoreAverage                 -21
2020-04-09 12:56:28.447540  | GameScoreStd                       0
2020-04-09 12:56:28.447553  | GameScoreMedian                  -21
2020-04-09 12:56:28.447565  | GameScoreMin                     -21
2020-04-09 12:56:28.447577  | GameScoreMax                     -21
2020-04-09 12:56:28.447589  | lossAverage                      nan
2020-04-09 12:56:28.447602  | lossStd                          nan
2020-04-09 12:56:28.447614  | lossMedian                       nan
2020-04-09 12:56:28.447626  | lossMin                          nan
2020-04-09 12:56:28.447638  | lossMax                          nan
2020-04-09 12:56:28.447651  | gradNormAverage                  nan
2020-04-09 12:56:28.447663  | gradNormStd                      nan
2020-04-09 12:56:28.447675  | gradNormMedian                   nan
2020-04-09 12:56:28.447687  | gradNormMin                      nan
2020-04-09 12:56:28.447700  | gradNormMax                      nan
2020-04-09 12:56:28.447712  | tdAbsErrAverage                  nan
2020-04-09 12:56:28.447725  | tdAbsErrStd                      nan
2020-04-09 12:56:28.447737  | tdAbsErrMedian                   nan
2020-04-09 12:56:28.447749  | tdAbsErrMin                      nan
2020-04-09 12:56:28.447761  | tdAbsErrMax                      nan
2020-04-09 12:56:28.447774  | -----------------------------  -------------
2020-04-09 12:56:28.447867  | dqn_pong_0 itr #779 Optimizing over 15 iterations.
0% [##                            ] 100% | ETA: 00:00:00Traceback (most recent call last):
  File "examples/example_5.py", line 68, in <module>
    n_parallel=args.n_parallel,
  File "examples/example_5.py", line 53, in build_and_train
    runner.train()
  File "/home/seita/rlpyt_astooke/rlpyt/runners/minibatch_rl.py", line 311, in train
    opt_info = self.algo.optimize_agent(itr, samples)
  File "/home/seita/rlpyt_astooke/rlpyt/algos/dqn/dqn.py", line 176, in optimize_agent
    loss, td_abs_errors = self.loss(samples_from_replay)
  File "/home/seita/rlpyt_astooke/rlpyt/algos/dqn/dqn.py", line 250, in loss
    raise NotImplementedError
NotImplementedError

The error happens here:
https://github.com/astooke/rlpyt/blob/a865f6712a049f9fd26500e924114e9582a6a5c2/rlpyt/algos/dqn/dqn.py#L246-L255
I'm not sure if there is a fix planned for this. However, the issue can be fixed by removing the GpuWaitResetCollector which will default to GpuResetCollector.  I'm curious if there is a need to have GpuWaitResetCollector in the Atari examples? The docs suggest that the Cpu version seemed to be beneficial for Atari, interestingly.

Codecov Report

Merging #143 into master will not change coverage by %.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #143   +/-   ##
=======================================
  Coverage   22.56%   22.56%
=======================================
  Files         128      128
  Lines        7987     7987
=======================================
  Hits         1802     1802
  Misses       6185     6185

Flag
Coverage Δ

#unittests
22.56% <ø> (ø)

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 a865f67...9775d00. Read the comment docs.

Ah, yes, good catch, thanks for that!
As a note: If wanting to use the GpuWaitResetCollector with regular DQN, would need to modify the algo to 1) compute valid_from_done() from every sample batch, 2) record the resulting valid values into the replay buffer, and then 3) when replaying, replay the valid values and use them to mask the batch using valid_mean().


As a CICD automation developer I would like ansible to install OCP on fyre QuickBurn

Add ansible automation to be able to install on fyre QuickBurn.

On 11/10 added a new option to the request-ocp-fyre-play and the request-ocp-fyre role to support using the fyre QuickBurn capability.

PR https://github.com/IBM/community-automation/pull/45 created and merged.


Don't build/test debug builds of library modules.

Looking at CI logs I've noticed that we're building and testing debug build type of library modules and then do the same for release build type.
There is no need for that since we don't have build-type specific code, so removing debug builds should speedup CI and save us some log output lines because we're slightly more than 10k atm and Travis only renders 10k lines in its UI, otherwise you have to look at raw log output.

Hah, so I did that in past already PR #473, but then for some reason removed it in PR #575

Heh, for some reason? Is there a way to check coverage on the release build))?

Ah damn it, so we should not build release then :D

Btw, what's wrong with measuring coverage on release build? We don't run proguard on it

It seems with jacoco classes will be compiled with debug information (line numbers) to allow for source code highlighting

should not build release then

:joy:

debug information (line numbers)

Is it ok to keep this meta in release?

Ahhhhhhhh daaaamn wait, I'm afraid we do that anyway!!1 jacoco-android.gradle adds coverage to all build types

It would be super cool if you could check if our release aars contain jacoco calls, that would be facepalm.jpg
We can solve this, I see couple ways, but I need to sleep now

Ah, just in case, previous releases were done manually and I usually run ./gradlew clean uploadArchives which doesn't run tests (because I trusted our CI) and doesn't add jacoco tasks to graph, so previous releases most likely don't include jacoco

Easy solution to not include jacoco calls into released jars would be to change skip_cleanup: true to false in deploy section of travis.yml or add clean to Gradle tasks in release mode


[PROPOSAL] provide support for telemetry

Since telemetry is becoming the de facto package for metrics and instrumentations in elixir, I feel it's going to provide a huge benefit for developers/admins using Kaffy if we have built-in support for it.
Also note the the official phoenix_live_dashboard uses this to provide useful metrics.

I'm having second thoughts about this. I'm kind of leaning towards closing this and labeling it as "wontfix".
Do we really need telemetry support?
The built-in phoenix live support provides so much out of the box and is getting updated regularly.
What would be the benefit of of providing telemetry support if the phoenix_live_dashboard exists and comes bundled with phoenix and is getting updates by the community?
cc @areski

My 2 cents...
We should ensure that Kaffy is flexible enough to display dashboard with data from any sources, which should already be the case, so a built-in telemetry support doesn't seem important to me.
I would be in favour of closing this issue too.
If the need raise in the future it could be reopen!
Cheers!

I closed it, hope you don't mind

I like closing issues more than opening them 🙏🏻

I took that away from you :laughing:


[Help] Is it possible to set the default .jsx icon to .tsx file

Housekeeping

[X] I'm sure this issue is not a duplicate

Information:
Hello,
Is it possible to set the default .jsx icon to .tsx file?
I've tried this, but the problem is that my .tsx files are now behaving like .jsx, and so TypeScript stuff is showing me errors (Cannot declare Type/Interface/etc in js file):
"files.associations": {
  "*.tsx": "javascriptreact",
},

I have also try things like this, but without any success:
"vsicons.associations.files": [
  {
    "icon": "jsx",
    "extensions": [
      "tsx"
    ],
    "format": "svg",
  }
],

Is there a way do this?
Thanks in advance 🙏

I'm having this issue!


Enhancement: Generate raises HTTPExceptions as OpenAPI components

Summary
@get(raises=[NotFoundException])
def endpoint(): ...

...seems to inject each declared raises entry as duplication into the generated OpenAPI spec:
          "404": {
            "description": "Nothing matches the given URI",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "status_code": {
                      "type": "integer"
                    },
                    "detail": {
                      "type": "string"
                    },
                    "extra": {
                      "additionalProperties": {},
                      "type": [
                        "null",
                        "object",
                        "array"
                      ]
                    }
                  },
                  "type": "object",
                  "required": [
                    "detail",
                    "status_code"
                  ],
                  "description": "Not Found Exception",
                  "examples": {
                    "NotFoundException": {
                      "value": {
                        "status_code": 404,
                        "detail": "Not Found",
                        "extra": {}
                      }
                    }
                  }
                }
              }
            }
          },

That's quite lengthy, consider 100 endpoints and it's going to be there 100 times.
Basic Example
Could these be injected into the components section, rather:
    "components": {
        "schemas": {
            "NotFoundException": {
              "description": "Not Found Exception",
              "type": "object",
              "properties": {
                "status_code": {
                  "type": "integer"
                },
                "detail": {
                  "type": "string"
                },
                "extra": {
                  "additionalProperties": {},
                  "type": [
                    "null",
                    "object",
                    "array"
                  ]
                }
              },
              "required": [
                "detail",
                "status_code"
              ],
              "examples": {
                "NotFoundException": {
                  "value": {
                    "status_code": 404,
                    "detail": "Not Found",
                    "extra": {}
                  }
                }
              }

Then the references much become much shorter:
                    "404": {
                        "description": "Nothing matches the given URI",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/NotFoundException"
                                }
                            }
                        }
                    },

Drawbacks and Impact
No response
Unresolved questions
No response

[!NOTE]
While we are open for sponsoring on GitHub Sponsors and
OpenCollective, we also utilize Polar.sh to engage in pledge-based sponsorship.
Check out all issues funded or available for funding on our Polar.sh dashboard

If you would like to see an issue prioritized, make a pledge towards it!
We receive the pledge once the issue is completed & verified
This, along with engagement in the community, helps us know which features are a priority to our users.

@guacs

I think this seems reasonable.
I think there was some discussion related to this with @peterschutt. I think his idea was to move everything into components (i.e. all complex types including user defined types) and only have references to them within the schema.

Nah, I want to go the other way with the schemas DTO schemas that are 1 to 1 with a route. Currently we end up with referenced schema's for types like CreateThingReturnModel, UpdateThingDataModel etc etc, and would rather we just inline those.
I'm all for putting duplicated schemas into components though.

Aah, I misremembered then. Was there some reason you wanted to inline them?

It is that we have to come up with these long unique identifying model names for the DTO generated models that means that the named components get cluttered with names like CreateUserUserRequestBody, for every data and return type for which a DTO is applied, and then the reference to the named component is only used once anyway. This is the logic to create the model names:
    def _create_transfer_model_name(self, model_name: str) -> str:
        long_name_prefix = self.handler_id.split("::")[0]
        short_name_prefix = _camelize(long_name_prefix.split(".")[-1], True)

        name_suffix = "RequestBody" if self.is_data_field else "ResponseBody"

        if (short_name := f"{short_name_prefix}{model_name}{name_suffix}") not in self._seen_model_names:
            name = short_name
        elif (long_name := f"{long_name_prefix}{model_name}{name_suffix}") not in self._seen_model_names:
            name = long_name
        else:
            name = unique_name_for_scope(long_name, self._seen_model_names)

        self._seen_model_names.add(name)

        return name

That makes sense to me. How about we move everything to components except for DTOs created models? The reason I was thinking of moving everything into the components was because we don't really have a way of knowing ahead of time if a model is used only once or multiple times.
Also, should we just do the inlining even if DTOs are used across multiple handlers?

Also, should we just do the inlining even if DTOs are used across multiple handlers?

I'm pretty sure that we don't make any effort to de-duplicate dto transfer models, that is, for the same dto type, applied to the same data model type across multiple handlers will create multiple transfer models that have the handler's id somewhere in the model name. So they still show as multiple components even though its the same DTO type, with same config and same applied model.
So I'd say yes, unless we change the above (or I've misremembered).

Okay so we can go with the following implementation?

inline DTOs
other object response types should be kept as references by default

it would be nice if we could do this only for the types that are reused, but I'm not sure if we can figure that out ahead of time

Another option is to special case exceptions (i.e. all the exceptions become references by default since they'll be reused in almost all the routes). In this case, we keep the behavior for the object response types as it is currently.

Okay so we can go with the following implementation?
* inline DTOs

* other object response types should be kept as references by default

  * it would be nice if we could do this only for the types that are reused, but I'm not sure if we can figure that out ahead of time

Sounds good to me


Can't install extensions & themes from the marketplace

🔍 Is there already an issue for your problem?

[X] I have checked older issues, open and closed

ℹ Environment / Computer Info
- Spotify version: <IP_ADDRESS>2.g26c92729
- Spicetify version: v2.36.0

📝 Description
After updating both the Spotify client and Spicetify. I have encountered a new issue in that I am unable to install extensions or themes. I have encountered this problem several times in the past as I have installed a large number of extensions, and I have removed some of them and installed new extensions on my own. In addition, this time I was unable to install either extensions or themes after uninstalling several extensions.
📸 Screenshots
No response

If nothing works, then jsdelivr domains are blocked for you and we cannot do anything about it. Install extensions manually

Is there a way to resolve the problem on my side, I am hesitating to uninstall Marketplace and install it again as I've some previously installed extensions such as AdBlock from the current Marketplace and if the newly installed Marketplace still had the issue I would lose them too.


Template issue in Chrome

Hi
First off; Your MarkWiki concept is great! Just what we were looking for; a dead simple elegant wiki that can be edited easily. So, thank you for laboring this into existence!
There was one smaller issue I ran into in Chrome; The search bar disappears behind the bread crumbs graphics. The Edit button is suffering from a similar issue as it disappears behind the wiki page title. Please see the screen dump below.

The same is not true for IE. as opposed to Chrome, the search bar and edit button is fixed to the page, in contrast to the Chrome rendering where the two objects are fixed to the nav-bar, resulting in the two elements hiding behind the text that scrolls past.
I am using, what I think is the latest Chrome version; 42.0.2311.90 m
Also; Are you sure you want the edit button on the top of the page? I definitely get why the search bar is at the top, but the edit button is taking focus away from the Wiki page title..
First time I am entering an Issue in GitHub so if I am not complying with the prevailing site etiquette, I do apologize in advance!
I did try to solve the problem myself, but I am basically completely oblivious about bootstrap, so the solutions I tried did not turn out the way I intended.
EDIT: On second thoughts, this issue might belong to Bootstrap / Chrome rather then to the MarkWiki project??
Anyway, congrats on a thoroughly cool project!

@DjingoDjango thanks for the report! I'm glad that you like MarkWiki and took the time to submit an issue. I've been on holiday for a couple of weeks and totally away from a computer so I apologize for the late response.
I think your comment about Bootstrap is probably correct. I have not updated the Bootstrap version included with MarkWiki in over a year. Including a newer version may fix the problem. I'll see if I can do that in the near future and test it out in Chrome. Once that is done, I can put out a new release.


Bugfix/#259

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

12 of 12 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.8%) to 88.228%

Totals

Change from base Build<PHONE_NUMBER>:
0.8%

Covered Lines:
4867

Relevant Lines:
5442

💛  - Coveralls


Removing delta alias for timedelta

The codebase uses delta as an alias for datetime.timedelta through the codebase and through the notebooks. This is a bit unique to parcels, and can lead to confusion to those famliar with Python wanting to use parcels for simulation.
It would be good to remove this in favour of using timedelta.

Good idea, fully agree!


Might be good to add a demo

Would be useful to have screenshots or a demo page

Can you please provide demo or at least props for each component?

up


Add an experimental backend that uses Lean to discharge goals

This experimental new backend translates passive Boogie programs into Lean programs including theorems that can be automatically discharged by the lean-auto package.
Note: The code is almost entirely separate from the existing Boogie codebase, and modifies that code in only tiny ways (to provide an additional command and invoke the new backend when it's enabled). Because of this, and because of its current experimental nature, I'm happy to do as little or as much code review on the new directory as other folks want.
It has several goals:

To allow axioms written in Boogie to be proven to have models and therefore to be consistent.
To allow pre-processing goals before sending them to SMT, possibly discharging some without needing SMT.
To allow experimentation with new tactics and decision procedures that will more frequently discharge goals without the need for SMT.
To allow the use of SMT proof certificates to increase assurance in solver results (though this will require additions to lean-auto).
Possibly: to allow interactive proofs of certain goals, which could use infrastructure such as mathlib4.

At the moment, completing proofs with the backend is manual. When given the /printLean:file.lean option, it prints the Lean program to a file after completing normal verification. It will probably need to stay this way until we build some additional Lean infrastructure. Ultimately, however, the plan is to make it as integrated and automatic as the current SMT-based verification pipeline.
It includes a new test workflow with test files in Test/lean-auto. This currently checks that it succeeds on several of the tests in Test/textbook but will gradually expand to cover more of the test suite.

Note: The code is almost entirely separate from the existing Boogie codebase, and modifies that code in only tiny ways (to provide an additional command and invoke the new backend when it's enabled). Because of this, and because of its current experimental nature, I'm happy to do as little or as much code review on the new directory as other folks want.

Any chance you could write this as a plugin, so that no references from the existing Boogie projects are made to the code of this PR, and this PR can be compiled as a separate .dll that can be included or omitted?
That would also allow you to bypass a code review for this PR, because you could put the code in a separate repository.
With this PR being in this repository, I think it's better to do a code review at the same bar as any other PR. Given that, could you add tests?

Any chance you could write this as a plugin, so that no references from the existing Boogie projects are made to the code of this PR, and this PR can be compiled as a separate .dll that can be included or omitted?

Unfortunately, I don't believe the current plugin infrastructure operates at the right stage in the verification pipeline, at least as this new code is currently written. There is some refactoring I think I'll eventually do that might make it able to fit in as a plugin, but a number of external things need to change before I think that'll be feasible. And I'd rather not have this code stay separate from CI and code review until then.

With this PR being in this repository, I think it's better to do a code review at the same bar as any other PR. Given that, could you add tests?

This PR has tests, running in a new CI job (but located under the Tests directory).

Any chance you could write this as a plugin, so that no references from the existing Boogie projects are made to the code of this PR, and this PR can be compiled as a separate .dll that can be included or omitted?

Unfortunately, I don't believe the current plugin infrastructure operates at the right stage in the verification pipeline, at least as this new code is currently written. There is some refactoring I think I'll eventually do that might make it able to fit in as a plugin, but a number of external things need to change before I think that'll be feasible. And I'd rather not have this code stay separate from CI and code review until then.

I have considered the idea of making this an entirely separate top-level executable which uses Boogie as a library and behaves just like the normal Boogie other than having support for an additional option. I'm definitely still open to doing that, and that would allow it to live in a separate repository.


Redundant conformance of 'AppDelegate' to protocol 'UNUserNotificationCenterDelegate' in iOS

Use case: When clicking on notification in iOS, app opens and I should be able to read payload data so that I can perform various actions upon opening the app like re-route, etc.
For this use case I have followed iOS notification setup provided by WebEngage.
This includes
calbacks for ios -  https://docs.webengage.com/docs/flutter-callbacks#for-ios
disable swizzling -  https://docs.webengage.com/docs/ios-advanced#7-disable-swizzling
my info.plist has -
<key>WEGLicenseCode</key> 	<string>xxxxx</string> 	<key>WEGLogLevel</key> 	<string>VERBOSE</string> 	<key>WEGEnvironment</key> 	<string>xx</string> 	<key>WEGManualIntegration</key> 	<true/>
appdelegate.swift file -
import UIKit
import Flutter
import flutter_local_notifications
import WebEngage
import webengage_flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  var bridge:WebEngagePlugin? = nil
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {

FlutterLocalNotificationsPlugin.setPluginRegistrantCallback { (registry) in
        GeneratedPluginRegistrant.register(with: registry)
    }
var bridge = WebEngagePlugin()
// for push notif payload fetch callback
    WebEngage.sharedInstance().pushNotificationDelegate = self.bridge
// init weg sdk
WebEngage.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

if #available(iOS 10.0, *) {
          UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
        }
        }

    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

extension AppDelegate: UNUserNotificationCenterDelegate {

    @available(iOS 10.0, *)
    override func userNotificationCenter(_ center: UNUserNotificationCenter,
                                willPresent notification: UNNotification,
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

        print("center: ", center, "\nnotification: ", notification)
        WEGManualIntegration.userNotificationCenter(center, willPresent: notification)
        //Handle any other services messages with method swizzling disabled
        // example : firebase
        //Messaging.messaging().appDidReceiveMessage(userInfo)
        completionHandler([.alert, .badge, .sound])
    }

    @available(iOS 10.0, *)
    override func userNotificationCenter(_ center: UNUserNotificationCenter,
                                didReceive response: UNNotificationResponse,
                                withCompletionHandler completionHandler: @escaping () -> Void) {

        print("center: ", center, " response: ", response)
        WEGManualIntegration.userNotificationCenter(center, didReceive: response)
        //Handle any other services messages with method swizzling disabled
        // example : firebase
        //Messaging.messaging().appDidReceiveMessage(userInfo)
        completionHandler()
    }
}

but upon trying to build in simulator i get -
Swift Compiler Error (Xcode): Redundant conformance of 'AppDelegate' to protocol 'UNUserNotificationCenterDelegate'
/path/project_name/ios/Runner/AppDelegate.swift:33:23

Could not build the application for the simulator.
Error launching application on iPhone 14 Pro Max.

@yashpalzala
Please remove the declaration of conformance to the UNUserNotificationCenterDelegate protocol from line 33 of the AppDelegate class. Instead, utilize an extension to declare conformance, as demonstrated below:

extension AppDelegate {
    // Your code here
}

This above solution resolved the issue but still not able to redirect the user on notification click.
Actions done -

calbacks for ios - https://docs.webengage.com/docs/flutter-callbacks#for-ios
disable swizzling - https://docs.webengage.com/docs/ios-advanced#7-disable-swizzling
Manual Integration in info.plist file. -

<key>WEGManualIntegration</key>
	<true/>

Implmentation of pushStream on flutter side (this same code works on android so doubt if any issues on flutter side)
Also mentioned key-valu pair acc. to doc for ios - https://docs.webengage.com/docs/ios-customizing-push-notifications#setting-key-value-pairs

Hi @yashpalzala , are you receiving the callbacks in the function below upon clicking the Push Notification?
` _webEngagePlugin.pushStream.listen((event) {
//here
});
_webEngagePlugin.pushActionStream.listen((event) {
//here
}); `
Also, try adding logs or toasts and check in all three states - Foreground, Background, and Killed.
Please let us know in which state you are not receiving the callback.
Docs Link

@MilindWebEngage nope not receiving any callbacks in
_webEngagePlugin.pushStream.listen((event) {
//here
});

Added toast in pushStream.listen but can't see the toast in killed, Background state.

@yashpalzala Could you please share the AppDelegate file? Please hide your code by typing // your code, and include only the WebEngage Code before sharing the file.

@MilindWebEngage
I have already shared it above in the first message. Is there anything missing in that? Let me know if you want me to reshare or something.
It's standard code that comes with every flutter app there's no custom code as such.

@yashpalzala In your above file, there is an exact curly bracket:
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}
}
So, try to open the project in Xcode and check if there are any other issues in the file.
If you have any queries then you can reach out to us on<EMAIL_ADDRESS>

that is fixed, project wouldn't build if that was the case.

@yashpalzala Please create a ticket on<EMAIL_ADDRESS>so that we can connect and figure out the problem.

@yashpalzala Hey, did you find any solution. I'm facing the same issue.

@Pranit1804 Can you tell which issue you are encountering? Is it related to the redundant conformance of 'AppDelegate' to the protocol 'UNUserNotificationCenterDelegate', or to redirecting the user on notification click?

Hi @MilindWebEngage  It is redirecting the user on notification click.

@Pranit1804

Check if you are not getting the callbacks in the push callback function mentioned in the documentation below, in which state (foreground, background, or killed) you are. Link to documentation.

Upon clicking on a WebEngage push notification, you should receive a callback on either the pushStream or pushActionStream function mentioned in the link above.

If you are not getting callbacks in all three states, that means the push notification on which you are clicking is displayed by Firebase and not by WebEngage.

To fix the above scenario, you need to disable Swizzling for both WebEngage and Firebase so that the push can be displayed by the correct plugin.

WebEngage Disable Swizzling docs - Link
Firebase Disable Swizzling docs - Link
Below is a sample app delegate file(swift file in txt format).
AppDelegate.txt

It is recommended to add a toast on the click function so that you can check in the killed state if you are receiving callbacks or not.

Note: If after receiving the callback in the WebEngage function, redirection is not happening, then you need to investigate this issue, as redirection is handled by your team.

If, after following the above steps, you are still not receiving the callback, then you can create a ticket at<EMAIL_ADDRESS>so that we can connect and figure out the problem.


Increase CI Speed using workflows properly

Following: https://github.com/CartoDB/renderer-prototype/pull/40
CircleCI has a feature called workflows this feature allows to define a graph of jobs with dependences between them.
We managed to run 3 jobs in parallel: lint test:unit and test:acceptance.
It would be nice to extract the common "setup" from those jobs and create a new workflow with a dependency on a common build job.
Somehing like:

At the time of writing this the total time is 1m which is a good CI time. This time is given by the longest task (acceptance-tests )

Re-evaluate in the future.


[GUIDE] Add advanced_index_actions guide

Description
Add advanced_index_actions guide.
Issues Resolved
Closes [#274, #279].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

CI failed here on a broken link to a file that doesn't exist.

as I understand it is no longer relevant or do I need to fix it?


fix Windows OS - electron application setup #2380

"cmd /c" prefix need to bee used for run all commands for Windows - has been added for installElectron task. Filter for path to application has been added (runElectron did not work without this filter). Information about UnZip installer for Windows OS has been added to the readme

:+1:


Implement UUID v6, v7, and v8

[ ] Add UUID v6 and tests
[ ] Add UUID v7 and tests
[ ] Add UUID v8 and tests

Opened earlier  for environment tests.


[subdomain].routes folders

Describe the problem
There are many cases where my application's use subdomains:

Customer portals portal.example.com
Open rest API's api.example.com
Simplified / low performance device website simple.example.com

I often run into situations where I share logic and assets across these subdomains. I wish there was a way for me to not need 3 different repositories / projects on vercel for them.
Describe the proposed solution
Not sure if this is possible with how serverless providers work or if this has already been proposed before, but I basically want the option to create additional routes folders in my projects for each subdomain. Each routes folder name would be prefixed with the subdomain, like so:
my-project/
├ src/
│ ├ lib/
│ │ └ [your lib files]
│ ├ routes/
│ │ └ [your `example.com` routes]
│ ├ portal.routes/
│ │ └ [your `portal.example.com` routes]
│ ├ api.routes/
│ │ └ [your `api.example.com` routes]
│ ├ simple.portal.routes/
│ │ └ [your `simple.portal.example.com` routes]

Alternatives considered
n.a
Importance
would make my life easier
Additional Information
No response

I share your use case but this was recently discussed and rejected in #8335.

We were actually discussing this internally the other day in response to another very similar feature request. The truth is it would probably be fairly simple to add, if we gave you somewhere to express rewrite logic...
// src/rewrites.js
export function rewrite(url: URL) {
  const [slug] = url.hostname.split('.');
  url.pathname = `/_apps/${slug}${url.pathname}`;
  return url;
}

...and then ran that on both the server and the client before selecting a route. This would be a more general solution than putting subdomains inside src — you could also rewrite individual paths if you needed to. But someone immediately said 'what if I want to use a cookie to determine the rewrite?' which seems like a valid question that we could only answer by always doing the routing on the server (which is something we've thought about, at least as an option, since a very large app might have a routing table that's unreasonable to serve to the client), which makes me think that the idea isn't fully baked. Not only that, but it would likely prevent us from any future attempt to make <a href="..."> attributes 'type safe'.
In other words, once we start thinking about this feature it turns out to be full of hidden costs and potential gotchas.
Which all brings me back to the question: why? Why is this a valuable feature?

I often run into situations where I share logic and assets across these subdomains. I wish there was a way for me to not need 3 different repositories / projects on vercel for them.

This is what monorepos are for! Vercel works with pnpm out of the box perfectly. As for the number of Vercel projects, putting everything in one seems very limiting — how are preview deployments supposed to work, for example? Monitoring and observability would also get trickier since everything gets blended together. Projects are free — aside from a slight reduction in total build time it really doesn't seem like a great idea.

Since this use case is coming multiple times, it would be great to have a clonable demo of a monorepo where :

the svelte and vite config are shared between apps
UI components and JS utils are shared
npm packages are shared
(for vercel: deploy config is shared as much as possible between projects)
each app has its own routes/ folder
Generated types works for all apps

#9407 is a more general proposal that covers OP feature request.


feat: display term name on generated schedule

Changes

propagate termTitle from API fetch through to draw schedule
draw termTitle box over default "Draft Schedule" boilerplate, and match Beartracks style
add installation steps in README and fix minor typos

Sample

Closes #83

Oops, I forgot to update the sample in the README. I also noticed a minor alignment issue with the term text when I was taking a screenshot. I'll push another PR with a fix.


Update license to include Apache 2.0

Let's also replace the deprecated "licenses" field in package.json with a "license" field:
"license": "(Apache-2.0 OR WTFPL)"

Sorry about the sloppiness, I think my latest commit addresses these.

Sorry about the sloppiness, I think my latest commit addresses these.

No worries, and thank you.
I fixed the Travis failure with #21, so if you rebase the tests should pass. Please squash your commits while you're at it.

Squashed commits.


Poll: Lazymap for Mixedsearch

Vote the post if you need this feature

Please add this. Laravel Nova has a scout integration, but it relies on ElasticSearchEngine->lazyMap(...) being implemented.

https://github.com/matchish/laravel-scout-elasticsearch/pull/205
@hkulekci added lazymap already. And I think for Nova have to be enough. Original scout don't have MixedSearch functionality so I don't think Nova requires lazyMap for MixedSearch. But I didn't work with Nova so can be wrong.

My bad. Did not see it was implemented in v6. We are unfortunately stuck on elasticsearch version 7 for now. any chance you can add it in v5 also?

PR for 6x should be compatible with 5x. So if someone will create 5x branch and cherry pick https://github.com/matchish/laravel-scout-elasticsearch/pull/205 there it have to work


Notebug:change -e to -c

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage
/sig storage

What this PR does / why we need it:
When we use _output/bin/yurtctl revert cloudnode -h,there is a bug in the information:

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

Does this PR introduce a user-facing change?

other Note

/lgtm
/approve


readme updated

Added Live-site feature doc to the readme
What is the change?
List down various docs with overview in the readme of live-site feature

Closing this PR as live-site related code is in develop-ember branch not develop and any related documentation should be added to that branch


[Enhancement] Check input column string length in column writer

What type of PR is this：

[ ] bug
[ ] feature
[x] enhancement
[ ] refactor
[ ] others

Relates to: #7828
Problem Summary(Required) ：

Check input column string length in column writer in UT

integrated into #7817


Escape within

Hi!
I know it's not trivial, but we could really use language support even within <script> tags.
Break out of JS and back into EJS-enabled "HTML"?
Otherwise, every statement creates 4 errors 😬

Hey there, thanks for posting an issue! This extension only does syntax highlighting, and unfortunately I don't have the time to implement complete language support for EJS from scratch in terms of parsing JavaScript. Let me know if you can find another extension that supports this and I'll be happy to include it in the README!

Disable this option can prevent error messages.
However, the other error messages are not visible in this way.


Bower Install issue

Installing via Bower using Codekit returns this error:

Bower failed to install 'smooth-scroll.js'. It returned this error information:
Code & Message: (null), git://github.com/cferdinandi/smooth-scroll.git#*
Try these steps to fix general errors:

Be sure you're connected to the Internet.
If you are running any blocking/security apps like Little Snitch or Antivirus software, disable those.
If you have installed Apple's Developer Tools, launch Xcode, accept the license terms and let the installation routine finish.
Make sure your network or firewall is not blocking the default port for git:// URLs, which is 9418. (Corporate networks do this frequently.) Use the "Tasks" menu to switch Git to use https:// URLs instead.
5.Delete the hidden ".cache" directory in your home folder.

None of those suggestions are applicable.

I solved deleting a very very old version of git that was installed under /usr/local/bin/git


UI: Case submitted by the advocate should display on advocate console (UI).

Describe the bug
When the case is submitted by the advocate and case is in Pending Payments state , then the same case should display in the advocate UI
To Reproduce
Steps to reproduce the behaviour:
1.Login as advocate
2.Click on File Case button
3.Fill all mandatory details as Litigant Details, Case Specific Details, Additional Details and Review & Sign
5.Click on Submit button to submit case
6.logout as advocate
7.Again login as same advocate
Expected behaviour
The submitted case should display for advocate as  Pending Payments
Actual behaviour
The submitted case is not displaying for advocate as  Pending Payments
Desktop (please complete the following information):
OS: windows
Browser: chrome

Hi @mustakim-egov  this is working as expected.
If u again face this issue then please share the login credential and env details.

There is role changes for the advocate user that why previous user is not working.
Can u create new advocate user and try again.
I tried with this mobile number<PHONE_NUMBER>, it is working fine.


[Bullet] RayCast collision noise near edge of static body

Godot version:
Godot 3.3.2-stable
OS/device including version:
Linux
Issue description:
A RayCast cursor from the player's hand is used to select and draw onto different surfaces flashes in and out of contact as they move the ray off the edge of the surface.

The minimal reproduction project makes 0.1mm steps through a series of origin points for the RayCast and shows how the collider goes in and out of existence.
z=-24.545801 --> (12.104905, 0.000062, -25.103224)
z=-24.545702 --> (12.104907, 0.000009, -25.103149)
z=-24.545603 --> (12.104907, 0.000001, -25.103054)
z=-24.545504 --> (12.104905, 0.000084, -25.102917)
z=-24.545404 --> (0, 0, 0)
z=-24.545305 --> (12.104906, 0.000022, -25.102747)
z=-24.545206 --> (0, 0, 0)
z=-24.545107 --> (0, 0, 0)
z=-24.545008 --> (0, 0, 0)
z=-24.544909 --> (0, 0, 0)
z=-24.544809 --> (12.104907, 0.00002, -25.102251)
z=-24.54471 --> (12.104905, 0.000084, -25.102123)
z=-24.544611 --> (0, 0, 0)
z=-24.544512 --> (12.104907, 0.000001, -25.101965)
z=-24.544413 --> (12.104907, 0.00002, -25.101854)
z=-24.544313 --> (12.104908, -0.000001, -25.101765)
z=-24.544214 --> (12.104907, 0.000001, -25.101667)
z=-24.544115 --> (12.104906, 0.000012, -25.101562)
z=-24.544016 --> (0, 0, 0)
z=-24.543917 --> (12.104907, 0.000009, -25.101364)
z=-24.543818 --> (12.104907, 0.00002, -25.101259)
z=-24.543718 --> (0, 0, 0)
z=-24.543619 --> (0, 0, 0)
z=-24.54352 --> (0, 0, 0)
z=-24.543421 --> (0, 0, 0)
z=-24.543322 --> (12.104907, 0.00002, -25.100763)

Steps to reproduce:
The CollisionShape in the StaticBody is a (1,1,0.01) Box.
I scale the StaticBody by (25,25,1) to set it to the size I want it to be, because this is more convenient than having to set the Box size and the scale on the visible Mesh object individually. The StaticBody is where I can do both at once.
I suspect (but am not sure) my margin is somehow getting scaled by 25 up from 0.01 to 0.25 in the X and Y planes, and that the RayCast algorithm treats this as a tolerance value and considers it optional whether or not a RayCast passing outside the object but within the margin reports a collision.
To avoid this noise I would like to set this margin to 0.0, but this is not allowed.  However, I could hack values below the minimum allowed by creating a large surface and scaling everything proportionally down -- if margins are being scaled.
But why would the CollisionShape margin being scaled at all, since its effects and use (for performance) take place in the global space?
Minimal reproduction project:
raycast_dither.zip

AFAIK physics bodies should NOT be scaled EVER.

AFAIK physics bodies should NOT be scaled EVER.

Scaling uniformly should be fine, but scaling non-uniformly is not.

@goatchurchprime Can you reproduce this on 3.4.2, with Bullet and GodotPhysics as the 3D physics engine?

I had to ask elsewhere about how to change the physics engine (it's in the editor settings).
The ray cast problem seems to be gone when I tested in my game.  (I have not tested with the minimal reproduction project).  As I said above, the issue is probably caused by scaling the margin when scaling the cuboid body.  (This should be allowed since a scaled cuboid body is still a cuboid body, and it's a quick way of changing its dimensions at the same time as the visible mesh object it represents.)
However, I encountered other dithering issues to do with my KineticBody that I will have to investigate when I switch engine.
https://user-images.githubusercontent.com/677254/151176150-7ae71a44-1495-4896-833b-45a467b159d1.mp4
I also tried out my standard test of throwing out 50 boulder shaped objects and letting them fall as PhysicBodies and found that GodotPhysics reduced to a frame rate down to 1 per second (there is no frame rate drop with BulletPhysics).  I am hoping this is because GodotPhysics has not been (prematurely) optimized.

I had to ask elsewhere about how to change the physics engine (it's in the editor settings).

The physics engine is configured in the project settings, not the editor settings.

Collision noise near edges is still here on Bullet engine, but not on GodotPhysics engine.
Godot 3.4.4 stable mono, Win10 x64
https://user-images.githubusercontent.com/45442278/163686481-60d4dc19-d583-4c66-a30d-7435b260c374.mp4
RayCast is being cast from the middle of the head, behind the player to make 3rd person camera collisions with terrain and objects.
RayCast detects collisions where no collision shapes are to collide with:
https://user-images.githubusercontent.com/45442278/163686608-ef40aa78-9c08-44de-9f8f-7a613108cde8.mp4
I thought that Bullet engine might account player movements to 'predict' future collision. Unfortunately, collision noise appears even when player is neither moving (seen in first video at 0:30 - 0:32) nor rotating camera.


[OPPRO-299] Support acos(), asin(), atan(), ceiling(), cos(), cosh(), degrees(), log10() functions in Gluten

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)

@zhixingheyi-tian Please rebase and fix the conflicts.


Adding support for custom converters

Changes for custom input converter support.  Allows customers to plugin their converter implementation to the pipeline to customize how function input parameters are populated.
Major changes:

Exposed an  InputConverters property to WorkerOptions. Customers will use this property to plugin their custom converters when bootstrapping the app.

Added a new InputConversionFeature. This feature is responsible for finding the appropriate converter to be used and does the conversion. This feature uses the 7 built-in converters along with any other custom converters customer has defined.

The existing DefaultBindingFeature does not directly work with the converters now. Instead, it uses the new InputConversionFeature implementation to do the conversion.

How does function app developers use this?
Customers can create a new custom input converter by implementing the IInputConverter interface.
public interface IInputConverter
{
    ValueTask<ConversionResult> ConvertAsync(ConverterContext context);
}

The ConverterContext instance will have information such as target type and source data (input data/ trigger data).
The custom converter can be hooked up to the function app in any of the following 3 approaches.
1) App level
Add the new converter to WorkerOptions.InputConverters while bootstrapping the app.
var host = new HostBuilder()
            .ConfigureFunctionsWorkerDefaults((workerOptions) =>
            {
                // Add MyCustomConverter to the pipeline
                workerOptions.InputConverters.Add(typeof(MyCustomConverter));
            })
            .Build();

await host.RunAsync();

This option also allows the customers to insert this converter in a specific position or clear all existing built-in converters etc.
2) Type level
Decorate the type used as the parameter of the function with InputConverter attribute where you will define the custom converter type to be used.
[InputConverter(typeof(MyCustomConverter))]
public sealed class Product
{
    public int Id { set; get; }
    public string Name { set; get; }
}

and
[Function("products")]
public HttpResponseData Run(
                 [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequestData req,
                 Product product)
{
   ....
}

3) Function parameter level
Decorate the function parameter using the InputConverter attribute
[Function("products")]
public HttpResponseData Run(
                 [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequestData req,
                 [InputConverter(typeof(MyCustomConverter))] ProductViewModel productvm)
{
   ....
}

I feel like we need to clear up the "handled" discussion before we approve this.
Also please make sure you create a design document for this new feature in Antares Docs


IE8 first select class="form-control"

I have just found a bug in bootstrap 3 that occurs in IE8. The first select class form-control makes the drop down unelectable with the mouse. If you place:
select class="form-control" style="display:none"
above the first drop down on your page your drop down will work as expected in IE.

Please post the HTML for a simple example that demonstrates the problem.

@matherton Ping.

Closing due to lack of response.


create_role_secret_id with wrap_ttl & fix get_role_secret_id_accessor

Hi @otakup0pe @ianunruh ,
Is there anything we could do to help you merge this PR?
We'd really love getting back on the main hvac track :)
Thank you


Implement knit as an "undo" for chop

knit
urbit knit <pier> <input files> implements the inverse of chop[^1].
knit allows pilots who have previously chopped their event log to merge their set of chopped event logs (files like data.mdb.bak.<first>_<last>) back into their pier's normal event log (data.mdb).
knit gracefully stops the given pier (if running) and verifies that all input files exist, are readable, are valid LMDB database files, and match the metadata of the specified pier. Next, it reads the keys from all the input files (and the pier's current event log) and ensures that the resulting merged set of event numbers is valid (i.e., monotonically increasing integers starting from 1)[^2]. Then, it streams the events from the input files into a fresh database file and, upon success, backs up the pier's current event log (to data.mdb.bak.<first>_<last>, as in chop) and renames the temporary database file to data.mdb.
Pilots are then free to move, archive, or delete their old .bak files, resume normal operation of their ship, and bear the burden of a higher monthly hosting fee.
[^1]: See #165.
[^2]: Should it be necessary for pilots to provide all previous events, all the way back to 1?

Ideally this would not require the user to have events all the way back to event 1.  If the user has already chopped the event log previously and deleted the older events to free up disk space, it should still be possible to do a second chop and then undo it with knit if something goes wrong.  The requirement of starting from the first event would prevent this.
Checking contiguity of events is needed to prevent creating an event log with an invalid state, but it should be able to start at an arbitrary event.

Closing due to de-prioritization. chop is already trivially reversible.


Add fiff eeg ref dig

Just stumbled on mne.io.add_reference_channels, which is great for our custom Easycaps with reference at FCz. Now we can easily re-create the "missing" channel, particularly favoured by auditory researchers :)
This PR adds the location of the Ref channels to info['chs'], which is good for topographic plots. Neuromag EEG digitisation starts with the Ref and gets the identity 0, which is what this code is based on. I'm not sure how that would translate to non-Neuromag systems? I'm hoping the test for len(dig_loc)==1 will at least not cause bugs for them.

[Current coverage][cc-pull] is 86.73% (diff: 75.00%)

Merging [#3461][cc-pull] into [master][cc-base-branch] will increase coverage by <.01%

@@             master      #3461   diff @@
==========================================
  Files           339        339
  Lines         58637      58641     +4
  Methods           0          0
  Messages          0          0
  Branches       8928       8929     +1
==========================================
+ Hits          50856      50861     +5
+ Misses         5092       5090     -2
- Partials       2689       2690     +1

[][cc-pull]

Powered by Codecov. Last update [e17e31f...8fa1d58][cc-compare]
[cc-base-branch]: https://codecov.io/gh/mne-tools/mne-python/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/mne-tools/mne-python/compare/e17e31fc42874461648c40a8b5d11e3aced74ab7...8fa1d58b2489efdbcb9e0e00301b0a23cd21fe6a?src=pr
[cc-pull]: https://codecov.io/gh/mne-tools/mne-python/pull/3461?src=pr

Otherwise LGTM, please also update whats_new.rst, I guess in the BUG section, since without this source localization will be wrong

Thanks for the feedback. It started a whole lot of digging on my part, which became so extensive that I decided to document it in an ipynb, please find it here (not sure why it's not rendering, perhaps because it's a gist?):
https://gist.github.com/cjayb/43e65b729b3f1cefac882382989bc553
NB: The tests fill fail, which I think is a problem with the test(s) rather than the code ;) See the notebook for details, but basically it boils down to having to ensure ref channels aren't applied after CAR is applied(active). This is the case when the Epochs-constructor is called with proj=True (default; as opposed to delayed). I believe most of the tests in test_reference.py:test_add_reference() should be adjusted...

Hi again, I've spent more time thinking about this, and updated the notebook accordingly. Should be downloadable here:
https://anaconda.org/cjayb/walkthrough_pr_3461/notebook
I'd like to hear some feedback on this before proceeding to fix the tests etc. Do folks agree that this PR represents what should happen?

CAR after re-referencing is forbidden (warning issued)
re-referencing after CAR applied (active=True) is a RuntimeError

CAR after re-referencing is forbidden (warning issued)

yes. To me there is already checks to prevent source loc with custom_ref is
applied.

re-referencing after CAR applied (active=True) is a RuntimeError

I see mostly a plotting issue in your code. You want to plot a ref channel
that is not a "data" channel and therefore excluded from the projections.

as I've been told in the pas "just make it work" we'll make it nice
afterwards :)

I see mostly a plotting issue in your code. You want to plot a ref channel
that is not a "data" channel and therefore excluded from the projections.

Hmm, not sure I understand: master allows add_reference_channels even if CAR is applied/active (In [12] in the rendered notebook on the cloud). Surely this is severe enough to raise an exception?
Also, I cannot see how my 'Ref' channel is not a "data" channel? It seems to me to be on par with all the other "true" EEG data channels, as it should be. I thought the funkiness of the topomap was mainly due to the nose-placement of the Ref in the case of sample, which probably throws off the heuristics of generating pretty topographies(?).
I'll take another look at the tests and clean up.

Dang, forgot to push the last commit (added the warning about no CAR created when custom ref has been applied) :(

I think this is now a functional proposal that addresses the original PR, and additionally:

checks and warnings preventing CAR-accidents when re-reffing (including tests)
introduces a _remove-method for the CAR-projection, leaving nothing "hanging" when custom ref applied

Possible remaining issues:

if multiple Ref-channels added (e.g., ['M1', 'M2']), there is no way a FIF-file can contain the digitisation info for both: should I add an if for this?
would it make sense to allow a ref_locs-parameter (default: None, _i.e., read from file if possible) to add_reference_channels? This way non-NM data could easily be accommodated.

@wmvanvliet are you ok with these changes?

regarding remaining issues. I never encountered the issue myself.
maybe @wmvanvliet or @jona-sassenhagen have some suggestion.

regarding remaining issues. I never encountered the issue myself.

indeed, average mastoid references are not exactly the bread-and-butter of traditional mne-usage. It seems though that your package is gaining considerable traction in the more traditional EEG analysis realm, so it's great to have such tools available! My remaining points aren't really severe, so I'm perfectly happy leaving them out for now and dealing with them if they ever become an issue.

LGTM to me then
@wmvanvliet @jona-sassenhagen I'd love to have your opinion on this.

I'll take a good look at this tomorrow.

Thanks for the PR @cjayb! I've added my comments inline with the code.

Thank you for the comments @wmvanvliet I found a much cleaner way to implement my proposed changes (made for a much smaller diff, which I'm sure ya'll appreciate...). No need for a _remove-method this time. Let me know what you think.

Can't figure out how to make a line note on this, but @wmvanvliet I'm wondering about line 95 in reference.py: why break? Shouldn't you run through all projections and apply them if the channel names match (not just the first one)?

because line 94: inst.apply_proj() applies all inactive projectors.

ah, and I see now that add_eeg_average_proj is never called within mne itself anymore. It's an ancient relic. Sure, add the warning, it may be useful if someone out there is using the function. (Or maybe we should deprecate it?)

other than my nitpick, LGTM. +1 for merge once the nitpick has been addressed.

ah, and I see now that add_eeg_average_proj is never called within mne itself anymore. It's an ancient relic. Sure, add the warning, it may be useful if someone out there is using the function. (Or maybe we should deprecate it?)

Wow, I see what you mean, but it's in examples/datasets/plot_brainstorm_data.py:raw.add_eeg_average_proj(). It seems to be an alternative to this pattern: inst.add_proj(make_eeg_average_ref_proj(inst.info, activate=False)), which also appears a few places. And guess what? Someone beat me to it ;)
# proj.py:make_eeg_average_ref_proj;L677
    if info.get('custom_ref_applied', False):
        raise RuntimeError('Cannot add an average EEG reference projection '
                           'since a custom reference has been applied to the '
                           'data earlier.')

Problem is that make_ is often after an if-clause testing whether _needs_eeg_average_ref_proj, which in turn returns false if info['custom_ref_applied']...
Bit of a mess really. _needs isn't called that many places, so I could separate the "need" from the "custom_ref"-issue. That would allow for more specific warnings/exceptions.
@Eric89GXL this is related to your comment, too. I'm definitely all for an exception instead of a warning.

Good find @cjayb. Ok, so given that it is perfectly valid to move from a custom reference (whatever that referencing scheme was) to an average reference, MNE should just do it when asked.
Regarding adding a new channel and than computing the average reference... it's an interesting question. The average reference is always dependent on the layout of the electrodes. A cap with 32 electrodes will have a different average than a cap with 64 electrodes. A cap with 32 electrodes in slightly different locations will have a different average still.
So, adding a new channel and recomputing the average reference will indeed not yield the same reference if we would have calculated it without the new channel. However, I don't see this as a problem. If you care about having as much EEG channels available as possible, it makes perfect sense to first call add_reference_channels() and then set_eeg_reference() to apply the average reference. Then you get the reference channel as normal EEG channel.

At various points in the code, we check whether a proper EEG reference is in place. This is implemented in the needs_average_ref_proj function.
What is a proper reference?
Either an average reference or a custom reference set explicitly by the user.
Therefore, needs_average_ref_proj should return True only if no current average projection exists and no custom ref has been set.
Some functions, notable source estimation, require an average reference. The code goes through multiple stages, but in the end the following dance is performed:

call needs_average_ref_proj to check whether a proper reference has been applied.
call make_average_ref_proj if the above function call returns True
call has_eeg_average_ref_proj to check whether the current reference is the average reference.
fail loudly when the above function call returns False, because it means the user has explicitly set a custom reference and is trying to perform source estimation anyways.

@wmvanvliet agreed, CAR after off-line re-ref is OK. But currently prevented in make_eeg_average_ref_proj (and in the add_eeg_average_proj in the current PR, latest commit). Trying to do so raises an error (the same one in both, to be exact). So if this is to be allowed (in both places), perhaps it should be a new Issue/PR on top of this one?
I guess it's more an API decision ( @agramfort @Eric89GXL ): do you want to prevent users from (possibly inadvertently) applying a CAR after re-reffing? Seems that someone before me did. The argument for doing this is in mind mind is that there is no valid use case for first adding a channel & re-reffing, then doing source localisation. The information in the data is not increased, so the inverse model isn't (mustn't) be changed. Granted, this also prevents looking at the Ref's signal under the CAR :( However, as you also pointed out, CAR is dependent on electrode number and location, so CAR is never truly comparable between subjects, anyway.
Btw: let me know if you'd prefer a squash, this is getting a bit unwieldy with back-and-forth commits! Seems to be a bad habit of mine ;)

we'll squash at the end. Regarding API honestly I trust @wmvanvliet
https://github.com/wmvanvliet and your judgement. I agree though that an
added reference channel should not be included in the inverse computation.

do you want to prevent users from (possibly inadvertently) applying a CAR after re-reffing? Seems that someone before me did.

That someone was me :) I thought mistakingly at the time that it was not a valid operation.

I agree though that an added reference channel should not be included in the inverse computation.

Then we should just leave it as it is now: throw an error if we try to go from a custom reference to an average reference. Otherwise, there's no way to know if a reference channel has been added. If someone really needs to compute an average reference after a custom reference, then they can either explicitly set info['custom_ref_applied'] = False or start complaining on the mailing list and we'll re-visit the issue.

someone really needs to compute an average reference after a custom reference, then they can either explicitly set info['custom_ref_applied'] = False or start complaining on the mailing list and we'll re-visit the issue.

👍 my thoughts exactly :)
If @Eric89GXL is OK with adding the ref coord to all 'chs's, feel free to take over/merge.

Looks reasonable to me

I've done some digging into the add_eeg_average_ref function.
Here's the situation about average referencing:

add_eeg_average_ref is never called from within the MNE codebase. Some docstrings refer to it as well as one example.
The official ways to add an average reference is:

to add one but don't override any existing reference: make_eeg_average_proj, followed by add_proj
to add one and override any existing reference: set_eeg_reference

As I see it, we can do two things:

Make add_eeg_average_ref function do make_eeg_average_proj + add_proj. Make it fail loudly when an existing reference has already been applied. Refactor MNE code to actually use this function instead of make_eeg_average_proj. Remove loud exception from make_eeg_average_proj.
(my personal pick) Deprecate add_eeg_average_ref as it adds unnecessary API complexity. Refer users to set_eeg_reference.

2 seems like a bigger change. In any case, how would it work for Neuromag
data that has an implicit ref (it has already been effectively subtracted
but is not a data channel) but we need to add CAR for inverse imaging?
Would I call the set reference function listing all the EEG channels, and
in that case, the function will change its behavior to add a projector
instead of actually doing the subtraction? That seems a bit ugly.

No, you would do the following:

If you have bad EEG channels:
Load data without any EEG ref
Mark bad channels
Call raw.set_eeg_reference() which adds the CAR projector.
If you don't have bad EEG channels;
Do nothing. MNE does the right thing.

Ahh, so it already does the exceptional / optional CAR-proj behavior:
    ref_channels : list of str | None
        The names of the channels to use to construct the reference. If None is
        specified here, an average reference will be applied in the form of an
        SSP projector. If an empty list is specified, the data is assumed to
        already have a proper reference and MNE will not attempt any
        re-referencing of the data. Defaults to an average reference (None).

I'm okay with this option.
This is also somewhat related to https://github.com/mne-tools/mne-python/issues/2727.

But @wmvanvliet is this relevant for the current PR, or can it be done separately? If separately, let's make a new issue and discuss there so we don't derail this one. Can you give it a last round of review?
@cjayb can you squash the commits?

Our discussion was relevant for this PR, because it touches the add_average_ref function.

@cjayb Looks good! +1 for merge.

We can add to doc/whats_new.rst when merging. Alternatively you can do it in this PR.

And I'm back... I've manually squashed, after a rebase and adding an entry to what's new (also fixed a typo in the first entry)
I'm also +1 for going with deprecating add_... and consolidating on make_... + add_proj. Takes a little extra effort for users the wrap their heads around, but is safer wrt inverse modeling. And also Zen.
I'm pretty confident that the current implementation of referencing (incl. CAR) is inverse-safe. It should be (and is) very hard (out-of-api hack) to build an inverse model based on data that's been re-referenced. The only reason to re-ref is to do "classical" ERPology. If source localisation is to be done on the same data, the user will have to go back a step, which is no problem given that the ref-channel can cheaply be added to evoked data. I agree with @Eric89GXL that #2727 is indeed related, since the default behaviour of applying projections on read of evokeds and epochs may bite someone in the rear...

@wmvanvliet merge if you're happy. This needs yet another rebase though
also it terms of API I like the idea of having a single method on inst set_eeg_reference that can also add the CAR projection. Pointing users to one function to reference EEG is nicer. In another PR though.

Merged by rebase.
Thanks @cjayb!


Add labels to created resources

For feature parity with the shared lib, see https://github.com/opendevstack/ods-jenkins-shared-library/pull/646/files.
If we can do this through Helm, we might be able to make use of post-rendering (https://helm.sh/docs/topics/advanced/#post-rendering). However that would only target the resources directly controlled by Helm, not the resources which are indirectly controlled (such as pods). We need to be careful that all resources are in scope. If using Helm does not work, then we need to use labelling through the API.

Based on https://github.com/opendevstack/ods-jenkins-shared-library/pull/916#issuecomment-1294509691, this is not a hard requirement anymore.
It is better to leave labelling to the chart author, or, if this should really be enforced on cluster level, to provide this functionality e.g. by a mutating admission webhook.


Addresses
adress- 0x0000b36362964525c8ec015173c5109dcb210000
tx hash- 0x5af91bfc8ae812f64678df3c09e0849c63f4a9eae8ca575e5ee3b7e651cdeaa8
Meta Article URLs
https://ftmscan.com/tx/0x5af91bfc8ae812f64678df3c09e0849c63f4a9eae8ca575e5ee3b7e651cdeaa8

Hey, thank you for opening this issue. This specific repository is only for smart contract exploits, not for phishing websites or compromised wallets. If you want to figure out what happened to your wallet I would recommend looking at this flowchart. If you need more help I recommend reaching out in our Discord.


Add support for hyphenationFactor

This adds support to BONText and BONChain for NSParagraphStyle's hyphenationFactor property.

@Imperiopolis a unit test or two would be nice 😉

@Imperiopolis a unit test or two would be nice 😉

It seemed like the other similar NSParagraphStyle properties weren't being tested so I didn't add tests here – can add them if you feel it's important.

Haha, oops. If you want extra credit, tests for those things would be great. You can enable code coverage in Xcode for the example projects scheme if you want to get an idea of what needs to be tested. Otherwise, please open an issue that the paragraph style stuff should all be tested.

@Imperiopolis I made a little sample app to test this out and confirm everything is working: http://cl.ly/gXvY. You can see the effects of hyphenation factor around the 0.7-0.9 range if you drag the slider. It's pretty cool, and I learned a thing 😄. After playing with it and rereading the documentation, I understand what you mean about the percentage.
Given that, it would be nice to offer a little guidance as to how this feature works, in addition to just copying the documentation. Specifically, we should mention that only values between 0 and 1 are valid, and that a higher value will result in more aggressive (i.e. more frequent) hyphenation. I had to do some thinking to parse the documentation such that I could understand it, and I'd like to save future users that anguish 😌

Closing in favor of #156


Remove obsolete types and members

Description
This PR removes types and members marked as [Obsolete] from the codebase.
Addresses part of #964.
Quality checklist

[x] Your code complies with our Coding Style.
[x] You've updated unit and/or integration tests for your change, where applicable.
[ ] You've updated documentation for your change, where applicable.
If your change affects other repositories, such as Documentation, Samples and/or MainSite, add linked PRs here.
[x] There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.
[ ] You've added required license files and/or file headers (explaining where the code came from with proper attribution), where code is copied from StackOverflow, a blog, or OSS.

The method Steeltoe.Extensions.Configuration.ConfigServer.ConfigServerConfigurationProvider.Build is still marked as obsolete, because it has several usages and I don't understand what to replace them with:
[Obsolete("Will be removed in next release, use the ConfigServerConfigurationSource")]
public virtual IConfigurationProvider Build(IConfigurationBuilder builder)

Please advice on how to remove this one and update usages.

/azp run Steeltoe.All

The method Steeltoe.Extensions.Configuration.ConfigServer.ConfigServerConfigurationProvider.Build is still marked as obsolete, because it has several usages and I don't understand what to replace them with:
[Obsolete("Will be removed in next release, use the ConfigServerConfigurationSource")]
public virtual IConfigurationProvider Build(IConfigurationBuilder builder)

Please advice on how to remove this one and update its usages.

Removing , IConfigurationSource on line 29 clears the only compilation issue I'm seeing, what else breaks?

The method Steeltoe.Extensions.Configuration.ConfigServer.ConfigServerConfigurationProvider.Build is still marked as obsolete, because it has several usages and I don't understand what to replace them with:
[Obsolete("Will be removed in next release, use the ConfigServerConfigurationSource")]
public virtual IConfigurationProvider Build(IConfigurationBuilder builder)

Please advice on how to remove this one and update its usages.

Removing , IConfigurationSource on line 29 clears the only compilation issue I'm seeing, what else breaks?

I searched for usages of the Build method, which apparently showed me all usages from the interface method. Removing the interface and the method doesn't fail the build. Thanks for the help.


Include scene post body params

Overview
This PR includes post body parameters for posting to /scenes/ and removes
an erroneous discriminator on CombinedSceneQueryParams. These are necessary
for the docs site to understand what's going on with scenes and for bravado to construct
post_scenes calls correctly in the python client.
Checklist

~Styleguide updated, if necessary~
[x] Swagger specification updated, if necessary
~Symlinks from new migrations present or corrected for any new migrations~

Testing Instructions

Tested as azavea/raster-foundry-python-client/pull/13

Closes #2262

@Lknechtli this should fix the docs site error with scenes -- needed to fix it for support today anyway


add PPO-HER

can you add   PPO-HER as soon as possible ? i have tried,but failded.help me,please.

hi, sorry i am not sure when i will have time to implement that one.
I'm also not sure now if there is a paper that has done this before, have you seen one?

which paper? can you tell me

i can implenment it on dqn sucessfully,but failed with ppo

@1576012404 Hi, I just noticed a repo which implemented IPG+HER, in case you have interests:
https://github.com/jianing-sun/Interpolated-Policy-Gradient-with-PPO-for-Robotics-Control-/tree/master/IPG_for_PPO

Is it possible? I think PPO v2 is not strictly an 'off-policy' algorithm.


SEEDSDT-453

Adding a link to the country-overview page from Homepage, target page does not load

do not close the ticket!


Fixing Exception Cause By Type Error When Scanning LLMs Via Replicate

Hi professor,
Recently I launched a garak scan using debug mode of vscode with the following configuration:
    {
        "name": "replicate+meta/llama-2-70b-chat",
        "type": "python",
        "request": "launch",
        "program": "${workspaceFolder}/garak/__main__.py",
        "console": "integratedTerminal",
        "args": [
            "--model_type",
            "replicate",
            "--model_name",
            "meta/llama-2-70b-chat",
            "--probes",
            "malwaregen"
        ],
        "justMyCode": false,
        "env": {
            "REPLICATE_API_TOKEN": "****************************************************************"
        }
    },

But I got exception raised by ....../python3.11/site-packages/backoff/_sync.py:106:
input.seed: Invalid type. Expected: integer, given: null
Finally I found the reason of the exception:
The value assignment operation of self.seed = 9 in garak/generators/replicate.py:38 has been proved invalid according to the collision described below:

garak/resources/garak.core.yaml:9: the attribute seed has a default value "empty", which is regarded as None in Python syntax;
The above None value could assign to self.seed of class ReplicateGenerator by self.seed = _config.run.seed in garak/generators/replicate.py:40 and  generator.seed = _config.run.seed in
garak/cli.py:445;
garak/generators/replicate.py:63 needs self.seed to be int type but it is None type.

To address this problem, I made some modifications to avoid value assignment operation when self.seed appears to None type. I believe those modifications could enhance the robustness of the framework.
Please review the code comparison for detail. Any problems, feel free to point it out. 😊

Thanks. This is a fine workaround - I'm sure we'll see this in more than one place. The ultimate fix is to use a better data structure for _config, but this fix looks good to me.


[WebToolsE2E][Aspire] Changing the localization for display language in Aspire 9.1 dashboard, the string for new features in Console logs are not localized.

INSTALL STEPS

Clean machine: Win11 x64 23h2
Install VS 17.12 P4 VAL (with Aspire 9.0.0)
Install latest Aspire 9.1.0-preview.1.24611.1

REPRO STEPS

Create .NET Aspire Starter App > .NET 9.0 (Standard Term Support) > Create
Build and F5
Change the display language in Settings
Navigate to Console logs > Check the new added buttons

NOTE

This issue is reproduced with all the localized language included in Settings.

ACTUAL

Hover to stop button and check "Stop resource"

Click the ellipsis button and check "Restart"

Hover to ellipsis button and check "Resource commands"

Hover to settings icon in Console logs and check "Console log settings"

Click the settings icon in Console logs and cehck "Download logs/Hide timestamps"

EXPECTED
After changing the localization for displayed language, the mentioned strings should be localized.

Closing, as we are going to merge a dotnet-bot PR checking in localizations.


Is it normal not to have a lastmod value for prerendered pages?

Details

As per screenshot, I've a sitemap at aihairstyles.com/sitemap.xml where the dynamically generated pages do not have a lastmod value. Google for some reason is refusing to index these pages and so trying to work out why and this jumped out at me. I've followed the steps in prerendering by adding crawlLinks: true in nuxt config, but no joy.
Is this normal/ok? As per the docs it says it should add a lastmod value

Hi @Chippd, thanks for the issue.
Can you confirm which version you're using? It looks like quire an early version

We are in 2.4.0 and have the same issue - https://www.economize.cloud/resources/sitemap.xml

We are in 2.4.0 and have the same issue - economize.cloud/resources/sitemap.xml

Please use the latest and I can investigate further if it's not working

Btw @Chippd, if you get in contact on Discord I'm happy to try and help you get your pages indexed, not having a lastmod isn't going to do anything.


Moving to use lockless unbounded queue for StreamAppender in Log4j1

Problem:
In both StreamAppender for log4j1 and log4j2 a blocking queue is used to coordinate between the append()-ing threads and a single thread send()-ing to Kafka.
This is a bounded, blocking, lock-synchronized queue.
To avoid deadlock scenarios (see SAMZA-1537), the append()-ing threads have a timeout of 2 seconds, after which the log message is discarded and the queue is drained.
This means in case of message bursts, threads calling append() may block for upto 2 seconds, and may continually be stuck in this pattern, leading to processing stalls and lowered throughput.
Solutions for Log4j2
Solution 1. Enable async logger in log4j2, since they are supported and provided in log4j2.https://logging.apache.org/log4j/2.x/manual/async.html.
In using this capability, the blocking-queue in StreamAppender is not required because the logger itself will be asynchronous, and so append() threads can directly call systemProducer.send().
However, if async loggers are not used then this queue based mechanism, to give the append()-ing threads an "async" illusion, is required.
Solution 2. Continue using the blocking bounded lock-based queue, but make the queue size and timeout configurable. Users can then tune this to account for message bursts.
Solution 3. Move to use a lock-less queue, e.g., ConcurrentLinkedQueue (unbounded) or
implement a bounded lock-less queue, or use [open-source implementations|https://stackoverflow.com/questions/20890554/lock-free-circular-array].
Append()-ing threads will no longer need to block or timeout. However the caller may busy-wait or need a fixed-rate or fixed-sleep-time to avoid busy waits, since a lock-less queue is non blocking.
It uses CAS operations.
Solutions for Log4j1
Solution 1. Deprecate – log4j1 is not supported.
Solution 2. Similar to Solution 2 above.
Solution 3. Similar to Solution 3 above.
For log4j1, we will adopt Solution 1 – won't fix.

Won't fix, since this is likely to change memory/cpu profile of existing apps using this.


Fix dhcp infinite lease time

The previous setup of many hours would not work, due to some internal dnsmasq issues - lease was set correclty, but dnsmasq was setting the dhcp-renew-time (and rebind time) to less than 2 years from the date the lease was issued.
Using "infinite" as the value (instead of the number) works as expected - and (atm) the renew date is set to year 2088, etc..
Description

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Screenshots (if appropriate):
Confirmation inside user VM of correct renew/rebind/expire time

Configuration inside VRs

Different one:

How Has This Been Tested?

See screenshot above

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

removing lease = randint(870000, 870010) is certainly OK. Not sure how infinite works. code lgtm

It works as one can imagine (I was intrusted by the dnsmasq ML guy to use that word and tested it works fine)

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-943

@blueorangutan test

@andrijapanicsb a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-1113)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 31339 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3913-t1113-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_vpn.py
Smoke tests completed. 75 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_02_vpc_privategw_static_routes
Failure
206.78
test_privategw_acl.py

test_03_vpc_privategw_restart_vpc_cleanup
Failure
208.56
test_privategw_acl.py

test_04_rvpc_privategw_static_routes
Failure
304.12
test_privategw_acl.py

test_01_redundant_vpc_site2site_vpn
Failure
282.78
test_vpc_vpn.py

@andrijapanicsb LGTM and a small question. To ensure that the ip addresses are static in Cloudstack we use such a high lease time and they are only be changed from the operator. right?

@svenvogel yes and not - I mean we can not change this (unless one edits the script/systemVM.iso) - here we are ensuring renew time is in far, far future ("infinite" as defined by the dnsmasq options) - thus effectively VM will never attempt to renew it's IP and thus will not be possible to fail to renew IP from the VR which has no knowledge of the issues lease (new VR that is created as part of the network restart with clean up - the /var/lib/misc/dnsmasq.leases is missing in this new VR - so VR will reject any DHCPRENEW request, and VM will eventually fail back to to  "initialisation" process with DHCPDISCOVER etc - but some OS (RHEL) will remove/delete their static routes when this happens...

thus effectively VM will never attempt to renew it's IP and thus will not be possible to fail to renew IP from the VR which has no knowledge of the issued lease

@andrijapanicsb Thanks for your explaination. 👍 I didn't have this sentence on my screen in particular.

@blueorangutan test

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-1119)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 33378 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3913-t1119-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 76 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_02_vpc_privategw_static_routes
Failure
175.64
test_privategw_acl.py

test_03_vpc_privategw_restart_vpc_cleanup
Failure
170.80
test_privategw_acl.py

test_04_rvpc_privategw_static_routes
Failure
227.79
test_privategw_acl.py

@weizhouapache @wido @GabrielBrascher @rhtyd @nvazquez and anybody else,...
I am going to merge this on no objections. It has quite an impact, so i'll leave it for a day for you all to have a chance to comment.

(I've tested also on Windows 2019 that it gets the renewal time of "-1", as opposed to proper numbers - so will have to assume it's OK for this fellow as well)
(Also tested CentOS 8, more for fun than for anything else)

I see @DaanHoogland has addressed his own review comment and travis is green. Tests LGTM.


Update BlitzGateway docs

Update to include examples of use as a context manager. See https://github.com/openmicroscopy/openmicroscopy/pull/5887

Generally looks good. There might be a few small cleanups that I would suggest, but not having a passing build at the moment (cF. first run) I'm a bit hesitant. I'll either get a build working tomorrow or move to local build for making suggestions.

Downloads/OMERO.doc-5.4.6-DEV/developers/Python.html#python-code-samples looks good. Merging and if further changes are wanted (e.g. bringing "You must close" up higher) then that can be done later. Thanks, @manics.


[release-4.16] OCPBUGS-25019: fix xplat compile for of-tools image; hide utest files from git; use rhel8 art builder image

Manual cherry-pick of https://github.com/openshift/operator-framework-olm/pull/793 to 4.16.

/jira refresh

/approve

ci/prow/e2e-gcp-olm timeouts again, unrelated to this PR.  Going to kick it a few times if necessary, like the 4.17 PR. :(
/retest

/retest

I think this is a flake:
I launched clusterbot and ran the test against it
set -lx KUBECONFIG /home/perdasilva/Downloads/cluster-bot-2024-06-25-112103.kubeconfig.txt                                                                                (base)
perdasilva@fedora ~/r/p/operator-framework-olm (jordanpr)> TEST="Subscription when unpacking bundle with bundle which OLM will fail to unpack*.should report only package and channel deprecation conditions when bundle is no longer deprecated" make e2e/olm                                                                                (base)
make e2e WHAT=operator-lifecycle-manager E2E_FLAKE_ATTEMPTS=0 E2E_CATALOG_NS=openshift-marketplace E2E_INSTALL_NS=openshift-operator-lifecycle-manager E2E_TEST_NS=openshift-operators E2E_TIMEOUT=120m KUBECTL=oc E2E_OPTS="-communityOperators=quay.io/olmtest/test-catalog:v1.39.0"
make[1]: Entering directory '/home/perdasilva/repos/perdasilva/operator-framework-olm'
scripts/e2e.sh
~/repos/perdasilva/operator-framework-olm/staging/operator-lifecycle-manager ~/repos/perdasilva/operator-framework-olm
Populating nested vendor directory
all modules verified
Running operator-lifecycle-manager e2e tests
make[2]: Entering directory '/home/perdasilva/repos/perdasilva/operator-framework-olm/staging/operator-lifecycle-manager'
GO111MODULE=on GOFLAGS="-mod=vendor -buildvcs=false" go run github.com/onsi/ginkgo/v2/ginkgo -timeout 120m -v -randomize-suites -race -trace --show-node-events --flake-attempts=0  -focus 'Subscription when unpacking bundle with bundle which OLM will fail to unpack*.should report only package and channel deprecation conditions when bundle is no longer deprecated'  ./test/e2e -- -namespace=openshift-operators -olmNamespace=openshift-operator-lifecycle-manager -catalogNamespace=openshift-marketplace -communityOperators=quay.io/olmtest/test-catalog:v1.39.0
Running Suite: End-to-end - /home/perdasilva/repos/perdasilva/operator-framework-olm/staging/operator-lifecycle-manager/test/e2e
================================================================================================================================
Random Seed:<PHONE_NUMBER>

Will run 1 of 206 specs
------------------------------
[BeforeSuite]
/home/perdasilva/repos/perdasilva/operator-framework-olm/staging/operator-lifecycle-manager/test/e2e/e2e_test.go:84
  > Enter [BeforeSuite] TOP-LEVEL @ 06/25/24 14:33:45.036
  < Exit [BeforeSuite] TOP-LEVEL @ 06/25/24 14:33:45.952 (916ms)
[BeforeSuite] PASSED [0.916 seconds]
------------------------------
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
------------------------------
Subscription when unpacking bundle with bundle which OLM will fail to unpack should report only package and channel deprecation conditions when bundle is no longer deprecated
/home/perdasilva/repos/perdasilva/operator-framework-olm/staging/operator-lifecycle-manager/test/e2e/subscription_e2e_test.go:2570

...

[AfterSuite]
/home/perdasilva/repos/perdasilva/operator-framework-olm/staging/operator-lifecycle-manager/test/e2e/e2e_test.go:130
  > Enter [AfterSuite] TOP-LEVEL @ 06/25/24 14:36:28.059
  < Exit [AfterSuite] TOP-LEVEL @ 06/25/24 14:36:28.059 (0s)
[AfterSuite] PASSED [0.000 seconds]
------------------------------

Ran 1 of 206 Specs in 163.023 seconds
SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 205 Skipped
PASS

/retest
We're addressing the timeout as https://github.com/openshift/operator-framework-olm/pull/800 but in the meantime gonna kick this one again.

/retest

/retest

/retest

/retest
sigh

/restest

/retest

/retest

/hold to pick up additional backports once we have completed ART onboarding in 4.17

/hold cancel
picked up the add'l commits to pass ART

/retest

/hold
ART has a new req, and I'd prefer to get 4.17 happy and hold this one to catch all the changes at once

/hold cancel
new updates from 4.17 merged

/retest

/retest

/lgtm
/label backport-risk-assessed


Fix pod name

Make the pod name match with the other pod names in the same section (e.g. command promt, kubectl delete, description etc.)

Thanks for the fix!
/lgtm

Thanks for the fix!
/lgtm

/lgtm
/approve

/lgtm
/approve


btrenbeath

04/02/2018 V1.6 Updated Door Status response parsing to be more resilient to changes in format from Garadget, and fixed bug resulting from latest Garadget response format change. -btrenbeath

Many thanks merged


Remove no-version-header flag from bsconfig.json

The output JS will update in your next PR. If rescript becomes more widely used, I would expect Vercel to add a feature that logs a warning if the generated javascript files are different from the copy cloned from github.

The output JS will update in your next PR. If rescript becomes more widely used, I would expect Vercel to add a feature that logs a warning if the generated javascript files are different from the copy cloned from github.


Req. Product Details - Screenshots Update with new Account explorer feature

Hello,
Tutorial Link: https://developers.sap.com/tutorials/cp-starter-isuite-onboard-subscribe.html
Step 1: Enter your trial account
Sub-step: 3, 4 & 5:
Issue: all these screenshots need to be updated from steps 3-5 after the latest UI changes. Also, the statements will also need to be rephrased in some places.
New screenshots:

Thanks,
Shubham
Labels to be added:
Sprint Label: SCPTest-2108A
Scenario Label: SCPTest-cloudin
Landscape Label: US10, EU10 & AP
Prio: Med-prio

Hi @i353590 - as discussed, the screenshots of sub steps 3 & 4 are right for a new user of BTP. The step 1 of the tutorial is currently  targeted at such new users. For existing users of BTP (which your screenshots match with), instructions are provided in the tutorial without images.
For sub step 5, I have updated the image as suggested. Will publish the changes soon.
Thanks,
Karuna

Hello @Karunaharan
Thanks for the fix. So the initial screenshots will continue to be as is.
Thanks,
Shubham