All pages and API endpoints (including non-existent ones) return 200

Component
server,
Describe the bug
In trying to setup server healthchecks I uncovered an issue related to the API endpoints in version "next".
To eliminate weird config errors, differences in environments, etc., I am going to show a repro performed from inside the server container.
Set up curl:
$ docker exec -it woodpecker-server sh
$ apk add --no-cache curl

Request a non-existent page:
$ curl http://localhost:8000/foo
<!DOCTYPE html>

    <meta charset="UTF-8" />
    <link rel="alternate icon" type="image/png" href="/favicons/favicon-light-default.png" id="favicon-png" />
    <link rel="icon" type="image/svg+xml" href="/favicons/favicon-light-default.svg" id="favicon-svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="theme-color" content="#65a30d" />
    <title>Woodpecker</title>

    <link rel="stylesheet" href="/assets/index-f123c06a.css">

That is basically an "empty" page. Let's look at the response code:
$ curl -I http://localhost:8000/foo
HTTP/1.1 200 OK
X-Woodpecker-Version: next-45319b24
# ...etc.

That should have returned 404.
Now let's request a non-existent API endpoint:
$ curl -I http://localhost:8000/api/bar
HTTP/1.1 200 OK
X-Woodpecker-Version: next-45319b24
# ...etc.

Same thing.
Now let's request a real API endpoint, for healthchecks:
$ curl http://localhost:8000/api/healthz
<!DOCTYPE html>

  # ...

$ curl -I http://localhost:8000/api/healthz
HTTP/1.1 200 OK
X-Woodpecker-Version: next-45319b24
# ...etc.

Same thing. Also, it should not return a page, only a REST response.
Clean up:
$ apk delete curl
$ exit

Summary:

both existent and non-existent endpoints and pages respond with 200
that means the /api/healthz endpoint is not working: it's a "proof of life" rather than "proof of health"
and the health endpoint should only return a json REST response, not a page

System Info
version next-45319b24-alpine
dockerised

Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Checked that the bug isn't fixed in the next version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]
[X] Check that this is a concrete bug. For Q&A join our Discord Chat Server or the Matrix room.

Maybe its coming from the sub-path changes #1783 #1714


Language syntax error: Passive grammer

This is a passive grammer. natural language syntax error!

@wuyuansushen : Thanks for your contribution! The author(s) have been notified to review your proposed change.

I can't tell from the context whether items are inputs (noun) or input (verb), so I'll let @ghogen review the PR. Thanks.

I think it is inputs (noun).....I am so sorry for my misunderstood. Close the merge.


Status 429: Too many requests

I'm getting error 429 when I try to login.
I've tried on a server with different IP and the same error occurs.
I also tried on a different account. Same error.
Could anyone explain the reason for the error?
Two days ago it was working without problems.
Here's the trace:
Status 429: Too many requests
Traceback (most recent call last):
  File "C:\Users\u0180947\AppData\Local\Programs\Python\Python38-32\lib\site-packages\instagrapi\mixins\private.py", line 298, in _send_private_request
    response.raise_for_status()
  File "C:\Users\u0180947\AppData\Local\Programs\Python\Python38-32\lib\site-packages\requests\models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url: https://i.instagram.com/api/v1/feed/reels_tray/

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "b:\Dev\VsCode\instagram-heroku-test\src\python\instagram.py", line 140, in <module>
    main()
  File "b:\Dev\VsCode\instagram-heroku-test\src\python\instagram.py", line 130, in main
    result = login()
  File "b:\Dev\VsCode\instagram-heroku-test\src\python\instagram.py", line 45, in login
    cl.login(IG_USERNAME, IG_PASSWORD)
  File "C:\Users\u0180947\AppData\Local\Programs\Python\Python38-32\lib\site-packages\instagrapi\mixins\auth.py", line 418, in login
    self.login_flow()
  File "C:\Users\u0180947\AppData\Local\Programs\Python\Python38-32\lib\site-packages\instagrapi\mixins\auth.py", line 167, in login_flow
    check_flow.append(self.get_reels_tray_feed("cold_start"))
  File "C:\Users\u0180947\AppData\Local\Programs\Python\Python38-32\lib\site-packages\instagrapi\mixins\auth.py", line 244, in get_reels_tray_feed
    return self.private_request("feed/reels_tray/", data)
  File "C:\Users\u0180947\AppData\Local\Programs\Python\Python38-32\lib\site-packages\instagrapi\mixins\private.py", line 447, in private_request
    raise e
  File "C:\Users\u0180947\AppData\Local\Programs\Python\Python38-32\lib\site-packages\instagrapi\mixins\private.py", line 434, in private_request
    self._send_private_request(endpoint, **kwargs)
  File "C:\Users\u0180947\AppData\Local\Programs\Python\Python38-32\lib\site-packages\instagrapi\mixins\private.py", line 365, in _send_private_request
    raise PleaseWaitFewMinutes(e, response=e.response, **last_json)
instagrapi.exceptions.PleaseWaitFewMinutes: Please wait a few minutes before you try again.

I have the same error. too many requests on login. my account was suspended on first try

That's it, my account was temporarily blocked on Saturday. I got it back, but with the consequence of having limited requisitions.
I stopped using the API and a short time later it started working properly again. Of course, it's not an API problem, but a control of Instagram itself.
Using the API is a risk on your own, as Instagram does not allow this type of automation.
For now I'm going to keep this feature disabled in my app and later I'm going to make a better control with longer intervals between one post and another.
If anyone has a better idea of how to escape instagram blocks and wants to contribute, feel free!
P.S.: I indicated that I had the same error with a different account, but I think I was wrong in that statement.
I just changed the value of the login variables, but as in the code I had the control with credentials.json, I believe the app accessed the same account as before.

I have same error. too So there is no way but just waiting some days until instagram release API access?

Reference in new iss

Yes, in my case it happened that way.
So I disabled the function until my instagram access goes back to normal (I tested this through the app) and later I enabled the function again.
The error did not happen again.


How to override Switch icon class when checked

[x] I have searched the issues of this repository and believe that this is not a duplicate.

I'm trying to differentiate the icon class style of a switch between checked and unchecked, but it doesn't seem to work
Steps to Reproduce (for bugs)

const styles = {
  icon: {
    borderWidth: 0,
    borderColor: b3,
    borderStyle: 'solid'
  },
  checked: {
    '& + $icon': {
      borderWidth: 1,
      borderColor: b4,
      borderStyle: 'solid'
    },
    '& > $icon': {
      borderWidth: 1,
      borderColor: b4,
      borderStyle: 'solid'
    }
  }

Context

Your Environment

Tech
Version

Material-UI
1.0.0-beta.27

React
16.2.0

The example seems broken now as red color shows up?

@maxio110 Yes, it's. You can find a demo in the documentation: https://material-ui.com/demos/selection-controls/#customized-switches. But you can also use the theme nesting.


Create Section.test.tsx

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

Project coverage is 99.18%. Comparing base (999f407) to head (97c3979).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #381      +/-   ##
==========================================
+ Coverage   93.08%   99.18%   +6.09%
==========================================
  Files          27       27
  Lines         246      246
  Branches       70       70
==========================================
+ Hits          229      244      +15
+ Misses         16        2      -14
+ Partials        1        0       -1

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


kenlearning.txt

We are from kenlearning.com , we are a charitable education institution , delivering IT education to deprived section of people in free of cost.
http://kenlearning.com/. Our team is
http://kenlearning.com/#team
JIdea license would help us a lot in teaching.

@papu12 I am sorry: regrettably, we do not grant free license to online universities. As far as I see, your educational institution is an online training center. We value the important role which you play in education, but unfortunately we can not add your email domain to this repository. I close this request without merging. Thank you for your understanding.

@papu12 Thank you for the details. It was not clear to me that you offer just offline courses. Could you please send me a URL or another proof to check that you actually offer courses which you conduct in a classroom, and the courses are long-term (> 1 year)? If they are short-term courses, you are eligible for another type of free JetBrains licenses, which you can request by email to<EMAIL_ADDRESS>Thank you for your work!

Hi Philipto,
Thanks for your kind reply. I am training students only in classroom , i have 12 students this year , all are free of cost. If you see the course details  ,
http://kenlearning.com/java.html
http://kenlearning.com/python.html...
All are classroom based training. Since ,the students are mostly from deprived sections , they come here mostly with zero knowledge and making them capable of doing java/ python etc takes more than 2 year efforts.
In case you are ok , i can show my classroom & students in skype video.
Thanks & best Regards
papu

Hi Phipto,
Thanks much for your precious time so far. Would really appreciate if you could please let me know your final decision. Since ,currently since the training are all free and meant for deprived section, i am not able to pay the license cost. But my students are good in document writing / logo design / video preparation,office jobs,website maintenance, customer support etc. By giving you some services , can we pay your license cost? Does that work for you. Thanks much for your kind cooperation so far.Best Regards Papu


Signed URLs containing empty querystring values will not validate

Laravel Version: 8.41.0
PHP Version: 7.4.16
Database Driver & Version: n/a

Description:
If a url contains querystring parameters with empty values, the generated signed url will not validate.
Steps To Reproduce:
<?php

// routes/web.php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\URL;

Route::get('/', function () {
    $url = URL::signedRoute('signature-required', [
        'param1',
        'param2' => '',
    ]);

    echo ''.e($url).'';
});

Route::get('/signature-required', function (Request $request) {
    if ($request->hasValidSignature()) {
        echo 'Valid';
    } else {
        echo 'Not Valid';
    }
})->name('signature-required');

This will generate a url that looks like this:
http://localhost:8000/signature-required?param2=&signature=6f4e4fe0dfa152bd0c2276a4180a3ec5259e42ae7ae6e14a2d19e1a2a9bb7b9c&param1
Not sure what possible use cases there are for empty string values, perhaps one just wants to check for the presence of a parameter? Of course, the workaround is to not use empty values. But since the signed url has been created, one would at least not expect that it wouldn't validate.

Could this perhaps be a security issue? This means that signed valid URL can be extended with empty query parameters and still be valid. For instance, both URLs below are treated as valid:
http://signedurltest.test/signed?a=b&c=d&signature=4064c3c575b1215a1e1272d82cb76ec9d99fa944c2f0902b8456ce97df863882
http://signedurltest.test/signed?a=b&c=d&signature=4064c3c575b1215a1e1272d82cb76ec9d99fa944c2f0902b8456ce97df863882&some&more&params
I think the problem (if it is a problem and not by design) is related to the usage of http_build_query which ignores null values.

I don't feel confident enough to make a PR, but here's a POC for an alternative implementation that passes all existing tests, including new ones to test for empty parameters as well as the possible security issue of being able to append additional key-only parameters.
https://github.com/Krisell/framework/pull/1/files

We're a bit confused here. Is the issue now that the url is not validated (as @jelib3an indicates) or that it is validated (as @Krisell indicates)?

@driesvints Sorry about the confusion. The issue is both.
Signing and verifications uses different methods to construct the URL. This causes the issue that @jelib3an described, that signed URLs are always invalid. It also causes the issue that a URL that is valid (since it did not contain key-only query string parameters) is still valid after tampering with the URL (by adding such parameters).

To be more specific, a url of https://app.test/2?order=asc&reverse would be treated as
https://app.test/2?order=asc&reverse by the signer
https://app.test/2?order=asc by the validator
Resulting in different signatures (and the fact that the validator ignores part of the data is a security issue).

@Krisell Thanks for investigating! Your patch works for ?param but not for the empty string case ?param=. Not sure if that's a case we want to support but it will require modifying code within signedRoute() as well... Regardless, your patch is already an improvement.
Also, just taking a step back and thinking about this issue as a whole, is this something that should be addressed by Symfony instead?

Signed URLs is not a Symfony feature.

If someone wants to PR a change in behavior for the empty parameter thing feel free.

Signed URLs is not a Symfony feature.

Sorry, I meant whether Symfony should make the differentiation within $request->query() since at the moment both "value-less" and empty string values come back as null.

@jelib3an Perhaps we can work out a solution together, feel free to contact me on my email (which you can find on GitHub).
I agree that it might be problematic that missing and empty values are indistinguishable in the request data, but we might be able to work around that by inspecting the raw URI?


SRS: Roles UC diagram

Create the usecase diagram for the roles subsystem.

Added roles to the user subsystem.


84: added support of 'preventsDisplaySleepDuringVideoPlayback' proper…

What does this PR do?
This PR adds support of preventsDisplaySleepDuringVideoPlayback property to allow device lock automatically when video is played.
Applied only for iOS 12.0+
What issues (if any) are related to this PR? Or why was this change introduced?
#84
Checklist

[x] Does this contain code changes?
[ ] Does this have tests?
[x] Does this have documentation?
[ ] Does this break the public API (Requires major version bump)?
[ ] Is this a new feature (Requires minor version bump)?

Hey @blbnv! Is this change ready to be merged?

hi @dingwilson sorry I missed to reply... yes this is ready. can you please merge this pull reuqest to your repo?


Update Dependences to RC1

Update Dependences to RC1

@renearias good job

merge this asap please!!!

you could clone my brach its is updated

sorry for late response. merging..


Feature/GRAIL-20095: provide python script to upload logs to dynatrace

Changes

Adjustment of upload_logs.py script to work
Add logging (Debug mode available with --debug or -d option)
Add requirements.txt for the script
Remove timezone option

Usage of the adjusted script
Prerequisites

API Token for Dynatrace Environment API v2 with following scope: logs.ingest

Syntax
usage: Dynatrace Log Uploader [-h] [-nt] [-d] environment_url access_token file_pattern root_directory

Uploads managed logs to a Dynatrace SaaS environment

positional arguments:
  environment_url       URL of the environment
  access_token          API access token to access the API. Required Scope: 'logs.ingest'
  file_pattern          Specify selection of log files (Unix path expansion rules)
  root_directory        Specify the root directory of the log files

options:
  -h, --help            show this help message and exit
  -nt, -rt, --no-traces, --remove-traces
                        Removes trace information from log lines before uploading
  -d, --debug           Enable debug logging

Example (without environment url and api token)
Ingests all log files that match the pattern feature*.log that are in the folder C:\workspaces\snippets\product\logging to the given environment url.
python .\uploads_logs.py <environment_url> <api_token> feature*.log C:\workspaces\snippets\product\logging

Runs into an error:
2024-12-17 18:11:16,942 - CRITICAL - An exception was raised while uploading
Traceback (most recent call last):
  File "C:\Dynatrace\snippets\product\logging\upload_logs.py", line 90, in main
    upload_logs(logging_settings)
  File "C:\Dynatrace\snippets\product\logging\upload_logs.py", line 154, in upload_logs
    Logger.debug(f"Splitting logs into {len(lists)} smaller partitions")
                                            ^^^^^
UnboundLocalError: cannot access local variable 'lists' where it is not associated with a value

Tbh, I don't think that we need this tool to be located in a public repository. Sorry Max. 🙂


Error when attempting to change DistanceRepresentation colorScheme through setParameters

I've managed to find out it's a one-character thing (if I'm right)
https://github.com/arose/ngl/blob/master/src/representation/distance-representation.js#L314
cylinderData.color = bondData.color1;
should be
cylinderData.color = bondData.color;
as the bondData object doesn't have the property color1, it's color

Thanks, good find. Fixed, see 8ad97223d07340096ad9d77c57b7ec0eda9d2b5e


[in_app_purchase] Remove the custom analysis options, fix failing lints.

The custom analysis_options was excluding the lint for documenting all public methods.
So this PR mostly adds Dartdocs, however there are a few non Dartdoc changes:

example/lib/main.dart: make MyApp and kAutoConsume private.
lib/src/in_app_purchase/app_store_connection.dart: adds a @visibleForTesting AppStoreConnection constructor.
lib/src/in_app_purchase/app_store_connection.dart: adds a @visibleForTesting AppStoreConnection.observer getter.

"Windows Plugins" was fixed and the re-run is green (the presubmit indicator is stale).


Vips compatibility

Active storage / the image processing gem allows to either use Imagemagick or Vips for transforming images. Rails 7 changes the default processor to Vips.
Vips is not 100% compatible with Imagemagick, so some usages need to be adapted. This gem uses resize: "300x300>", which, as far as I understood the examples, means:

Only shrink the image, do not enlarge (">" operator)
Keep the aspect ratio
Make the image fit into a box of 300x300 pixels - which means that the final size could be e.g. 200x300 pixels.

This should correspond to the resize_to_limit option, which has the same API for both Vips and ImageMagick. Note that the Array-Syntax [300, 300] is required for Vips (while "300x300" would still be possible for ImageMagick).

Perfect, thank you very much. Sorry for the wait.


Hypno plot errors

import pandas as pd
import yasa

hypno = pd.read_csv("yasa_example_night_young_hypno.csv")
yasa.plot_hypnogram(hypno)

AssertionError                            Traceback (most recent call last)
[<ipython-input-2-b11aab9cd069>](https://localhost:8080/#) in <cell line: 4>()
      2 hypno = pd.read_csv("yasa_example_night_young_hypno.csv")
      3 import yasa
----> 4 yasa.plot_hypnogram(hypno);

[/usr/local/lib/python3.10/dist-packages/yasa/plotting.py](https://localhost:8080/#) in plot_hypnogram(hyp, lw, highlight, fill_color, ax)
     68     from yasa.hypno import Hypnogram  # Avoiding circular import
     69
---> 70     assert isinstance(hyp, Hypnogram), "`hypno` must be YASA Hypnogram."
     71
     72     # Work with a copy of the Hypnogram to not alter the original

AssertionError: `hypno` must be YASA Hypnogram.

Hi @PhD-GOAT,
Thanks for reporting on this issue. I have just submitted a fix here, but I might wait for a few weeks before releasing a new version of YASA on PyPI. In the meantime, the following code should work:
import pandas as pd
import yasa

hypno = pd.read_csv("yasa_example_night_young_hypno.csv")
# Convert to the new Hypnogram format, assuming that the hypnogram is at 30-seconds resolution
hyp = yasa.Hypnogram(yasa.hypno_int_to_str(hypno), freq="30s")
yasa.plot_hypnogram(hyp)

Let me know if that worked for you,
Thanks,
Raphael


crypto needed for QUIC

H/t @ChristopherDavenport in Discord
Cypher Suites
TLS_AES_128_GCM_SHA256 - Mandatory
AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
Digital Signatures
rsa_pkcs1_sha256 (for certificates)
rsa_pss_rsae_sha256 (for CertificateVerify and certificates)
ecdsa_secp256r1_sha256
key exchange
secp256r1  (NIST P-256)  MUST
X25519

That would be something to be added to the branch on which pr 48 is https://github.com/typelevel/bobcats/pull/48


SecretsManager Resource ARN rendering

I am recreating my comments on PR #23 in an issue, to give the discussion better visibility and not mingle it with the rest of the PR.
Regex greedy matching
I am not sure if the regex has to have some global modifiers (but according to https://github.com/iann0036/iamlive/blob/c6e3ca4a7b757e08b904d0f69d6a4b0e5c1f9894/iamlivecore/logger.go#L438-L466 it does not seem that way), but then the regex would, as per default matching greedy (I think/guess also in go? Please correct me on this) in its capturing group 1, already capture the six-char suffix. Therefore, the non-capturing group (?:-[a-zA-Z0-9]{6})? won't have any impact, and the rendered result looks like this: arn:aws:secretsmanager:us-east-1:000000000000:secret:test-secret-c21292d6-zohQOF-??????. The name of this secret was test-secret-c21292d6.
I test the rendering of the regex with a python version, but it should behave the same, and I confirmed the regex with regex101: https://regex101.com/r/TNZWew/2
The general implications of using -?????? per default
At least for the iamlive case, it might be discussable if suggesting a policy with -?????? is the best way to go. I can't find the correct link right now, but I think the explanation for the suffix was that new secrets with an identical name cannot be accessed by people with the permission for the old one, basically.
Also, albeit less important for this project (and solvable with a little more engineering on our side), we currently depend on the resource being rendered correctly for LocalStack, as it will retrieve resource based policies based on this arn (again, this can be worked around, if necessary).
As a compromise for all these things above, and I haven't checked the concrete implementation within the dataset model yet, but we could try to append the -?????? only if the previous part does not have a suffix matching already. (it would make problems for the partial arns again, but as AWS states, it likely won't find it anyway in this case).
The main problem I see is, that SecretId could either be the complete ARN with suffix, only the name, or some partial arn (probably without suffix).
Originally posted by @dfangl in https://github.com/iann0036/iam-dataset/issues/23#issuecomment-1541862210

Updated again in https://github.com/iann0036/iam-dataset/pull/32

Fixed with #32 .


"Error at Exit" but Powershell does not recognize it

Hello!
I'm using the G-CLI for quite a while now but ran into a very strange behaviour recently. The G-CLI is executing a VI that is building a JKI VI Package from a given path - so far so good. If the build process fails for some reason the "Exit with Error Cluster Code.vi" will be executed to send an error code and message to the shell.
That's how it looks for example:
g-cli --kill "D:\Git\labview-vip-build-tool\builds\vip-tool.exe" -- -b "D:\Git\labview-ci-test"
Initializing... OK
Checking options... OK
Starting VI Package Manager... OK
VI Package version:
 Major:  1
 Minor:  0
 Patch:  0
 Build:  2
Building new package... Failed
==============
Error At Exit:
Error 10 occurred at VIPM API_vipm_api.lvlib:Parse Build Return Message_vipm_api.vi

Possible reason(s):

Code:: 10
Source:: (File "Template_Test-<IP_ADDRESS>.vip" already exists in build output location.) VIPB_API.BuildAndPackageLibraryFromSpec[Private].vi in 86D72997FD6FA35DD1401980F6C39771->VIPB_API.BuildAndPackageLibrary.vi->VIPM API.lvlib:3CEA7EB901EC1431E52BD006417DDFEC->39551004F33E203195E8B68DA13C6E55->VIPM Main Window.vi
==============

For some reason I can't find a way to catch the error in Powershell 7 (same for 5.1). I embedded the command in a try-catch statement but it doesn't work at all so the error variable $_ is empty. Processing the $Error variable which should catch stderr from a script or application doesn't work either (it's just empty). So right now even if the G-CLI is producing an error the script just keeps running which is a big problem cause the CI tells me everything is fine for this step - which quite obviously is not.
I'm quite new to Powershell and all the CI stuff so I might miss something obvious but right now I can't find a way to catch the error and exit the script.
#73 seems like the same problem
Update:
Set $ErrorActionPreference to "Stop" which should handle non terminating errors as terminating errors and enables you to use a try-catch block is not working either.

Hi @McGeifer,
So I just had a play with this - I must confess I'm not super experienced with powershell.
In short G CLI in that case will set the exit code to be non zero but it doesn't write out to stderr, still stdout.
For now you should be able to get the exit code with $LastExitCode and use that to detect success.
I do think this should really have the option to output to StdErr though and I'll make a specific feature request for that.

First of all, thanks for the quick reply. It's amazing that I spent two whole days trying to find a way to detect an error during execution and didn't even come across $LASTEXITCODE 🤷. All the manuals I found only dealt with the try-catch statement or used $_ / $Error. So thank you for pointing out that there is yet another variable for error information 😁.
$LASTEXITCODE works perfectly fine for my purposes so there is not really a need for any changes maybe a little hint in the documentation for the G-CLI is enought.

I've added a few notes on this in https://github.com/JamesMc86/G-CLI/wiki/Getting-Started-With-G-CLI
I've added StdErr now but my testing doesn't show any change in behaviour in powershell


Settings sync - display error message when expanding nodes in the Synched data panel

Testing #98962
When disconnecting from the network, then I try to expand any of the nodes in the Synched data panel nothing is happening. We should improve our error handling so that an error is being displayed when trying to expand the nodes. We might also want to cache some of that information locally so that we do not always call the service to get it.

Accepting this request for handling errors, but for caching - I see how it is helpful but since this feature (synced data views) is not a prominent feature and not much worth the value to provide this.


Retire admin-ui deployment

Admin UI is no longer really functional and the upstream is unmaintained, so we're going to remove it as technical debt in our system
Acceptance Criteria

admin-ui BOSH deployment is deleted
admin-ui artifacts and references in other repos are cleaned up

Security considerations
None
Implementation sketch
~- [x] Update admin-ui deployment manifest to use Jammy: https://github.com/cloud-gov/cg-deploy-admin-ui/blob/master/bosh/manifest.yml#L18-L21~
~- [x] Update admin-ui pipeline to reference Jammy stemcells: https://github.com/cloud-gov/cg-deploy-admin-ui/blob/master/ci/pipeline.yml~
~- [ ] Redeploy admin-ui: https://ci.fr.cloud.gov/teams/main/pipelines/deploy-admin-ui~
~- [ ] Confirm whether admin-ui is working. If it is not working, you may need to debug using the logs in the BOSH deployment VMs~

[x] Delete the admin UI deployment pipeline: https://ci.fr.cloud.gov/teams/main/pipelines/deploy-admin-ui
[x] Delete the admin UI deployments

[x] staging
[x] prod

[x] Remove admin-ui BOSH release from https://github.com/cloud-gov/cg-deploy-bosh/blob/74ec0eec54f50086fa2e6b07b0e3f5f68e98d20c/releases/releases.yml#L33-L35

[x] Run script to re-generate BOSH releases pipeline: https://github.com/cloud-gov/cg-deploy-bosh/blob/74ec0eec54f50086fa2e6b07b0e3f5f68e98d20c/releases/generate.sh

[x] Remove Admin UI client secret: https://github.com/cloud-gov/cg-deploy-cf/blob/d2e0c5e3bcc4db5673424d7ea3a3f218e557aa85/bosh/opsfiles/use-master-bosh-ca.yml#L289-L292
[x] Remove Admin UI UAA client: https://github.com/cloud-gov/cg-deploy-cf/blob/d2e0c5e3bcc4db5673424d7ea3a3f218e557aa85/bosh/opsfiles/clients.yml#L53
[x] Remove Admin UI from system components list: https://github.com/cloud-gov/internal-docs/blob/e69ff4256bb28ab4b347a83c83b50d2c9181215c/docs/systems/system-components.md?plain=1#L3
[x] Remove Admin UI reference: https://github.com/cloud-gov/cg-site/blob/a72c903f669b22c9c00ed4cd519220b46810fd16/_docs/ops/repos.md?plain=1#L69
[x] Remove TErraform code provisioning DNS records for Admin UI: https://github.com/cloud-gov/cg-provision/blob/8ac62e8e219c56cc0d9b63ec368d23521a67dede/terraform/modules/environment_dns/dns.tf#L60-L82
[x] Mark repos as archived

[x] https://github.com/cloud-gov/admin-ui-boshrelease
[x] https://github.com/cloud-gov/cg-deploy-admin-ui

[x] Remove reference: https://github.com/cloud-gov/cg-deploy-cf/blob/d2e0c5e3bcc4db5673424d7ea3a3f218e557aa85/cf-secrets-example.external.yml#L62-L63
[x] Delete reference: https://github.com/cloud-gov/internal-docs/blob/e69ff4256bb28ab4b347a83c83b50d2c9181215c/docs/runbooks/Concourse/index.md?plain=1#L84
[x] Delete https://github.com/cloud-gov/cg-deploy-bosh/blob/74ec0eec54f50086fa2e6b07b0e3f5f68e98d20c/cloud-config/main.yml#L46-L50

Robert - admin.for is still here:
https://github.com/cloud-gov/product/blob/main/cloud.gov-conmon-internal.context#L7
and probably in ConMon tickets.
Can you please search our GH org for "admin.fr" and track down other
occurrences?
Thanks,
Peter
On Wed, Mar 29, 2023 at 4:16 PM Robert Gottlieb @.***>
wrote:

Closed #2439 https://github.com/cloud-gov/product/issues/2439 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/cloud-gov/product/issues/2439#event-8880416628, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJHWCSARCIP4JCJZ2TCUQTW6SKBXANCNFSM6AAAAAAU5B6O2I
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Peter Burkholder |  *
cloud.gov https://cloud.gov ISSO, compliance & security lead
please use @.** for cloud.gov matters
202-709-2028 <(202)%20209-2028> | @.**
@.***> *
| pronouns he-him https://www.mypronouns.org/he-him
Free/Busy Calendar
@.*>


Intelligent whitespace interleaving (WIP)

Intelligent Whitespace interleaving
What does this mean?
Whitespace inserted by the user will be tracked and preserved by refmt in certain places.
Amount of newlines interleaved (or lack thereof) is now deducted from whitespace
interleaved in the source instead of hard coded defaults in the printer.
More than one newline will be collapsed into one newline.
Example:
open Multicore;
open React; /* no newline above */

/* newline above */
let add = (a, b) => {
  let a = 1;

  let b = 1; /* the newline above this let binding is preserved */
  a + b;
};

/* another comment */
/* attach this comment to the above comment */

/* but here we want a newline above */

Where is whitespace inserted by the user preserved?

structure items (both top-level in a .re file & inside module X = { ... })
signature items (both top-level in a .rei file & inside module type Y = { ... })
inside let-bindings

How does it work?
Preserving whitespace can be split into two parts:

Computation of inserted whitespace (whitespace isn't part of the AST)
Formatting of the computed whitespace into the layout tree (without disrupting comment insertion)

Computation of whitespace
The Ocaml-AST doesn't contain whitespace. This isn't a problem, since whitespace
between two items can easily be computed based on the location diff between two items.
Imagine the following source code:
1| let a = 1;
2|
3| let b = 2;

We can easily determine if there's whitespace between let a and let b,
by substracting the linenumber of the start of let b by the linenumber of the end
of let a. If the diff is equal to or greater than 1, we know that there's whitespace.
let whitespace = loc2.loc_start.pos_lnum - loc1.loc_end.pos_lnum >= 1

In practise the computation is a little bit more complex because of comments.
1| let a = 1;
2| /* comment on line 2 */
3| let b = 1;

Here the location diff indicates whitespace, but the comment fills up the space between
the two items. The correct diff is:
let whitespace = loc2.loc_start.pos_lnum - loc1.loc_end.pos_lnum - height_of_comments_between >= 1

Formatting computed whitespace (without disrupting comment insertion)
Once we know we need to interleave whitespace between two items, we can't just
print an atom "\n" node. This would clash with the comment interleaving
algorithm. Without inspecting every atom for possible \n text, we would get
the following scenario
before refmt        after refmt
------------       ------------
let a = 1;      |  let a = 1;
                |  /* comment */ --> attached above `let b = 2;`
/* comment */   |               --> atom "\n", was formatted before
let b = 2;      |  let b = 2;

To circumvent this problem, whitespace needs to be interleaved after all
comments have been inserted into the layout.
In order to postpone the insertion of whitespace to the last moment,
the following layout made its way into existence:
  type layout =
      ...
    | Whitespace of WhitespaceRegion.t * t

Whitespace is a specific type of layout. It conveys an
"intent to interleave whitespace". It decorates a layout with information
for whitespace insertion above that node.
WhitespaceRegion.t contains specific info
about the region where whitespace should be interleaved.
The info is used for correct comment interleaving inside of the region
designated for whitespace.
Perfomance implications
To compute if a range in the source code contains whitespace,
we need the comments for that range. Every time the whitespace computation
happens, we need to traverse all comments to find the comments that overlap.
The traversal of comments can be improved by storing the comments inside a
interval-(Red/Black or AVL)tree for cheaper lookup.
As a benchmark reference: there's a slowdown of around 50ms with this diff,
on a 10000 line file. Reason_pprint_ast.ml (formatted in Reason) was taken
as reference point on a MacBook Pro 2015 i5.
The comment interleaving algorithm in general is very slow, for every comment
we create a create/travers the/a whole new tree.
There is definitely room for improvement here. The performance will be adressed
in a separate PR.

This is awesome! Are you considering doing the break-if-over-multiple-lines thing you mentioned here in the future as well? I remember thinking that was a great idea.

@Schmavery Hey, sorry for the late response. Managed to implement the "intelligent" whitespace interleaving inside modules, i.e. more than one newline between "items" will collapse into one newline that will be preserved. Since whitespace is a tool for us programmers to organise our code, I don't think we should let an algorithm/heuristic interfere with our human newlines atm. That might change in the future, but I think it's the best way forward atm. I like to error on the side of not producing ugly formatted code at this stage 😄

@chenglou  @jordwalke  ready for review

Tada!


homepage - list events not campaigns on home page [JT]

with info on organizer and campaign as part of event info

@tonysurma - Do we need to include the concept of featured event(s)? Or should any event from the featured campaign be at the top and possibly highlighted?

picking up


Linux: remove unneeded virtualization root setup from API

We expect any Linux implementation to virtualize using a dedicated mounted filesystem, so we do not need to flag directories within the global file hierarchy as being virtualized.  Therefore we can remove the ConvertDirectoryToVirtualizationRoot() function from the Linux API, and just return true from any caller (e.g., in MirrorProvider).
We can also remove the pair of associated error code which pertain to the setup of a virtualization root.

Hi @jrbriggs -- I can't see any reason why these Linux-specific edits would affect the functional tests, so I think the failing check is due to an infrastructure timeout of some kind while the Windows VFS4Git installer is running.  (The Azure logs just say "GVFS-github-1 lost communication with the server. Verify the machine is running and has a healthy network connection.")
Is there any way to dig a little further, or rerun that check?  Or is it possible that there's a recent change to the installer and/or pipeline setup such that we would need to rebase the features/linuxprototype branch against master again?  Any thoughts or advice appreciated!  Thanks very much,
Chris.

Is there any way to […] rerun that check?

I've just re-queued it for you. If you follow the 'details' link, then make sure you're signed into Azure dev, there's a "Rebuild" option under the "…" menu in the top-right corner.
I don't have any insight into the Windows CI side of things beyond that, so I can't answer any of your other questions.

Thanks, @pmj -- the key takeaway for me there was that I need to be logged into Azure dev, which of course makes sense!

I think this is OK now, @jrbriggs -- thanks for the careful review!


fix(GUI): ensure settings are loaded before bootstrapping application

We load localStorage settings into the Redux store in an asynchronous
way. This means that user settings might not be loaded by the time the
application starts, resulting in Mixpanel sending a few tracking events
before Etcher realises that the user opted out from anonoymous analytics
and error reporting.
In order to fix that, we remove ng-app and we manually bootstrap the
Angular.js application after the local settings are loaded.
Change-Type: patch
Changelog-Entry: Don't send initial Mixpanel events before "Anonymous Tracking" settings are loaded.
Fixes: https://github.com/resin-io/etcher/issues/1772
Signed-off-by: Juan Cruz Viotti<EMAIL_ADDRESS>

This partially fixes #1772 - #1902 was the other half of the fix.


Provide better support for configuration updates

When you the configMapName in the spec of a CassandraCluster, the following key things happen (assume a single DC and single rack):

The StatefulSet is scaled down
The configMap volume is updated
The StatefulSet is scaled back up

If you are using the default Cassandra image, cassandra-image, then cassandra.yaml and jvm.options get dynamically updated when the Cassandra container is created and started. For example, the seeds  are computed and set.
This behavior is really nice, but it is baked into cassandra-image. If you decide to use a different Cassandra image, then you are on your own to an extent for applying config updates. In fact, I am not quite sure if/how it would work because CassandraCluster.spec.configMapName references a global ConfigMap that is shared across all C* nodes. If you are not using cassandra-image or another image that does something similar, I am not sure how you would handle setting node-specific properties like listen_address.
I think it would be great if managing C* configuration was built more directly into the operator. I also think however that it makes sense to make that configuration management optional in the event that the container handles more of the configuration management like with cassandra-image.
The operator should provide sane defaults for config settings which is not always the case with the Cassandra default settings. num_tokens is a good example where it would be nice to see the operator provide a different, better default instead of 256 (which hopefully changes in C* 4.0).
Users should be able to override config settings in the CassandraCluster spec for specific keys without having to specify an entire configuration. For example, maybe I just want to disable auto snapshots or override the default JVM heap settings.
Because cassandra.yaml is a mix of node-specific and global settings, I think that it might make sense to generate a separate ConfigMap per node. This would make it possible and easier to perform config updates on only a subset of nodes.
I started thinking about this while working on #36 and I wanted to make sure I write down and share my thoughts before I forget about them :)

Hi @jsanda,
You are right, it would be great if the Operator can adapt to any Cassandra image, which was not the approach we used in the first time, but I see that guys from sky-uk did that into their operator it could be useful to see how they done it.
Meanwhile we used to have the ConfigMap surcharge the whole /etc/cassandra/* files in the first, I added a new way to change some parameters either on the whole cluster or only in for certain dedicated pods. This is done using a script in the ConfigMap: pre_run.sh script which will be called by the /run.sh when the Cassandra Image boot.
you can uses it for example to make a replace address for an dead node 👍
  pre_run.sh: |-
    test "$(hostname)" == 'cassandra-demo-dc2-rack1-0' && echo "-Dcassandra.replace_address_first_boot=<pod_ip>" >    /etc/cassandra/jvm.options

But you can either uses it to set any parameter you want in any file.

There are also some parameters that can be deployed specified differently in racks for instance the NumTokens you spoke about:
        topology:
          dc:
            - name: dc1
              nodesPerRacks: 1
              numTokens: 256
              rack:
                - name: rack1
                - name: rack2

@jsanda If we want to be able to worj with any cassandra image, I thing we need to move the custom part of our current cassandra-image in a init-container. wdyt ?

I thing we need to move the custom part of our current cassandra-image in a init-container. wdyt ?

Are you suggesting this so that the config changes could then be applied to other images? It is an improvement but only solves part of the problem.
I think there should be a ConfigMap per Cassandra pod. There could be circumstances in which you want to apply config change to only a subset of C* nodes, possibly even one. For example maybe there is a data imbalance with a set of replicas having some really big partitions which are causing long GC pauses. We might want adjust heap settings only for those nodes until the problem is properly addressed.

for your last point, it can already be done today with the pre_run.sh script from the ConfigMap. Please take a look at https://orange-opensource.github.io/cassandra-k8s-operator/slides/index.html?slides=Slides-CassKop-demo.md#28
The idea of the init-container, would just to be able to inject our custom run.sh compliant with CassKop to any cassandra image

@jsanda I really don't agree with having one ConfigMap per pod... We can already apply changes to part of the nodes and we can easily update the way we apply changes to make it simpler to apply to one or a group of nodes (like we do in the topology). The goal is to have one configuration file that we can check to see the current configuration. You're right, we could want to test one image with an update of the jvm or a change in the configuration file, but that could be easily done in the current crd we have with some minor changes
@allamand your trick is useful when we have configuration parameters to change on one node but could be complex if we have a group or want to use a regex for instance, or with a cassandra image change (on one node only to test a patch for instance)

for your last point, it can already be done today with the pre_run.sh script from the ConfigMap. Please take a look at https://orange-opensource.github.io/cassandra-k8s-operator/slides/index.html?slides=Slides-CassKop-demo.md#28

@allamand thanks for the reference. That is neat way to update specific pods :) Can you explain echo "update param" part?

The goal is to have one configuration file that we can check to see the current configuration. You're right, we could want to test one image with an update of the jvm or a change in the configuration file, but that could be easily done in the current crd we have with some minor changes

@cscetbon thanks for the explanation! Albeit different from what I had envisioned, there is already a way for handling cluster-wide and per-node config updates.
I appreciate all the feedback. It helps give me a better context when studying the code.

Can you explain echo "update param" part?
This is just an example, the script just log what we want and this goes on the standard output of the Cassandra Pod

To summarize:

for any configuration changes, we can uses the pre_run.sh script to update all or just one Cassandra node.
When applying a new DockerImage, we can play with the rollingUpdatePartition of each statefulset in order to makes the change to only 1 or more Cassandra nodes. BUT doing this will put the operator in a "wait for operation to finish" which can be achieved only if all rollingPartitions are set to 0 (all pods) for each racks). But in order to test a new DockerImage to only a subset of nodes it seams to be the right way.

I appreciate all the feedback. It helps give me a better context when studying the code.

@jsanda no problem. Happy to help !

@jsanda can we close this one ?

Yes, it can be closed.
On Tue, Oct 8, 2019 at 3:54 AM Sébastien Allamand<EMAIL_ADDRESS>wrote:

@jsanda https://github.com/jsanda can we close this one ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Orange-OpenSource/cassandra-k8s-operator/issues/38?email_source=notifications&email_token=AABJBOLVF2KMT3YNZPLQP2LQNQ4EBA5CNFSM4H5BVA6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEATIK5I#issuecomment-539395445,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABJBOKXJZ6JXXZKG6KTSCLQNQ4EBANCNFSM4H5BVA6A
.

--

John


Add a script to dump flows from OVS conveniently

Signed-off-by: Hongliang Liu<EMAIL_ADDRESS>

Codecov Report

Merging #3663 (7b5a689) into main (4a3b76c) will decrease coverage by 20.85%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #3663       +/-   ##
===========================================
- Coverage   64.67%   43.82%   -20.86%
===========================================
  Files         278      210       -68
  Lines       39363    35650     -3713
===========================================
- Hits        25459    15623     -9836
- Misses      11935    18893     +6958
+ Partials     1969     1134      -835

Flag
Coverage Δ

kind-e2e-tests
?

unit-tests
43.82% <ø> (-0.05%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/ovs/openflow/default.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/util/runtime/runtime.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/agent/openflow/groups.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/ovs/openflow/ofctrl_pipeline.go
0.00% <0.00%> (-95.84%)
:arrow_down:

pkg/agent/nodeportlocal/k8s/annotations.go
0.00% <0.00%> (-93.34%)
:arrow_down:

pkg/ovs/openflow/logs.go
10.34% <0.00%> (-89.66%)
:arrow_down:

pkg/agent/controller/networkpolicy/reject.go
0.00% <0.00%> (-85.89%)
:arrow_down:

pkg/apis/controlplane/register.go
0.00% <0.00%> (-83.34%)
:arrow_down:

pkg/agent/client.go
0.00% <0.00%> (-76.75%)
:arrow_down:

pkg/flowaggregator/certificate.go
0.00% <0.00%> (-75.53%)
:arrow_down:

... and 195 more

I am not sure why we don't invest in improving antctl support for dumping flows instead? @jianjuns what do you think?

Yes, I was thinking about why not do that with antctl too. But I guess that requires more work. And if we can dump OVS flows on a given Agent/Node, then why not just implement a way to run any agent command from remote.
Another thinking is even we want to build a script, should we make the script generic to run any antctl agent command on a remote Node?

OK, I'll try to implement this in antctl.


Update init.py

fixed wrong url

Coverage remained the same at 94.262% when pulling 49ae79c4998038bf70dce057289872699bdd105a on bashu:patch-1 into bcf6ffd0ed44859e34995ff67d9f2342df3aefed on ZuluPro:master.

Hey @bashu,
Thank for this contribution.
Did you use the project ? Could you make a feedback about ?


File Dialog appears behind other windows

When I call the open_file_dialog(...) function, the dialog appears, but it is behind all the other windows and I have to click on the icon in my taskbar to get it to come to the front.
Is there a way to force the dialog to the front when it is created, or some kind of workaround with other python code either before or after the call?

Hi, thanks for using the module!
I can't replicate this issue locally. For me, the window always opens on top of other windows (Windows 11, Python 3.10). Can you tell me more about your setup?

Closing this issue due to inactivity.

Sorry, I didn't see the notification about your response. I'm on Windows 10. I've switched to a different method of file dialog. Love the project, though.


error reading JSON file

Hi,
You modified the JSON file task_editor.json by hand, and made an invalid JSON file. I fixed it for you in the repository.
(This is not a task-editor issue.)

Thanks, Michel! Could you explain what I did to make the JSON file invalid? Is it impossible to use escaped quotation marks in the title?
On Dec 2, 2019, at 10:51 AM, mblockelet <notifications<EMAIL_ADDRESS>wrote:
Hi,
You modified the JSON file task_editor.json by hand, and made an invalid JSON file. I fixed it for you in the repository.
(This is not a task-editor issue.)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FFrance-ioi%2Ftask-editor%2Fissues%2F20%3Femail_source%3Dnotifications%26email_token%3DAH7YEUIMTIJ4MFZIT6S7Y3DQWUVGVA5CNFSM4JTXZRE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFT53EY%23issuecomment-560455059&data=02|01|Petra.Bonfert-Taylor%40dartmouth.edu|32d8c82a4ba94b41ec1b08d7773f71ca|995b093648d640e5a31ebf689ec9446f|0|0|637108986710557204&sdata=xun8R2kx5DgHFS2GXYL9vtblrMBLegTDN4dx%2F3PGLOo%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAH7YEUO5ZQ6NXF5UEYJXJLTQWUVGVANCNFSM4JTXZREQ&data=02|01|Petra.Bonfert-Taylor%40dartmouth.edu|32d8c82a4ba94b41ec1b08d7773f71ca|995b093648d640e5a31ebf689ec9446f|0|0|637108986710557204&sdata=b2n%2Fmao0ZwMtc4vJqU9Qa%2FX6tlzc4gFNnPeVjve6F5Y%3D&reserved=0.

You can use escaped quotation marks without problem, but here, you had put too many quotations : "title": "Modify output of \"Hello World\""" with three quotes at the end, which was one too many quotes. I fixed it simply by changing to "title": "Modify output of \"Hello World\"", and now it is valid JSON!


Fix/platformer collision

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Bug fix

What is the current behavior? (You can also link to an open issue here)
Jumping while pressing left into a wall would not let you jump
Ladders would work almost 2 tiles off to the right side of the ladder, but not at all left.
Jumping into the ceiling would snap the player down 1 tile more than expected.

What is the new behavior (if this is a feature change)?

[x] Jumping while walking left in a wall now works the same as right.
[x] Ladder collision now work 1/2 a tile to the left, (compromise between centered which was 1 tile each side but looked bad) This works great if your ladder collision is only on the left side of a 2 tile wide ladder. This still seems preferable over the original implementation.
[x] Ladder collision is detected and used from the same coordinates, making it more reliable.
[x] Jumping into the ceiling won't snap you down 1 extra tile
[x] Jumping into the ceiling while running is smooth by checking the tile 1 pixel lower for left right collision tests.

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Users with an Ejected Engine must re eject, ladder solution inelegant, but better than before.

Other information:
This does not fix Actor interactions being more difficult from the left, related to platformer using 1 tile center, and other modes using 2 tile center for actor facing.

Attached gifs, if the bg ladder is 2 tiles wide, and ladder collision 1 tile wide, left aligned, looks great, still a bit inelegant.

This is all much better, thanks @RichardULZ
I'm wondering if could maybe just detect the two ladder tiles next to each other during compile and ignore the right handside ones now 🤔

I probably wouldn't, removes / obscures some control from the editor.
I may take another crack at it some time, perhaps we should be checking 2 tiles for ladders and subtracting somehow. If someone made a tiny ladder, it would appear a little odd.
But more pressing is Actor Interact being far out in a direction, i think we need a seperate actor infront of player test, as it has a large offset for actors being 2 tiles wide.


Chrome Web Store extensions are not working (Installing) on Opera with the extension "Download Chrome Extension"

Hello Github Team
To two previous versions of Opera I use the extension "Download Chrome Extension". With it I can download extensions from the chrome web store, however, it is giving error and the browser closes and does not install any extension of the store "chrome web store". I have completely removed the browser and deleted all the folders and even then the following error message appears, as below.
Download Chrome Extension
Unable to download the package from the network error.
Check you internet connection and try again.

Obs. Information for the FIM that my connection is normal.
Linux version I am using:
Version: 48.0.2685.35 - Opera is updated
Refresh stream: Stable
System: Ubuntu 16.04.3 LTS (x86_64; Unity)
If you can help me in this matter I am grateful!
Edson Santos

I have this same issue!

me too the same

Yes. and I have it on Debian. Please, fix.

@serial02 @guest73 @mansynet @Gunabalan13 The issue should be addressed with the latest PR request. Could anyone help testing the fix and verify it by running master in developer mode? If it works, we'll release new version in Opera Extensions.

Hello Team Download Chrome Extension
With this new version 2.4.1 the extension was re-operated, showing only
a small message according to the attached image.
I put the option to collect errors for future scans.
I thank you for your attention
Serial02

Olá Equipe Download Chrome Extension
Com esta nova versão 2.4.1 voltou a funcionar a  extensão aparecendo
apenas uma pequena mensagem conforme imagem em anexo.
Coloquei a opção coletar erros para futuras verificações.
Desde já agradeço pela atenção
Serial02
Em 28/11/2017 11:15, Alexander Suevalov escreveu:

@serial02 https://github.com/serial02 @guest73
https://github.com/guest73 @mansynet https://github.com/mansynet
@Gunabalan13 https://github.com/gunabalan13 The issue should be
addressed with the latest PR request. Could anyone help testing the
fix and verify it by running |master| in developer mode? If it works,
we'll release new version in Opera Extensions.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/operasoftware/chrome-webstore-extension/issues/5#issuecomment-347520087,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AfHE3ndcO4BkHf-7I9ppppzvjBQd_ROkks5s7AeIgaJpZM4Px3hO.

Crashing on Linux is fixed and published as 2.4.1 https://addons.opera.com/en-gb/extensions/details/download-chrome-extension-9/


Added Screenshot path to output values

Regarding ticket 16174

Please change target branch to 'master' from 'Releases/Beta'


Replace objc with objc2?

Hey, macOS maintainer of winit here. I've been working on a replacement for objc called objc2, and I think it could be interesting for this crate?
Some of the concrete improvements you'd reap benefit from, mainly in the category "improving correctness":

Helper macro msg_send_id! for following cocoa's memory management rules - as a quick example, NSString::new currently leaks because it uses Id::from_ptr instead of Id::from_retained_ptr.
Implementing Encode is now required for all types that go across msg_send! - this is great for catching bugs, for example this code in ListView::select_row_indexes is wrong, the type of index is &usize while it should be usize.
Soundness fixes concerning message sending, autoreleasepools and reference counting.

I have an implementation of Foundation that you may be interested in using, at the very least it can be useful as an example of how to use objc2 well.
See also my PR to the core-foundation-rs project.
Opening this issue to start the discussion, am a bit tired so sorry it's not more detailed. I would really like to work towards a completely safe interface over (the most commonly used parts of) Cocoa, but wanted to keep it out of the scope of objc2 itself - cacao seems like a nice work in that direction, would like to help out in this effort (other than just working on objc2).

100% on board, don’t even need to ask me twice. :)
I’ve been meaning to return to this and release 0.3 from the new branch anyway, so I could tie this into that.
Thanks for trying to make this stuff better! I’d thought about trying something similar about a year ago but couldn’t justify it in my list of things to do. :(
On Sat, Jun 25, 2022 at 15:57, Mads Marquart @.***> wrote:

Hey, macOS maintainer of winit here. I've been working on a replacement for objc called objc2, and I think it could be interesting for this crate?
Some of the concrete improvements you'd reap benefit from, mainly in the category "improving correctness":

Helper macro msg_send_id! for following cocoa's memory management rules - as a quick example, NSString::new currently leaks because it uses Id::from_ptr instead of Id::from_retained_ptr.
Implementing Encode is now required for all types that go across msg_send! - this is great for catching bugs, for example this code in ListView::select_row_indexes is wrong, the type of index is &usize while it should be usize.
Soundness fixes concerning message sending, autoreleasepools and reference counting.

I have an implementation of Foundation that you may be interested in using, at the very least it can be useful as an example of how to use objc2 well.
See also my PR to the core-foundation-rs project.
Opening this issue to start the discussion, am a bit tired so sorry it's not more detailed. I would really like to work towards a completely safe interface over (the most commonly used parts of) Cocoa, but wanted to keep it out of the scope of objc2 itself - cacao seems like a nice work in that direction, would like to help out in this effort (other than just working on objc2).
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Yeah well, I thought about it a year ago, and it took me a year... Anyhow, wonderful that you're on board! I might whip up a PR at some point, focusing on the soundness stuff at first, should I target the airyx-appkit-uikit-features branch when I get there?
Also, in objc2_foundation I went with exposing Id<NSString> and allowing direct control with impl Message for NSString, compared to NSString(Id<Object>) which allows access through objc fields, curious to know what you think about the two different approaches?

If you get to it before I cut a 0.3, then yeah, airyx-appkit-uikit-features should be the one. It has a few bug fixes as it is so it's overdue to be merged. The issue is, as always, time. :(
Re: the format... I actually think impl Message for _ is potentially cleaner and is probably what I should do for the components in cacao for anyone who wants to just message the lower level component directly. My thought process for having the .objc escape hatch was that it made it really clear when you were in Rust vs ObjC territory, but in practice this is probably not a big problem... most who'd bother with this probably have a decent idea, and/or the Message barrier implies it anyway.

Just to update - I haven't forgotten about these issues/PRs! Been incredibly busy the past week and a half, hoping to get to them soon.

I know how it is, don't stress, I don't mind if it takes a few months!

Just a heads up: I'm working on automatically generating bindings to all of AppKit and UIKit in https://github.com/madsmtm/objc2/pull/264, which, combined with a few tricks to slowly carve out a safe subset (removing unsafe from a function is a semver-stable change), should make it possible to make cacao a lot simpler and safer.
In effect, you'll basically never have to do msg_send![obj, someMethod: arg1, withArg: arg2] again, instead you'll just do obj.someMethod_withArg(arg1, arg2) (and if we've reviewed it in objc2, and added it to a list of safe functions, you won't even have to use unsafe).

Yeah, I'd seen mention of it before. :)
The real question for me actually becomes whether cacao is worth it - not because your work erases it or anything, but Apple-specific UI work is in an odd place because most of the people looking to natively write apps for the platform are going to do it with the core languages (Swift/far increasingly less ObjC). Hard to gauge whether anyone would consume this crate.
On the other hand, cacao does work around a lot of oddities... so there might still be a place for it.

Also, something that is almost possible now using declare_class! (still need a bit more work on the generics, but that should be doable):
pub trait WebViewDelegate {
    fn on_message(&self, _name: &str, _body: &str) {}
    // ...
}

declare_class!(
    pub struct WebViewDelegateObject<T: WebViewDelegate> {
        delegate: Ivarbox<Box<T>>,
    }

    unsafe impl<T: WebViewDelegate> ClassType for WebViewDelegateObject<T> {
        const NAME: &'static str = <T as WebViewDelegate>::NAME;
    }

    unsafe impl<T: WebViewDelegate> Protocol<WKScriptMessageHandler> for WebViewDelegateObject {
        #[sel(userContentController:didReceiveScriptMessage:)]
        fn on_message(&self, _: &WKUserContentController, message: &WKScriptMessage) {
            autoreleasepool(|pool| {
                 self.delegate.on_message(message.name().to_str(pool), message.body().as_str(pool))
            })
        }

        // ...
    }
);

pub struct WebView<T = ()> {
    pub is_handle: bool,
    pub obj: Id<WKWebView>,
    pub layer: todo,
    pub delegate: Option<Id<WebViewDelegateObject<T>>>,

    // ... autolayout stuff
}

The real question for me actually becomes whether cacao is worth it - not because your work erases it or anything, but Apple-specific UI work is in an odd place because most of the people looking to natively write apps for the platform are going to do it with the core languages (Swift/far increasingly less ObjC). Hard to gauge whether anyone would consume this crate.
On the other hand, cacao does work around a lot of oddities... so there might still be a place for it.

I... Don't know about that - I guess it's hard for me to estimate what people actually want from Cocoa + Rust? What have you used it for yourself?
I think a completely safe interface would be nice though, and while objc2 will come close to some of it, there will probably always be some things (example: custom class declarations) that will always require a bit of unsafe.

What have you used it for yourself?

Heh, cacao originally started after I got tired of writing a cocoa backend for alchemy. Since then I've used it for small tools on my own, but nothing I've released yet - from what I can tell, others are the same.
It's not something I'm deciding this instant anyway, and I'm mostly just openly musing on it. :)

Following up on this: I've released objc2 v0.4, which I feel is at a pretty good point, I mostly expect things around declare_class! to change from now on - so I would say I'm ready to really get into using objc2 in this crate.

I'm unsure what you think is the best way forward? In https://github.com/ryanmcgrath/cacao/pull/30#issuecomment-1304314534 you noted that you wanted to use icrate, which I'm all up for, but how do we get there?
In my eyes, the best way is to slowly convert things to objc2, and then start using icrate after that, but do you think we should do it differently?

With objc2 and the autogenerated API bindings, what role does Cacao serve? A Rust ergonomic interface to the underlying APIs?

Pretty much - e.g, I would not want to try to use a NSTableView with view reuse without cacao.
I’m happy to share the load with the ecosystem so I think this is all net good - though I can’t dig into Mads stuff until later this evening. Def want to get it merged tho.
On Mon, Jul 31, 2023 at 18:21, Adam Gastineau @.***(mailto:On Mon, Jul 31, 2023 at 18:21, Adam Gastineau < wrote:

With objc2 and the autogenerated API bindings, what role does Cacao serve? A Rust ergonomic interface to the underlying APIs?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

The way I've been going about it was to slowly convert things to objc2, and then start using icrate after that, but do you think we should do it differently?

@madsmtm this is totally fine with me, yeah - it's likely the path of least resistance, no sense in making our lives harder.


[Communication] Run lint:fix

Related to https://github.com/Azure/azure-sdk-for-js/issues/13723
This PR has changes from running the lint:fix script on all the communication packages

/azp run js - communication - ci


NTR: C1 Fluidigm Library Construction Platform

Project: ENCODE
So - libraries for next-generation sequencing used to all be made by hand. However, we are starting to see the emergence of platforms (machines) which do the library construction in an automated fashion. It would be useful to register these devices with OBI terms, similar to this
OBI: http://www.ontobee.org/ontology/OBI?iri=http://purl.obolibrary.org/obo/OBI_0002012 (only I would put these under the class hierarchy of: Measurement Device -> Automated Library Construction.
NTR: "C1 Fluidigm"
Editor preferred term: "C1 Fluidigm"
Alternative terms: C1 Fluidigm
Textual definition: The C1 system carefully isolates single cells into individual reaction chambers in the exclusive Fluidigm integrated fluidic circuit (IFC). The optically clear IFC lets you automatically stain captured cells and examine them by microscopy for viability, surface markers or reporter genes. After staining, cells are automatically lysed and template is quickly prepared for qPCR or sequencing analysis
Definition source for the textual definition: https://www.fluidigm.com/products/c1-system
Logical definition (or parent term):
Example of usage: The library was prepared using the C1 Fluidigm platform and sequenced on the Illumina HiSeq 2500.
Term editor: Carrie A Davis

Flagging this for my reference. Cheers - Sira

I'm reviewing your old requests and am glad to create a few this week if you can help prioritize.

This is no longer a priority for ENCODE.


How do you set the game status of the bot?

I've been scratching my head to see why it isn't working.
Can you help me?
I tried:
bot.on('presence', function(user, userID, status, game, event) { 	game: { 		name: "!ping",  		type: 0 		} });
But Type: 0 is an "unexpected token".
This code however,
bot.setPresence({ 	game: { 		name: "!ping",  		type: 0 } });
it completely becomes ignored.

Add the code inside bot.ready method.
Example: bot.on('ready', function(evt){      logger.info("Connected.");     bot.setPresence({         game: {             name: "My Game"         }     }); });


Initial focus from controller gets replaced

OpenUI5 version: 1.108.21
Hi,
In the controller I am executing a function that in its logic can set a focus to a specific element in the app. However, no matter if it's executed in onInit or onAfterRendering, the focus I set gets replaced by some default focus of the app.
In the framework I can see that the restoreFocus method is executed after my logic, so I assume that's what replaces my focus.
I could set some delay, but that's not an elegant and safe solution. Is there any other way to solve this problem?

Hi @sz3lbi , please see the answer from "How to Set Initial Focus in a View?".


feat: add shell extractor script that will extract contents of run sections in actions

https://github.com/ydb-platform/nbs/actions/runs/12261972117
https://github.com/ydb-platform/nbs/actions/runs/12261973710
https://github.com/ydb-platform/nbs/actions/runs/12261989755
https://github.com/ydb-platform/nbs/actions/runs/12261975548
https://github.com/ydb-platform/nbs/actions/runs/12261977051
https://github.com/ydb-platform/nbs/actions/runs/12261978314
https://github.com/ydb-platform/nbs/actions/runs/12261982947


build(docker): create a docker image based on Alpine Linux

SUMMARY
Create a docker image based on Alpine Linux.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Thanks for the contribution @grebaza - this looks great, but unfortunately having an alternative docker image base will be very difficult to keep in sync with the main image. If there is a reason why Alpine Linux is a better base for the docker image, I suggest starting a discussion/SIP to see if the official image should be migrated to Alpine. I'm closing this PR for now, but feel free to ping me either here or Slack if you wish to discuss alternative ways forward.


Update for Beta 3

use wpi::priority_mutex inplace of priority_mutex

You shouldn't be using prioritu_mutex directly. Instead just include support/mutex.h, and use wpi::mutex. On Linux systems that is typedeffed to priority_mutex where on windows and mac it's std::mutex


Bad storage method for UUID

The problem is that LuckPerms stores UUIDs in MySQL in an extremely non-optimized way. It uses VARCHAR(36) for UUIDs but UUID is not a string! It is a 16-byte number!
Not only it increases the amount of excessive data stored but it also makes the SELECT queries way slower (string binary search is way more complicated than simple binary search on numbers).
So I see it is necessary to use BINARY(16) instead of VARCHAR(36).
@lucko 	What do you think about changing the storage method to a more appropriate one? Is there any other reason to store them as VARCHARs I haven't thought of?
Reference: https://mysqlserverteam.com/storing-uuid-values-in-mysql-tables/

https://github.com/lucko/LuckPerms/blob/master/common/src/main/resources/me/lucko/luckperms/schema/mariadb.sql#L14
It's indexed. On terms of being much slower, I doubt you'd actually notice a difference in performance on an actual running server. 16 bytes as opposed to 32 isn't that big of difference either in terms of storage performance. Micro optimization at best that would require thousands of tables existing on current servers to be altered

@bob7l For huge networks that use LP with thousands of UUIDs the difference between 32 bytes with string collation and 16 raw bytes can save some storage. But it is not the problem. The problem is with the indexing. Indexing strings is way more complex than indexing raw binary data.
I agree with you that this migration may be a hard process but why can't LP support both schemas? It will allow new users to use an optimized schema while old users won't be required to alter the tables for at least several versions of LP.

Yes, this is something that will be considered if the schema is ever overhauled.
However, doing so is a complex process, and not something I want to rush into.
In the mean time, storing UUIDs in string form isn't the worst thing. I agree it probably is a micro optimisation at best.
Even for huge networks, this is a tiny thing to worry about.
Supporting two schemas isn't that practical.

I've closed this issue - however, this will definitely be considered, as I said previously, if the schema is ever updated.


Failed to compile a shader with an array of the structure with RWBuffer resource

When compiling a Slang shader with an array of the structure (e.g. TensorView  below), where the structure contains a buffer resource type (e.g. RWByteAddressBuffer), into the GLSL target, the compiler will crash without any diagnosis information.
A simpler one might be successfully compiled, as everything is somehow inlined.
An example minimum code snippet:
(Target: GLSL, slang version: newest Release now)
RWByteAddressBuffer g_gradient_buffer;

struct TensorView {
    RWByteAddressBuffer gradient_buffer;
    uint offset_grad;
    void interlocked_add_grad(int x, float val) {
        gradient_buffer.InterlockedAddF32((offset_grad + x) * sizeof(float), val);
    }
};

struct Foo {
    TensorView view;
    __init(TensorView view) {
        this.view = view;
    }
    void bar() {
        view.interlocked_add_grad(0, 1.f);
    }
};

[shader("compute")]
[numthreads(32, 4, 1)]
void ComputeMain(int3 gtid: SV_GroupThreadID) {
    TensorView views[3] = {
        {g_gradient_buffer, 0},
        {g_gradient_buffer, 4},
        {g_gradient_buffer, 8},
    };

    Foo foos[3] = {
        Foo(views[0]),
        Foo(views[1]),
        Foo(views[2]),
    };

    for (int i = 0; i < 3; ++i) {
        foos[i].bar();
    }
}

Resources types in a shader target (hlsl/glsl) has a lot of restrictions in that they are not true data types and cannot used without restrictions when placed in arrays or structs. If the compiler can't legalize them out of existence from those array/struct types, it can't generate valid hlsl/glsl code.
A way around this is to define a global array of buffers and store indices in the user defined struct/array types.
However if the compiler crashes without diagnostics, it is something we should fix.

In tot this shader now diagnoses an error and is no longer crashing, closing the issue.


The pre-trained model

Hello,Thanks for your work, Where can I find the pre-trained model?

Hello thank you for your work, I'm planning on using PhysNet_2DCNN_LSTM, but I can't get it run somehow.. can you provide helpful steps? much appreciated.

Hello,Thanks for your work, Where can I find the pre-trained model?


Ref-NeRF Real dataset

Hi,
Thank you all for the great work and the release of the code. I want to try the RefNeRF in real datasets, starting by reproducing the results in the scenes from the paper.
I used the following command to execute the code.
python3 run.py --ginc configs/refnerf/refnerf_real.gin --scene gardenspheres
But the rendering result is not good.

I'm not sure how I can get the results of the real data of refnerf.
Thank you.

I also have same problem.
Did you solve this problem?

I think i solve the problem.
How about run code with llff.gin?
2023년 10월 26일 (목) 오후 4:05, kimjanchaeng @.***>님이 작성:

I also have same problem.
Did you solve this problem?
—
Reply to this email directly, view it on GitHub
https://github.com/kakaobrain/nerf-factory/issues/39#issuecomment-1780532140,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AL6VSI7KD3GXFV3X4SIA36DYBIDTPAVCNFSM6AAAAAAYBBGTGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBQGUZTEMJUGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Thank you for your prompt response.
Did you get the almost close rendering results in Ref-NeRF paper( 23.40 /
0.620 / 0.125 : PSNR/SSIM/LPIPS ) by running code with llff.gin?
2023년 10월 26일 (목) 오후 5:44, Minseong Kim @.***>님이 작성:

I think i solve the problem.
How about run code with llff.gin?
2023년 10월 26일 (목) 오후 4:05, kimjanchaeng @.***>님이 작성:

I also have same problem.
Did you solve this problem?
—
Reply to this email directly, view it on GitHub
<
https://github.com/kakaobrain/nerf-factory/issues/39#issuecomment-1780532140>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AL6VSI7KD3GXFV3X4SIA36DYBIDTPAVCNFSM6AAAAAAYBBGTGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBQGUZTEMJUGA>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/kakaobrain/nerf-factory/issues/39#issuecomment-1780674206,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BBDPFINYPSPU6AXMJ3ZUFKTYBIPFVAVCNFSM6AAAAAAYBBGTGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBQGY3TIMRQGY
.
You are receiving this because you commented.Message ID:
@.***>


 Modifying the cursor position mid-function clears the curswant property. If you have a different proposition to measure the gutter width let me know. Also I'm not sure which issue it solved but if you encounter it please open it so it's documented :)

Opened PR #12 which should fix this. 👍

Also I'm not sure which issue it solved but if you encounter it please open it so it's documented :)

This image from PR #4 shows the issue with the old method:

The old method didn't consider scl settings such as yes:X, auto:X and number. It was also leaving 2 columns with auto set even if there were no signs to display for me.