LP3 Derived Parameters from DBF

FDA 1.4.3 stores the derived parameters and @HenryGeorgist wrote some logic to get access to the parameters in the dbf. We need some logic in the view/view model to allow the users to get the parameters from the dbf and to construct an LP3 distribution
Originally posted by @rnugent3 in https://github.com/HydrologicEngineeringCenter/HEC-FDA/issues/250#issuecomment-1067305519

There should be a menu item on frequency relationships "Import Synthetic Analytical Frequency Function from HEC-FDA Version 1.4.3 DBF." Access the LP3 parameters in the DBF to construct the analytical frequency function.

Obtain the .dbf example file here: https://drive.hecdev.net/share/8X0HuO8F

This is an image of the data you're looking for. See row 2. The requisite fields are REC_LENGTH, LOG_MEAN, STD_DEV, SKEW

I am not sure what is the best way to identify whether a curve is synthetic. Probably by looking at any of the Q fields (e.g. Q_01) if the field has -901.00 then the row represents an analytical frequency function by parameters. If there is a positive value, then that is a synthetic analytical frequency function.

@HenryGeorgist wrote a test demonstrating how to do this: https://github.com/HydrologicEngineeringCenter/fda-model/blob/main/fda-model-test/integrationtests/dbftests.cs

This is completed and is ready for test:

Looks good.


Standardize pictures to ~1080p

Summary of the changes / Why this is an improvement

Pics fixed to 1080p
Improved compression
Removed unused pictures

Checklist

[x] CLA is signed

No, they weren't. You can see previous resolutions in the files tab. I assume most of these were taken on a macbook, as they're close to its 3024x1964 if I remember correctly. Some of them could have been also taken on a company issued 4K monitor.


Update cert-manager to use Let's Encrypt

I've received a mail from Let's Encrypt warning than previous versions of cert-manager are causing trouble to its servers, and that they will stop accepting requests from versions inferior to 0.8.0.
We've been working with Jetstack, the authors of cert-manager, on a
series of fixes to the client. Cert-manager sometimes falls into a
traffic pattern where it sends really excessive traffic to Let's
Encrypt's servers, continuously. To mitigate this, we plan to start
blocking all traffic from cert-manager versions less than 0.8.0 (the
current semver minor release), as of November 1, 2019. Please upgrade
all of your cert-manager instances before then.

We're sending this email because this is the contact address of your
cert-manager instance at:

XXX.XXX.XXX.XX .

Version 0.8.0 is much better but we still observe excessive traffic in
some cases. We're working with Jetstack to improve these cases. As new
versions of cert-manager are released, we will add the non-current
versions to our block list after 3 months. We strongly encourage
cert-manager users to stay up-to-date with new versions.

Also, there is an opportunity to help both Jetstack and Let's Encrypt.
Once you've upgraded, please check the logs for your cert-manager
instances from time to time. Are they making excessive requests to Let's
Encrypt (more than, say, 10 per day over multiple days)? If so, please
share details at https://github.com/jetstack/cert-manager/issues/1948 .

Thanks,
Let's Encrypt Team

We should upgrade the chart

+1.
I am receiving the following error. I agree with @aarroyoc. We should upgrade the chart.
orders controller: Re-queuing item ... urn:ietf:params:acme:error:rateLimited: Your ACME client is too old. Please upgrade to a newer version.


When we will get Facial Recognition?

Thanks, but I need Facial Recognition so I can implement in my login


modified to use chatGPT API - faster and lower cost

Oh geez, you also just committed the 3.5-tubo upgrade hahahahaha
Nice stuff 🙌🏽

Leaving the PR open because I did a few tweaks to the prompts that you might find interesting.

telling it my system spec
telling it explicitly to do zsh commands
telling it to make a best guess

Those are some interesting ideas, I'll incorporate them. I'll write a function to fetch the current OS distribution so that it's cross platform.
What's your motivation for adding You are the world leading expert and Always make the best guess if you do not have enough information.? Does it improve the output?

Added the __get_distribution_name function and some other changes from this PR. Couldn't merge directly because of the conflicts. Thanks for your input!

Those are some interesting ideas, I'll incorporate them. I'll write a function to fetch the current OS distribution so that it's cross platform.
What's your motivation for adding You are the world leading expert and Always make the best guess if you do not have enough information.? Does it improve the output?

Just a trick I found and have been using since. Anecdotally, it does seem to improve the output lol
https://twitter.com/labenz/status/1628447989051150336

Couldn't merge directly because of the conflicts

fwiw, here are a couple more inputs:

asking it to output a single command without backticks doesn't always work so your implementation of stripping the backticks out afterwards is more robust I think
my POST requests don't work when I use --data instead of -d on the curl -X POST. --data seems to insert an & after the end of the request body (verified by running a python http.server)

__get_distribution_name

This is a nice addition.
I've been meaning to add a LOT more context for gpt about the environment:

tools.
I have cheese installed on the machine, but when I ask the query open the camera it seems to either say "I don't have access" (which is where my excess prompt helps) or talk too much ("you can install cheese bla bla bla"). If it knew about a lot of the tools on my env (compgen -c is A LOT tho)

environment.
Just giving it the ls and the cwd might be useful enough as a start.

Command history so that it sees the interaction over time and customizes accordingly.

Anyways, this thread seems to be going too off-track.
Thanks!

Now that I tested it some more, the intro really helps, it now answers even stupid queries like my disk is full and fix the wi-fi

As for giving GPT more context - it might raise a lot of privacy concerns for many users, especially with command history, I think I'll avoid doing it for now.


Acting as a proxy for images

I'm trying to use abc to act as a proxy for images, since they require authentication. Now, fetching them with the required auth works, and I get the images and such, but I can't figure out how to get abc to actually return it as an image. Any help would be appreciated.
I have
app.get("/image/:id", async (ctx) => {

	let avatarReq = await fetch(`https://myurl.com/avatar/${ctx.params.id}/256`, {
		headers: {
			"Ocs-Apirequest": "true",
			"Accept": "application/json, text/plain, */*",
			"Authorization": `Basic ${ctx.queryParams.auth}`
		}
	});
	// The above request will succeed

	// Now what?
});

but have no idea how to proceed. Again, any help would be appreciated!

You can directly return the image (Uint8Array) in<EMAIL_ADDRESS>Internally, abc calls c.blob()

Forgive me for not understanding properly, but what am I doing wrong?
app.get("/image/:id", async (ctx) => {
	// TODO make this work lol
	let avatarReq = await fetch(`https://box.ictmaatwerk.com/avatar/${ctx.params.id}/256`, {
		headers: {
			"Ocs-Apirequest": "true",
			"Accept": "application/json, text/plain, */*",
			"Authorization": `Basic ${ctx.queryParams.auth}`
		}
	});
	// This will succeed
	let buffer = await avatarReq.arrayBuffer();
	let arr = new Uint8Array(buffer);
	console.log(arr);
	return arr;
});

Logging arr returns a very large Uint8Array (13781 long), but when I return it it shows in the network tab on my client as JSON, with no response body. Any ideas?

@JipFr you should update abc to 1.0.0-rc5

Ah, I missed that. Your patch worked, thank you! Images are now loading!


Issue #33

Added hypothesis and fixed zone errors

@uyguronur I removed jquery 1.11 since we will no longer be using annotatorjs. Do we require Jquery for other parts of the application?

Hi @cantux no we don't need it. Also to be sure I checked the git and it turned out that it was added by you while adding annonations. So feel free to delete it.
But about your pull request, can you please select the target to develop instead of master?

@uyguronur see #89


converted rest of training files to tsx

Part of conversion to ts. This should be the last of the ts conversions before beginning the next.js upgrade
Works with tabular, image-models, classical-ml, and object-detection

wait on build checks to pass @dwu359


Does go-cmp support white/black list?

Say I'm comparing two struct and want to ignore some fields (by using black list) or only want to compare certain fields (by using white list). Does go-cmp support them now?

Ignoring some fields (a black list) is possible with https://pkg.go.dev/github.com/google/go-cmp/cmp/cmpopts#IgnoreFields
Ignoring all fields except some fields (a white list) is not currently provided. That would be #66.

Closing as resolved for the first issue, and a duplicate for the second issue.


added libmongoclient-dev

C++ mongo client  legacy version added to base.yaml for Ubuntu bionic; As far as I am aware this is new  package in bionic, not available in earlier distros. This package is not to be conuised with libmongo-client-dev which is an unofficial C driver;
https://packages.ubuntu.com/bionic/libmongoclient-dev
Currently this is wrapped and released as libmongocxx_ros for kinetic and indigo through the mongodb_store stack. This can now be replaced by a system dependency.
We are also planning on releasing our perception framework later this year through bloom which will depend on this.

Done.
arful: https://packages.ubuntu.com/artful/libmongoclient-dev
cosmic: https://packages.ubuntu.com/cosmic/libmongoclient-dev
debian: https://packages.debian.org/stretch/libmongoclient-dev
fedora: https://apps.fedoraproject.org/packages/mongo-cxx-driver
Should I merge the ubuntu packages into as single entry then?

If you could make the ubuntu ones use the simpler rule that would be great. There's already a typo in the cosmic line.

@tfoote while this is released as a ros package on indigo and kinetic. Won't we have conflicts between rosdep keys and ros package if the package has a match in both?
I think we faced this in the past:
https://github.com/ros/rosdistro/pull/17461
https://github.com/ros/rosdistro/pull/17464
So my understanding is that the ubuntu rule added here should be modified to not match trusty or xenial

while this is released as a ros package on indigo and kinetic. Won't we have conflicts between rosdep keys and ros package if the package has a match in both?

@mikaelarguedas  Can you where you see the conflict? The ROS distros don't contain a package with libmongoclient in the name.

I will go ahead and merge this as is.
@mikaelarguedas Please feel free to comment after the fact regarding the above question.


Invalidate searches after batch delete

Repro steps:  Batch delete multiple resources
Expected behavior:  Delete resources, and resources disappear from the screen
Actual behavior: Delete resources, but resources stayed on the screen
What's going on?  MedplumClient has an internal cache.  We try to be smart about flushing that cache on updates and deletes, but that logic is not implemented for "batch" requests.
This PR fixes the proximal bug, which invalidates caches manually after batch delete.
The better long term fix is support for the intelligent batching, which would eliminate/minimize the need for manually batching, and would then support all of the flushing logic for batch requests.

Coverage increased (+0.0004%) to 95.158% when pulling eeb699dcbfa7cbbd7c7130f5e22116726bec46f1 on cody-delete-and-refresh-search into 112ae1a27d0ba790a497c402674ab44b274aa720 on main.


SQLAlchemy user defined types

Contains SQLAlchemy defined types for the following SQL types:

NDARRAY
NUMPY
UUID
REAL (tests only)
DICT
LIST

Note, these aren't actively used in the code base yet. This changeset only adds the logic. Later changesets will integrate them.

This can be squash merged if that's of interest.

It looks like sqlalchemy needs to be added to the runtime requirements for "build and upload to PyPI" check to pass.

The tests for this PR are all passing now due to an issue in wbia-cnn


Improved validation of digger projects (workflow_configuration)

digger.yml validation should fail if workflow configuration is empty or specified in the wrong location (since workflow configuration should contain all the three keys under it:
workflow_configuration:
      on_pull_request_pushed: [digger plan]
      on_pull_request_closed: [digger unlock]
      on_commit_to_default: [digger apply]

for example the following digger.yml should fail
projects:
- name: xxx
  dir: "dev"
  workflow: myworkflow
generate_projects:
  exclude: "../.terraform/**"
workflows:
  myworkflow:
    plan:
      steps:
      - run: "checkov -d ."
      - init
      - plan
    apply:
      steps:
      - run: "terraform fmt -check -diff -recursive"
        shell: zsh
      - init
      - apply
    workflow_configuration:

specifying that workflow configuration should specify a list of on_pull_request_pushed, on_pull_request_closed and on_commit_to_default should all exist.

hi, may I help with this task please?

yes @dhanusaputra you are welcome to contribute here!


Added Code Like a Pro in C#

Hi,
Stjepan from Manning here. I thought this title might be a good match for your list. Thank you for considering it.
Best,

Hi,
This book is about C# and this repo is really about Blazor.
Kind regards,

Sorry. This must be some error. My bad.
On Tue, May 10, 2022 at 12:43 PM Adrien Torris @.***>
wrote:

Closed #541 https://github.com/AdrienTorris/awesome-blazor/pull/541.
—
Reply to this email directly, view it on GitHub
https://github.com/AdrienTorris/awesome-blazor/pull/541#event-6580829490,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANDIEMJ7EH2FRK7DVU7IN6DVJI4VBANCNFSM5G667RCA
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Stjepan Jureković
Manning Publications - Marketing
@.***


[ ] Modal attribute should be added.
[ ] The color of the modal should be darker.

I think it should be added and edited to be:

color neutral 950
opacity 0.5

Just like in this example:
https://www.figma.com/file/JJNgZvt1qf3ydYmOwbE3Jg/Vivid-UI-Kit---3.0-WIP?node-id=19505%3A134565&t=7Z3pk8f4gDCjQ3TG-1

@AyalaBu
We cant use the tokens in the dialog::backdrop.
I used the currenColor function - which takes the canvas-text color that is set on the dialog (which is now the same as in vivid-2)
see here: https://vivid-nnsg4xd7gdf0.deno.dev/components/dialog#showmodal

I think it looks much better this way,
and it will be easier for the users to understand what's going on on the screen


Add 'Copy & Paste Guides'

Could this plugin be added to the Sketch Toolbox?
https://github.com/pixelpillow/copy-paste-guides
It's a plugin which makes it easy to copy, paste or remove guides from/to your artboard(s)

You need to make a pull request here: https://github.com/sketchplugins/plugin-directory


Global hook to determine ...

... if Workers are allowed to fetch new jobs from Redis for execution. Hook function can be set up with kue.createQueue (through options object):
let kuePaused = true;
const kueAllowFetchNewJobs = function(jobType: string) {
const memoryUsageMB = {rss: 0, heapTotal: 0, heapUsed: 0, external: 0, ...process.memoryUsage()};
memoryUsageMB.rss = Math.round(memoryUsageMB.rss/1024/1024);
memoryUsageMB.heapTotal = Math.round(memoryUsageMB.heapTotal/1024/1024);
memoryUsageMB.heapUsed = Math.round(memoryUsageMB.heapUsed/1024/1024);
memoryUsageMB.external = Math.round(memoryUsageMB.external/1024/1024);
const pause = kuePaused || (Math.max(memoryUsageMB.rss, memoryUsageMB.heapTotal) + memoryUsageMB.external) >= (MEMORY_AVAILABLE_MB - 60);
return !pause;
};
const q = kue.createQueue({
allowFetchJobs: kueAllowFetchNewJobs
});
Hook function should return true, if fetching new jobs is allowed, and false to prevent Kue from fetching new jobs.
Possible use case is to prevent Kue from grabbing new jobs for execution globally (for all job types or for a certain job type), if JS node is hitting upper memory limit, or if it's too much CPU used. With this feature, balancers can be implemented for better control over stability and scalability of a Kue-based application between many nodes, sharing same Redis.

Cannot pass the check 572.5, though this update has no influence on this piece.

Kue Tests Job should be processed after delay:
Uncaught AssertionError [ERR_ASSERTION]: expected 1973 to be approximately 300 ±100
at Assertion.prop.(anonymous function) (node_modules/should/lib/should.js:61:14)
at test/test.coffee:176:37


az ad sp create-for-rbac: value for --cert is "unrecognized arguments"

In both --create-cert and use from keyvault mode, whatever value I put for --cert is an unrecognized argument:
az ad sp create-for-rbac --keyvault someVaultName --name "thisServicePrincipal" --cert someCertThatExists
az ad sp create-for-rbac --create-cert --keyvault someVaultName --name "thatServicePrincipal" --cert someCertToMake
If I leave off --cert, it throws a Python stack trace ending with "ValidationError: Parameter 'certificate_name' can not be None."
Environment summary
Install Method (e.g. pip, interactive script, apt-get, Docker, MSI, edge build): yum
CLI version (az --version)
acr (2.0.22)
acs (2.0.30)
advisor (0.5.0)
appservice (0.1.30)
backup (1.1.0)
batch (3.1.11)
batchai (0.1.6)
billing (0.1.7)
cdn (0.0.13)
cloud (2.0.12)
cognitiveservices (0.1.11)
command-modules-nspkg (2.0.1)
configure (2.0.14)
consumption (0.2.2)
container (0.1.20)
core (2.0.30)
cosmosdb (0.1.19)
dla (0.0.18)
dls (0.0.20)
eventgrid (0.1.11)
eventhubs (0.1.1)
extension (0.0.11)
feedback (2.1.0)
find (0.2.8)
interactive (0.3.18)
iot (0.1.18)
keyvault (2.0.20)
lab (0.0.20)
monitor (0.1.4)
network (2.0.26)
nspkg (3.0.2)
profile (2.0.21)
rdbms (0.2.0)
redis (0.2.11)
reservations (0.1.1)
resource (2.0.26)
role (2.0.21)
servicebus (0.1.1)
servicefabric (0.0.11)
sql (2.0.24)
storage (2.0.30)
vm (2.0.29)
OS version: Red Hat Enterprise Linux 7.4
Shell Type: bash-4.2

It was fixed yesterday through #5903, it was a fall out from knack conversion.
Suggest use dev builds till it gets released on Apr 10


OAuthToken Expiry Refresh Will Never Occur Where ‘Expires_at’ Is Not Provided

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
Info:
The expires_at key is only labelled as 'recommended' and will not be provided in every openid-client response
https://datatracker.ietf.org/doc/html/rfc6749#section-4.2.2
For Salesforce, it is not provided.
https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_client_credentials_flow.htm&type=5

I began to notice many OAuth2 failures (401) which occurred on endpoints being monitored. They seemed to line up with the session expiry for the platform being monitored. I found that editing and hitting save on the monitor without actually changing anything resolved the issue (seemingly forced a refresh).
Looking into the getOidcTokenClientCredentials method from util-server.js, we never seem to refresh the OAuthToken. This is primarily due to no expires_at object key being provided. This is relied upon by monitor.js within the this.auth_method === "oauth2-cc" condition.
As a result of the above the following condition which allows a refresh is ONLY ever entered when this.oauthAccessToken is undefined, which happens to occur on save. This results in a failure until saving. (monitor.js)

👟 Reproduction steps
I found this to apply to Salesforce OAuth2 Client Credentials.
As all salesforce organisations are different, you can replicate this by first creating your Connected App in salesforce by following the recommended steps here https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm&type=5.

Create a monitor for HTTP(s) [This can also be any of the extended HTTP(s) types]
Include your endpoint such as https://{your_domain}.my.salesforce.com/services/data/v57.0/limits
Configure the Authentication Method to OAuth2: Client Credentials
Here you can include debug logs for this.oauthAccessToken after it is set by getOidcTokenClientCredentials to see the expires_at missing OR wait for the session to expire (based on your organisation settings.

👀 Expected behavior
The OAuth2 token is refreshed.
I believe we can handle this in a few ways:

Call getOidcTokenClientCredentials after 401 when this.auth_method === "oauth2-cc"
Set this.oauthAccessToken to undefined after 401 when this.auth_method === "oauth2-cc"
Include a new session expiry time related field for the user to manually input the expected session life to be used for refreshing
Hardcode some small number so it's refreshed for every request (if we really have to...)

😓 Actual Behavior
I received a down alert
🐻 Uptime-Kuma Version
1.23.3
💻 Operating System and Arch
Windows 11 x64
🌐 Browser
Google Chrome 118.0.5993.70
🐋 Docker Version
No response
🟩 NodeJS Version
18.17.1
📝 Relevant log output
No response

Happy to make a pull request for any solution

PRs appreciated, see our contribution guide: https://github.com/louislam/uptime-kuma/blob/579d7232c92621fab7da3e5765de7ea9eb6a9e3b/CONTRIBUTING.md
Call getOidcTokenClientCredentials after 401 when this.auth_method === "oauth2-cc" seems like the most logical choice.
To preemt this:
Have you made shure that there is really no expiry-related field present? (I can't imagine tokens expiring without telling people when they will expire)

@CommanderStorm
I'll look at creating a PR for this.
In regards to the value not being provided.
I have yes. I was also surprised so I logged the this.oauthAccessToken response (below) and double checked with the documentation.

cc: @hegerdes May need your assistance on this issue.

 Salesforce and Atlassian do a lot of stuff their own way 🙄
I am also in favor of the first solution you provided. But let me ask you one thing first. Is the access code you get form the oauth provider a JWT and can we always assume that it is a JWT? (I'm not sure right now if the spec requires it to be a JWT)
If so, JWTs always have expiry-time. We could use this as an alternative  expiry-time to the native expiry-time form the oauth
token provider response. This would avoid doing unneeded http check requests that could pollute (system/access) logs

The access token from Salesforce is not always a JWT and is defaulted to 'opaque'. JWT has to be configured in the app connection settings to be enabled.
Are we looking to implement a JWT Authorization flow? We'll have to create the ability for users to import and store certificates for signing the assertion.

I think I caused some confusion - I do not want to create and sign own JWTs. I just thought about using the JWTs (accsess codes) expiry that we get form the OAuth/OIDC provider.
All the implementation I've seen so far provide an JWT that is valid for about 1 hour and can be used to access the protected resource (using methods like Bearer Token).  Sorry if I wasn't clear enough.
 The spec definitely does not require the access token to be a JWT - it just happens to be that it is for most providers. Just make sure to prevent infinite loops of always requesting a new token when the HealthCheck happens to fail.

@hegerdes Ah! My apologies, I see what you were going for now. Unfortunately not the case :(
Great foresight, I made sure to include a reattempt check within the pull request to prevent the infinite loops after I encountered it during testing.


[Feature Request] Users manage access to certain container only

It would be nice to have an option wherein we can manage the access of a certain container in an endpoint. For instance... I have a user1 which can access endpoint1 and his container, only. The remaining containers on endpoint1 will neither be seen nor configured unless given permission.
Cheers,
Crishel Yumul

With the introduction of user access control, an administrator can now define containers private to one user. Give a try to the latest version !
Feel free to re-open if you think something is missing.


Unable to build mlx_lm from source

After successfully building mlx (on an Apple Mac Studio Z14K0007J M1 Ultra) from git main, I tried to building mlx_lm the way I usually do from my local copy of mlx-examples:
% pip install -U -e llms
Obtaining file:///Users/oori/medical_llm/mlx-examples/llms
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... error
  error: subprocess-exited-with-error

  × Getting requirements to build editable did not run successfully.
  │ exit code: 1
  ╰─> [27 lines of output]
      Traceback (most recent call last):
        File "/Users/oori/.local/venv/medical-finetune/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/Users/oori/.local/venv/medical-finetune/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/Users/oori/.local/venv/medical-finetune/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 132, in get_requires_for_build_editable
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/4b/bht1mbdj6xd_1jmhss9cmpbw0000gn/T/pip-build-env-a3_2urc6/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 441, in get_requires_for_build_editable
          return self.get_requires_for_build_wheel(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/4b/bht1mbdj6xd_1jmhss9cmpbw0000gn/T/pip-build-env-a3_2urc6/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/4b/bht1mbdj6xd_1jmhss9cmpbw0000gn/T/pip-build-env-a3_2urc6/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/private/var/folders/4b/bht1mbdj6xd_1jmhss9cmpbw0000gn/T/pip-build-env-a3_2urc6/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 480, in run_setup
          super().run_setup(setup_script=setup_script)
        File "/private/var/folders/4b/bht1mbdj6xd_1jmhss9cmpbw0000gn/T/pip-build-env-a3_2urc6/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 4, in <module>
        File "/Users/oori/medical_llm/mlx-examples/llms/mlx_lm/__init__.py", line 1, in <module>
          from .convert import convert
        File "/Users/oori/medical_llm/mlx-examples/llms/mlx_lm/convert.py", line 9, in <module>
          import mlx.core as mx
      ModuleNotFoundError: No module named 'mlx'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build editable did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Looks to me like it failed to build mlx.
Can you try python -c "import mlx.core as mx; print(mx.__version__)"?
I don't know why the mlx package is not available. Maybe you can share more on how you built it?

This is how I built mlx (after pulling changes from git/main):
% env MACOSX_DEPLOYMENT_TARGET=14.2.1 CC=gcc CXX=g++ SDKROOT=`xcrun --show-sdk-path` CMAKE_BUILD_PARALLEL_LEVEL="" pip install  .
[..]
  Building wheel for mlx (pyproject.toml) ... done
  Created wheel for mlx: filename=mlx-0.4.0.dev20240223+d729a199-cp311-cp311-macosx_14_0_universal2.whl size=33120117 sha256=e12f205546c293124e9b5b275a26c4fe40eaf81a5fbc62410b345d60a003c36a
  Stored in directory: /private/var/folders/4b/bht1mbdj6xd_1jmhss9cmpbw0000gn/T/pip-ephem-wheel-cache-625iz8uh/wheels/93/15/16/01908bf91d03701448751e2fe7ba9e19ef1ac36825365b7470
Successfully built mlx
Installing collected packages: mlx
  Attempting uninstall: mlx
    Found existing installation: mlx 0.4.0.dev20240223+d729a199
    Uninstalling mlx-0.4.0.dev20240223+d729a199:
      Successfully uninstalled mlx-0.4.0.dev20240223+d729a199
Successfully installed mlx-0.4.0.dev20240223+d729a199

After which I get the following:
% python -c "import mlx.core as mx; print(mx.__version__)"
0.4.0.dev20240223+d729a199

I tried building again and get the same error.  I'm even able to import mlx.core in the same way as the failing line:
% ipython
Python 3.11.6 (v3.11.6:8b6ee5ba3b, Oct  2 2023, 11:18:21) [Clang 13.0.0 (clang-13<IP_ADDRESS>)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.18.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import mlx.core as mx

In [2]:

Which makes me think it might be an import resolution issue related to the relative import:
 from .convert import convert

I was able to build it after removing those unused imports from the top of init.py BTW:
% git diff
diff --git a/llms/mlx_lm/__init__.py b/llms/mlx_lm/__init__.py
index 8296042..311f216 100644
--- a/llms/mlx_lm/__init__.py
+++ b/llms/mlx_lm/__init__.py
@@ -1,4 +1 @@
-from .convert import convert
-from .utils import generate, load
-
 __version__ = "0.0.14"

Yes, I see the problem. The fix is in #479


Fvk fix docker image publication

Before, we were using this action to setup docker and run via commands. This was having some sort of internal failure while installing things via apt-get.
With these changes, we're no longer setting up docker, but logging, buildling and pushing via docker's official published actions. Specifically, login-action and build-push-action
PR doesn't quite show changes because of my accidental push to main. Whoops
See changes in original push to main here
See failing workflow runs prior to changes here.

Latest staging image published
https://hub.docker.com/layers/nycplanning/library/ubuntu-staging/images/sha256-feb0eee2d85fa5dc0cdd505aba97493088309d2a4801f69008ff804762e03835?context=explore
looks good to me


Disabling middleware on endpoints is broken

Link to reproduction
https://github.com/Byont-Ventures/payload-root-endpoint
Describe the Bug
The bug occurs as soon as you add an endpoint to a collection, with the property root set to true.
I need the raw request body in my endpoint handler, hence I must skip the payload middleware.
In addition, behavior is also faulty if you add the same endpoint to the global payload config.
In this case there is no error and payload boots, but the endpoint is not made. Any requests show up as 404.
The exact same endpoint does work if you set root: false
To Reproduce
See link to repository

Create app with dlx create-payload-app
Create an endpoint in a collection with the property root: true like so:

import { Endpoint } from "payload/config";
import { CollectionConfig } from "payload/types";

export const myEndpoint: Endpoint = {
  path: "/foo",
  method: "get",
  root: true, // This is the culprit
  handler: [
    (req, res, next) => {
      res.send("baz");
    },
  ],
};

const Users: CollectionConfig = {
  slug: "users",
  auth: true,
  admin: {
    useAsTitle: "email",
  },
  endpoints: [myEndpoint],
  fields: [
    // Email added by default
    // Add more fields as needed
  ],
};

export default Users;

yarn dev

/Users/rick/Documents/projects/payload/payload-root-endpoint/myapp/node_modules/payload/src/express/mountEndpoints.ts:10
      express[endpoint.method](endpoint.path, endpoint.handler)
             ^
TypeError: Cannot read properties of undefined (reading 'get')
    at forEach (/Users/rick/Documents/projects/payload/payload-root-endpoint/myapp/node_modules/payload/src/express/mountEndpoints.ts:10:14)
    at Array.forEach (<anonymous>)
    at mountEndpoints (/Users/rick/Documents/projects/payload/payload-root-endpoint/myapp/node_modules/payload/src/express/mountEndpoints.ts:6:13)
    at map (/Users/rick/Documents/projects/payload/payload-root-endpoint/myapp/node_modules/payload/src/collections/initHTTP.ts:37:19)
    at Array.map (<anonymous>)
    at initCollectionsHTTP (/Users/rick/Documents/projects/payload/payload-root-endpoint/myapp/node_modules/payload/src/collections/initHTTP.ts:13:51)
    at initHTTP (/Users/rick/Documents/projects/payload/payload-root-endpoint/myapp/node_modules/payload/src/initHTTP.ts:40:24)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at Payload.init (/Users/rick/Documents/projects/payload/payload-root-endpoint/myapp/node_modules/payload/src/index.ts:17:21)

Payload Version
The repo linked uses 2.0.0 but it also occurs with 2.0.13 and 1.15.8
Adapters and Plugins
"@payloadcms/bundler-webpack": "^1.0.0",     "@payloadcms/db-mongodb": "^1.0.0",     "@payloadcms/plugin-cloud": "^2.0.0",     "@payloadcms/richtext-slate": "^1.0.0",

Hey @RickVM the root property is only available on top-level endpoints, here is the exact line that omits the this property from the collections config. Here's what the docs say:

Note: this only applies to top-level endpoints of your Payload config, endpoints defined on collections or globals cannot be root.

It looks like you are importing Endpoint into your own config object, which does contain root. Are you able to move your endpoint to the top-level?

Hey Jacob, if with top-level endpoint you mean endpoints configured in the the global payload config then yes I have tried that but I am also not getting the result I would expect.
Unlike before there's no errors, but the endpoint doesn't seem to be made.
Requests show up as 404. If I turn off the root property, then it does give me the response I would expect.
Code is the same, except that its now part of the buildConfig in payload.config.ts

Root endpoints do appear to be working on my end. Here's a root endpoint from our "endpoints" test suite (we have unit tests for all endpoint configurations). I just did a simple get request using my browser, here's the result:

Can you check that your setup is correct, and update your reproduction?

@RickVM I'm going to mark this as closed but let me know if you're still having troubles with this.


2524 strawberryshake array deserialization performance issue

Summary of the changes (Less than 80 chars)

As it turns out the deserialization of JSON arrays had O(n^2) complexity. I have changed the implementation to O(n) and it has become much much faster

Addresses #2524

good catch!

Strawberry shake is now rewritten and we have integrated your suggestions ....


Pre workshop fixes

[x] Removed tour
[x] Removed codeowners
[x] Removed contributing.md
[x] Merged day 1 and day 2 issues
[x] Removed GitLens and CodeTour, added Live Server, Live Share, and Prettier
[x] Removed unused "var timer"
[x] Removed issue templates

What I have not done (would like some help here if you can @AngelOnFira!)

[ ] Added a GitHub action to publish the project to GitHub Pages on push
[ ] Added and rewrote the predefined issues

Also formatted the code with prettier.
README PR is separate from this one

Added and rewrote the predefined issues

I saw you made some changes, you just mean making changes to how issues are laid out right? And adding stuff like action item issues?

I saw you made some changes, you just mean making changes to how issues are laid out right? And adding stuff like action item issues?

Yeah exactly, changing the information in the issues so they are relevant to our workshop. Things like "Create an issue template" might not be super relevant for us?


Trigger waitlist translations

Task/Issue URL: https://app.asana.com/0/0/1204017060316965/f
Description
Trigger translations for win waitlist (includes macos waitlist).
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #2876   👈

This comment was auto-generated by Graphite.


SCRAM-SHA-1 authMechanism not supported

The Usage
// connect using SCRAM-SHA-1 mechanism
var db =<EMAIL_ADDRESS>['mycollection'], {authMechanism: 'ScramSHA1'})

Tried this and got
mongojs(
<EMAIL_ADDRESS>	[ **collections** ],
	{'authMechanism': 'ScramSHA1'}
)

// returned
{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }

Then tried this and got
mongojs(
	'mongodb://user:password@db.goportlight.com/mydb?authMechanism=SCRAM-SHA-1',
	[ **collections** ],
	{'authMechanism': 'ScramSHA1'}
)

Error: only GSSAPI, PLAIN, MONGODB-X509 or MONGODB-CR is supported by authMechanism

Seems that you try to connect to a mongodb server version < 3 which does not support scram sha 1. Just remove the authMechanism option to authenticate using mongocr which is the default prior version 3

I am at Mongo version 3.0.4
MongoDB shell version: 3.0.4
db version v3.0.4
git version: 0481c958daeb2969800511e7475dc66986fa9ed5
OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014
and it works when I connect with mongochef

I ran this in the shell to check
> db.auth( {
	user: "user",
	pwd: "*****",
	mechanism: "SCRAM-SHA-1",
} )
> 1

The error is a bit odd since the error message above says:
Error: only GSSAPI, PLAIN, MONGODB-X509 or MONGODB-CR is supported by authMechanism

So ScramSHA1 is not in the list :smile:
Could you try to remove the authMechanism=SCRAM-SHA-1 part from the connection url.

I tried is an every command returns this error
mongojs(
<EMAIL_ADDRESS>	[ **collections** ],
	{'authMechanism': 'ScramSHA1'}
)

// returned
{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }

me too, use node-mongodb-native is ok.

I successfully connect to a mongo 3.x, with both url parameter, and option.
Like :
var mongojs = require('mongojs')
var url = 'mongodb://admin:password@host/db?authMechanism=SCRAM-SHA-1';
var db = mongojs(url,[],{authMechanism: 'ScramSHA1'});
But mongojs should parse the url to automatically add the option...and the option does not even have the same name ('SCRAM-SHA-1' vs  'ScramSHA1') ! Really...


Transformation is not specified

In the mapping between tables "CDS inventory on-hand requests" and "msdyn_inventoryonhandrequests" it is specified that data should be transformed when mapping following fields: "ISATPCALCULATION" <<  "msdyn_isatpcalculation"
However, the actual transformation is not specified.
How should this data be transformed?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d0f2a03e-b77a-9f2b-0ba5-ffbab4a418cd
Version Independent ID: c0c1e93f-d1a3-c62e-abb8-1be918017bad
Content: Inventory availability in dual-write - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/data-entities/dual-write/inventory-availability.md
Service: dynamics-ax-applications
Product: ****
Technology: ****
GitHub Login: @yijialuan
Microsoft Alias: riluan

@RamaKrishnamoorthy - is this something you can take a look at and possibly address?


[Question] - Retrieving sbt plugin versions from hosted Sonatype Nexus

At my work we use Scala Steward to update all of our internal dependencies. We use a hosted Sonatype Nexus to both have a mirror of Maven Central and also to have our own internal releases Maven repo. From looking through the Scala Steward code it seems that it relies on Coursier to retrieve the list of versions available for the artifact.
https://github.com/scala-steward-org/scala-steward/blob/a2cea0f1f72f13b38f3b5cb01ae3cad04a58aff0/modules/core/src/main/scala/org/scalasteward/core/coursier/VersionsCache.scala#L54
If I understand it right, this is done for artifacts that have a maven-metadata.xml file, but as you know, sbt plugins that are published Maven style don't have one. Which again, to my understanding because of this, Coursier then relies on the directory listing? This is how it seems to work for our maven-central mirror with the sbt-scalafmt plugin. By looking at it with a path like this, I can see an html directory listing of all versions:
https://nexus-redacted.com/repository/maven-public/org/scalameta/sbt-scalafmt_2.12_1.0

Scala Steward (Coursier) is able to correctly gather the versions (again I assume from this and sounds like that from this thread in Steward). However, I'm finding a lot of contradictory information about whether or not this is available on different versions of Nexus3. Plus those that manage our Nexus is saying there is no option to turn this on.

Community post saying that it exists but is at a different path now <-- This seems to be the case
Sonatype ticket to create this feature
Another ticket for the raw tree view
Announcement saying it's now supported in 3.7
SO post saying it's in a different location now

From what I can tell, for our own internal nexus where I'd expect the directory listing to be like the sbt-scalafmt example above, it just 404's.
https://nexus-redacted.com/repository/redacted-releases/redacted/redacted/sbt-redacted_2.12_1.0

There is an html index of sorts at this url:
https://nexus-redacted.com/service/rest/repository/browse/redacted-releases/redacted/redacted/sbt-redacted_2.12_1.0/

However, looking through the code here, I don't believe that will work:
https://github.com/coursier/coursier/blob/59bf7739079f6b906ecb77435c8afce2d3658f2c/modules/core/shared/src/main/scala/coursier/maven/MavenRepository.scala#L208-L252
And when Scala Steward attempts to get the available versions of the plugin, it gets none and therefore doesn't send in prs for our internal sbt plugins. Which sort of leads me to believe that because of the lack of directory listing there, Coursier isn't getting the versions? Do you know if it's possible for Coursier to get the versions of an sbt plugin without the directory listing, or does that have to be there? Or could there be another check possible to capture this alternative html view the same way the other is captured?
EDIT: For the time being we just add in a custom release step to create / update the maven-metadata.xml file, but it'd still be great to see if what I mentioned above is the case or not.

@ckipp01 Could you share the code of your custom release step for maven-metadata.xml? struggling with the same problem currentyl

@ckipp01 We are also encountering this issue when trying to utilize scala-steward for our internal sbt plugins. We tried to use arktekk/sbt-aether-deploy to generate/update the maven-metadata.xml, but Nexus3 complains that the file is invalid when publishing.
Could you briefly outline how you were able to generate the correct maven-metadata.xml?

So this is a pretty hacky solution, but we essentially just included this as a custom release step (if you use sbt-release).
import java.nio.charset.StandardCharsets
import java.nio.file.Paths
import java.text.SimpleDateFormat
import java.util.Base64

import sbtrelease.ReleasePlugin.autoImport.ReleaseStep
import sbt.Project
import sbt.Keys
import sbt.internal.util.ManagedLogger
import Env._

import scala.xml.Elem
import scala.xml.Node
import scala.xml.NodeSeq
import scala.xml.XML

object MetaDataUpdate {

  /** An extra release step that is sort of hack specifically for an sbt plugin.
    * This step will look to see if there is an existing `maven-metadata.xml` file
    * (which sbt plugins don't produce when published maven style) and add the new
    * version to it or create a new one and push it up.
    */
  val step: ReleaseStep = ReleaseStep { st =>
    val logger       = st.log
    val extracted    = Project.extract(st)
    val name         = extracted.get(Keys.name)
    val org          = extracted.get(Keys.organization)
    val version      = extracted.get(Keys.version)
    val target       = extracted.get(Keys.target)
    val metadataName = "maven-metadata.xml"

    val creds = Base64.getEncoder
      .encodeToString(s"${nexusUsername}:${nexusPassword}".getBytes(StandardCharsets.UTF_8))

    val metadataLoc =
      s"${nexusAddress}/${nexusRepositoryPath}${org.replace(".", "/")}/${name}_2.12_1.0/${metadataName}"

    val outputPath = target.getPath() + metadataName

    val existingResponse = requests.get(
      metadataLoc,
      headers = Map(
        "Authorization" -> s"Basic: ${creds}"
      )
    )

    if (existingResponse.is2xx) {
      val rawText          = existingResponse.text()
      val existingMetadata = XML.loadString(rawText)

      val versions = existingMetadata \\ "version"
      val metadata = createMetadata(org, name, version, Some(versions))

      logger.info("Existing maven-metadata.xml found and being updated...")
      saveAndSend(metadataLoc, metadata, outputPath, creds, logger)
    } else if (existingResponse.statusCode == 404) {
      logger.warn("Existing maven-metadata.xml file not found. Attempting to create a new one...")

      val metadata = createMetadata(org, name, version, None)
      saveAndSend(metadataLoc, metadata, outputPath, creds, logger)
    } else {
      logger.error(s"${existingResponse.statusCode.toString()}: ${existingResponse.statusMessage}")
      // If something goes wrong here we just blow up
      sys.error("Something went wrong when requesting maven-metaldata.xml.")
    }

    st
  }

  private def createMetadata(
      org: String,
      name: String,
      newVersion: String,
      existingVersions: Option[NodeSeq]
  ) = {

    val newVersionNode = <version>{newVersion}</version>
    val versions = existingVersions match {
      case Some(existing) => existing ++ newVersionNode
      case None => newVersionNode
    }

    <metadata modelVersion="1.1.0">
      <groupId>{org}</groupId>
      <artifactId>{name}_2.12_1.0</artifactId>
      <versioning>
        <latest>{newVersion}</latest>
        <release>{newVersion}</release>
        <versions>
          {versions}
        </versions>
        <lastUpdated>
          {new SimpleDateFormat("yyyyMMddHHmmss").format(new java.util.Date)}
        </lastUpdated>
      </versioning>
    </metadata>
  }

  private def saveAndSend(
      metadataLoc: String,
      metadata: Elem,
      path: String,
      creds: String,
      logger: ManagedLogger
  ): Unit = {
    XML.save(path, metadata)

    val putReponse = requests.put(
      metadataLoc,
      headers = Map(
        "Authorization" -> s"Basic: ${creds}"
      ),
      data = Paths.get(path)
    )

    if (!putReponse.is2xx) {
      logger.error(s"${putReponse.statusCode}: ${putReponse.statusMessage}")
      sys.error("Unable to update metadata")
    }
  }
}

It's pretty self-explanatory, but it will just check to see if there is a metadata file, and if not create one. If it does fine one, it just updates it. It's using requests-scala for the calls.

Which sort of leads me to believe that because of the lack of directory listing there, Coursier isn't getting the versions?

I'm a bit late to the party here, but yes, for sbt plugins, we rely on directory listings. As the plugin artifacts' paths aren't standard (the _2.12_1.0 appears in a directory name, but not in the filenames), it seems Sonatype doesn't generate or update maven-metadata.xml files itself.

Do you know if it's possible for Coursier to get the versions of an sbt plugin without the directory listing, or does that have to be there? Or could there be another check possible to capture this alternative html view the same way the other is captured?

If you push a maven-metadata.xml file yourself, as you do, there should be a way to have it picked… It should actually be checked if getting the directory listing fails (via the orElse). Maybe this code doesn't look for maven-metadata.xml at the right URL? It could be fixed then.

If you push a maven-metadata.xml file yourself, as you do, there should be a way to have it picked… It should actually be checked if getting the directory listing fails (via the orElse). Maybe this code doesn't look for maven-metadata.xml at the right URL? It could be fixed then.

Just to clarify, yes, it does work now with us creating the maven-metadata.xml file, but was curious if there was a solution where having that step to manually create one for sbt plugins on self-hosted nexus would no longer be necessary.

thanks for the great workaround, on my end I had to add check = false for this to work otherwise scala-requests 0.6.5  would throw
val existingResponse = requests.get(
      metadataLoc,
      headers = Map(
        "Authorization" -> s"Basic: ${creds}"
      ),
      check = false
    )

Hi! I came here from https://github.com/scala-steward-org/scala-steward-action/issues/209#issuecomment-799687563 and then https://github.com/scala-steward-org/scala-steward/issues/1628.
I have the same problem but for libraries (not sbt-plugins) published maven-style. There is no maven-metadata.xml and Scala Steward (using Coursier) can't find any updates.
Is there a way without the workaround with manually creating maven-metadata.xml?

@ckipp01  based upon the coursier code path, it looks like if you set: val sbtModule: ModuleID = Defaults.sbtPluginExtra("com.example" % "sbt-plugin-example" % "0.1.0", scalaVersion.value, scalaBinaryVersion.value) these two attributes will enable: https://github.com/coursier/coursier/blob/master/modules/core/shared/src/main/scala/coursier/maven/MavenRepository.scala#L284
Do you know if this was being set to true and still failing?

Hey @er1c, ironic you are commenting on this now 😆 I was actually just looking at something related because I'd really love to get complete working on a private nexus like it does on maven central, and also for snapshots. There is a related issue to this one here: https://github.com/coursier/coursier/issues/1700 where it gives some more details, but all my digging sort of shows that much of this is related.
To answer your question, yes, even with that it won't work. It will work if it's a mirrored sbt plugin, or an sbt plugin on maven central. Mainly because in both of those cases the metadata file is where it's supposed to be, or there is an html index that can be scraped in the expected place. Once you have a self-hosted nexus or you are trying to complete snapshots, this all sort of goes out the window.

@ckipp01 thanks for the update, I'm playing with the s3 plugin, and got parts of it coursier-friendly, but the scala steward is still a problem: https://gist.github.com/er1c/f149b74673e4a1e2120c7f5b06483e91#file-build-sbt-L89 & https://github.com/EVENFinancial/fm-sbt-s3-resolver/blob/master/src/sbt-test/fm-sbt-s3-resolver/scala-steward/src/test/scala/ScalaStewardTest.scala#L23
I've also had to (not published yet) split out the java dependency so it can be added to the csrConfiguration's extra class path: https://github.com/coursier/sbt-coursier/commit/92e40c22256bea44d1e1befbef1cb2a627f8b155#diff-910da7b2f4f62901095520e1d89c9f9b2fae0b2a61e39a15a6fde3890495d482R181 but that doesn't seem to get it to work actually calling the directory listing either (although my Cache/config still might be not setup properly)

I've changed one of our libraries to publish using https://github.com/arktekk/sbt-aether-deploy rather than sbt publish, to see if Steward could then see the updates- but no difference. the aether deploy does seem to be pushing metadata.
Looking around other threads I wonder if the issue is that CodeArtifact doesn't allow directory listings, and Coursier needs that. (I thought it was supposed to fall back to metadata though, but perhaps I've misunderstood that)

I came some years late to the party with the same problem, did someone find/implement a permanent fix?


2023 Update: Path URLs regex from class instead of options tag

2023 Updates:
1.) Update requirement dependency versions
For lxml library:

      building 'lxml.etree' extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for lxml
Failed to build lxml
ERROR: Could not build wheels for lxml, which is required to install pyproject.toml-based projects

For requests library:

ModuleNotFoundError: No module named 'urllib3.packages.six.moves'

\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\__init__.py:89: RequestsDependencyWarning: urllib3 (2.0.6) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

2.) Raw string invalid chars

invalid escape sequence '\/'
3.) New version checks for class containing a block of all the path urls and splits the paths using regex, instead of Options tag containing a list of values of path urls:
New Version:

https://www.chineseclass101.com/lesson/absolute-beginner-1-meeting-whats-your-name?lp=208

Old Version:

https://web.archive.org/web/20211129001640/https://www.chineseclass101.com/lesson/absolute-beginner-1-meeting-whats-your-name?lp=208

Please review @nedlir @dp247 @airmack @quique

@Miguel Please review too

Haven't used in a while, but looks okay.

Microsoft Windows [Version 10.0.19045.4651]
(c) Microsoft Corporation. All rights reserved.
C:\Users\ert>"C:/Program Files/Python312/python.exe" c:/Users/ert/Downloads/languagepod101-scraper-2023update/languagepod101-scraper-2023update/language101_scraper.py
Traceback (most recent call last):
File "c:\Users\ert\Downloads\languagepod101-scraper-2023update\languagepod101-scraper-2023update\language101_scraper.py", line 10, in
import requests
File "C:\Users\ert\AppData\Roaming\Python\Python312\site-packages\requests_init_.py", line 43, in
import urllib3
File "C:\Program Files\Python312\Lib\site-packages\urllib3_init_.py", line 7, in
from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
File "C:\Program Files\Python312\Lib\site-packages\urllib3\connectionpool.py", line 11, in
from .exceptions import (
File "C:\Program Files\Python312\Lib\site-packages\urllib3\exceptions.py", line 2, in
from .packages.six.moves.http_client import IncompleteRead as httplib_IncompleteRead
ModuleNotFoundError: No module named 'urllib3.packages.six.moves'
when open the language101_scraper that error appear what is the solution

Outdated, check #28


Source field does not allow to add a source that contains comma

URL
openstreetmap.org/edit
How to reproduce the issue?

do any change

hit save button (ctrl+s)

in the source > "add" filed add text containing a comma, e.g. http://example.com/?foo,bar

hit the enter key
Result: source wrongly gets split at the comma. neither wrapping in quotes nor trying to use a backslash to escape it works.

Seems to correctly work when adding source to a feature.

Work around: url escape the comma as http://example.com/?foo%2Cbar

Screenshot(s) or anything else?
No response
Which deployed environments do you see the issue in?
Released version at openstreetmap.org/edit
What version numbers does this issue effect?
2.27.3
Which browsers are you seeing this problem on?
Firefox

Another workaround is to add the source to via the changeset Tags textbox (key source).

It is not some kind of bug, it is done intentionally , In the context of domain names, the comma character is rarely used, while the semicolon; is commonly used as a delimiter. The code replaces all occurrences of , with ; in a given string. This is done intentionally to standardize the format of the data, making it easier to split the string into an array of substrings later on.

this the part of the openstreetcode , here it replaces all the ',' with ';' and then splits

Thank you. I think I read something like it is intentional for the sake of being able to mass add sources into the textfield - however could not again find the issue mentioning it now.
I just would have wanted a way to overcome this behavior.
I'm fine now as I found/was pointed to work arounds. Having this documented as an issue with work around info here may help others to find and solve it and so I will close this.


dbt_utils upgrade related improvements

Overview
get_columns_in_relation also accepts string parameters instead of Relation instances. These won't have information_schema property and therefore these queries will fail.
Improved exception handling
added macro split_part
Checklist

[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[ ] README.md updated and added information about my change
[x] I have run changie new to create a changelog entry

@findinpath : PTAL


[Feature request] Annotations

Annotations would be incredible. Metrics graphic has one of the simplest additions of annotations, but it is still lacking in finite control.
The two most important types of annotation (IMO)

Markers example
Region - example

#63 is a discussion over how this can be implemented; this'd probably be a level 2 feature, so may take a while to get around to doing this :)


KYLIN-4501 Support alluxio to adapt more storage like s3, oss ...

Proposed changes
Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.
Types of changes
What types of changes does your code introduce to Kylin?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices apply)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[ ] I have create an issue on Kylin's jira, and have described the bug/feature there in detail
[ ] Commit messages in my PR start with the related jira ID, like "KYLIN-0000 Make Kylin project open-source"
[ ] Compiling and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged

Further comments
If this is a relatively large or complex change, kick off the discussion at user@kylin or dev@kylin by explaining why you chose the solution you did and what alternatives you considered, etc...

CI not passed, please check it out~

Close this pr with multiple commits issue.


Generate Assertion Ops for interpolate_bilinear

Description
Enables the assertions to be included as part of the traced graph allowing functions traced with shapeless Tensors to be used for shaped instances and throw the proper exceptions.
Removed test_symbolic_tensor_shape because it is not supported as per KerasTensor update.
This CL prevents the updated code from being broken on the rollout of enabling subtyping for tf.function.
Fixes # (issue)
Type of change

[x] Bug fix
[ ] New Tutorial
[ ] Updated or additional documentation
[ ] Additional Testing
[ ] New Activation and the changes conform to the activation contribution guidelines
[ ] New Callback and the changes conform to the callback contribution guidelines
[ ] New Image addition and the changes conform to the image op contribution guidelines
[ ] New Layer and the changes conform to the layer contribution guidelines
[ ] New Loss and the changes conform to the loss contribution guidelines
[ ] New Metric and the changes conform to the metric contribution guidelines
[ ] New Optimizer and the changes conform to the optimizer contribution guidelines
[ ] New RNN Cell and the changes conform to the rnn contribution guidelines
[ ] New Seq2seq addition and the changes conform to the seq2seq contribution guidelines
[ ] New Text addition and the changes conform to the text op contribution guidelines

Checklist:

[x] I've properly formatted my code according to the guidelines

[ ] By running Black + Flake8
[x] By running pre-commit hooks

[ ] This PR addresses an already submitted issue for TensorFlow Addons
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] This PR contains modifications to C++ custom-ops

How Has This Been Tested?
If you're adding a bugfix or new feature please describe the tests that you ran to verify your changes:
*

Many SIG members have no visibility to the internal  CL

Hi bhack!
Sorry about that! I have added more details!

Enables the assertions to be included as part of the traced graph allowing functions traced with shapeless Tensors to be used for shaped instances and throw the proper exceptions.

I understand this but do we have this documented somewhere?

I am confused regarding what documentation would be ideal here?
To put another way, there is currently a bug in the code. If you have a generalized function:
fn = interpolate_bilinear.get_concrete_function(
tf.TensorSpec(shape=None, dtype=tf.float32),
tf.TensorSpec(shape=None, dtype=tf.float32),
)
And you call it on an invalid shape, say [1, 2, 1, 1]. Then error you get is not "Grid width must be at least 2." but "indices[0,0] = -1 is not in [0, 2)" that is being generated at a much lower level and is difficult to understand.

Ok, we have some failing test.

tensorflow.python.framework.errors_impl.InvalidArgumentError:  indices[0,0] = -1 is not in [0, 2)

Yeah those probably come from:  https://github.com/tensorflow/addons/issues/138
I think tf.function is stochastically parallelizing the asserts (which it shouldn't) leading to the flakiness.
I fixed them by using explicit control dependencies but it appears that the code compliance check is not happy with that. Even if the assert bug is fixed at head, the flakiness will persist for previous TF versions. So I think for the sake of code functionality, we should consider adding this file to the exceptions list.


Optimise the dependency graph when computing the EDB

Currently, the EDB for all predicates is computed for all queries. Instead, the rule dependency graph could be inspected and used to only use rules which precede the predicate of interest.

Fixed in 4020a1db6e4a7775016ef5741aa21f46aef11cdd.


Cherry-pick PR #795 into 4.5 branch.

4.5 was missing upgrade path, implemented that; please push again to force a travis build

@bhaisaab Done.

@borisroman not sure about the apache repo error, I'm having build failures when building locally due to getPreferredCharset method not avialable in StringUtils class (utils package). Please test locally and update the PR thanks.

Also there seems to be a license header issue (missing new line between header and package definition in the utils class).

@bhaisaab Updated the PR. Tests run fine now. Thanks for your time!

LGTM, merging this this is already merged on master and builds are passing on 4.5 branch now


Rollback migrations fail

Rolling back the migrations fail with the following error
SQLSTATE[HY000]: General error: 1828 Cannot drop column 'batch_id': needed in a foreign key constraint 'job_status_job_statuses_batch_id_foreign' (SQL: alter table `job_status_job_statuses` drop `batch_id`)

So either ignore foreign key checks during rollback, or drop the tables in the right order.
It happens while rolling back the second migration file:

Thanks a lot for your feedback and pointing out this bug - I've fixed it in #57 and will do a release this evening :)


run smoke test on snap

In order to do so shell_scripts/create_smoke_test_kit.sh should be patched to be able to take package names and versions from a pick, rather than from the current opam state (installed package).
This is because the snap is built in a container, and the only output is a snap.
I need to run a task (outside the container) that builds the smoke test from the same pick without installing all packages.
Then install the snap and run the smoke test.
@MSoegtropIMC does this make sense to you? Could you implement this?

You need opam anyway to get the sources. I think it makes most sense to create the smoke test kit when the snap file is created - opam is available then (it is not really needed any more, but I left it in expecting something like this).

opam yes, but the scripts looks for installed coq-* packages. Installing all of them requires running the platform scripts (again).

but the scripts looks for installed coq-* packages

ah, ok, thats what you mean. Makes sense.

Btw.: one could also merge the snap run with the ubuntu run and use the smoke test kit produced by ubuntu.

Yes, this is what i tried, but the pick is different... so the smoke would be off

Ubuntu builds all picks and all smoke tests (it just doesn't upload them as it looks ...)

I missed that. Then we could upload them with a name which contains the pick and download one in a third job which pulls the snap and the appropriate smoke kit. I'll try that on Monday I guess.

It would likely make the upload task more tricky. I recently had a (yet untested) idea to make matrix entries depend on - possibly complex - conditions. The idea to run the dev build only on scheduled jobs would look like this:
    strategy:
      fail-fast: false
      matrix:
        variant:
          - '8.14~2022.01'
          - '8.13~2022.01'
          - '8.12'
          - '8.15~beta1'
          - 'dev'
        shouldRunDev:
          - ${{ github.event_name == 'schedule' }}
        exclude:
          - shouldRunDev: false
            variant: dev

As I said this is yet untested but should work according to docs. The trick is to have a matrix variable which is defined as true or false depending on a condition and then one excludes the case that the condition is false.

This is fixed by commit 23264b632eaec8b183f168f8f1f16e34319a40c6.


Update brancher output

It's possible that there are true branch destinations without any false branch destinations. Both should be output (we were missing normal calls of the format ((callsite) (desination) (empty))

Can we merge this?


[luci-app-dockerman] Misspell fix in UI

@AHOHNMYC please add valid Signed-off-by to your commit with your real name and a valid email address.
Also update the commit message to luci-app-dockerman: fix spelling , we do not use [luci-app-dockerman].
Please have a look to the other commit messages in this repository

The dockerman is mainly developed in the repo https://github.com/lisaac/luci-app-dockerman. But some commits from the openwrt repo missing there and verse versa. It looks like the original repo is more active.
So it would be probably better to send a PR there. And then backport commits here.
Also please rename the keys in translations *.po files. The Weblate will pull the changes.

@AHOHNMYC Sorry, I overlooked that one. The change was already made by another commit.
https://github.com/openwrt/luci/commit/6afe7d91e5ae22008314de46e65310c9cf660edc


Reorganize the operator consoliation

Motivated by https://github.com/dotnet/docs/issues/10731#issuecomment-467576253  Thanks for the review @pkulikov
The current proposed lists mix organizational strategies.  Their should be a single organizational strategy that accomplishes:

When a reader searches for an operator, the article includes related operators for similar tasks. (for example, all the arithmetic operators are together, && and || are together).
Browsing a page explains a related set of concepts. (for example, . and ?. should be covered together)
The operators pages use a single organizational principle (the main motivation for creating this issue).

Note: we'll use the docs display name functionality to annotate the TOC nodes with the symbols for each operator so if a reader knows the symbol, the page can be quickly located in the "operators" section.

Assigning P0 because this must be resolved before work can begin on any of the following issues:
#10731
#10732
#10736
#10738
#10739
#10740
#10741

A number of observations/alternatives.

When a reader searches for an operator, the article includes related operators for similar tasks. (for example, all the arithmetic operators are together, && and || are together).

I'm trying to do that now when updating individual operator articles: include related operators into the See also section. However, it might be a too brief mention. What if we keep the page-per-operator approach and add the Related operators section to each page? Would it introduce too much duplication?
I partially like the approach in the Visual Basic TOC:
https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/operators/operators-listed-by-functionality
Not a fan of the only-list-of-links pages, but TOC might be structured in this way, only with leaves being the links to the individual pages.
That way, it's possible to have a TOC per organizational strategy (possible downside - blown up TOC).
It looks that I'm searching for the solution which preserves individual pages, but adds the layer on top. That layer would reference individual pages. For example, what about having an article per organization strategy? C# operators - precedence. C# operators - functionality. I'm not sure if the arity needs its own article, though.
One advantage of having such a layer on top is that it's a change with a lesser impact (no need to remove old articles and setup redirections). That also makes it easier to experiment: no burden to select one strategy now: let's try one and if it doesn't work — ok, let's check another one. Or, as mentioned above, it's possible to publish two different views on operators: those two views are separate, do not depend on each other, but reference the same set of operator articles. And later-later, after observing how it would work out, it's an option to select the one strategy and "inline" operator articles.

By the way, I'm not extremely against consolidation of individual articles; some consolidation is beneficial and I'm for baby steps in this direction. I think those following, for example, already can be merged (even within current doc structure):

== and != into equality operators article
<, >, <=, and >= into relational operators
<< and >> into shift operators

From above, I say I gravitate to functionality as organizational strategy. However, some operators might be in a group that contains only one operator, others might be considered belonging to several groups. That's why I think that additional layer on top of individual articles would be helpful: it would allow to mention one operator within different groups.
For example, I think & and | belong to the logical operators (together with !, ^, &&, and ||... and true and false) (ok, I assume here that logical operators work only on bool operands). At the same time, those two belong to the operators one uses to work with bits (together with ~, ^, >>, and <<) (and applied to integral operands). Two sections (or maybe articles) describing each group would be useful.
However, the individual article on & is still useful, because it supports the following scenario: "Hm... I see the symbol in the code. What does it mean? Please, give me all the information about this symbol". The current doc structure supports that scenario: the plain one-level operators TOC is useful when searching for a symbol, which meaning is unknown. I think this scenario still should be supported. In particular, that means that an operator (symbol) should be fully covered in one article. Therefore, an existing individual operator article should never be split, but fully merged into another article, if such a merge is necessary.
When to merge? I would say, If a new article has still only one clear topic. That's why == and != go in together well, but & and | are not so well. Each of the & and | is already about several things, so merging them into one would increase a number of topics in one article, might make that merged article complex.
Talking about existing structure and the use case it supports (and, I assume, still should support), there is another use case, which is not supported now and I think all the new issues about abridged references target fixing that use case. That is, "OK, I know what this symbol means. Where is it usually used? What other operators do typically go with this one?", or "I want to do some math with numerics: what are the available operators?", or "I want to play with bits: what can I do?". Again, I'm for additional overview reference to cover this use case: it allows mentioning the same symbol in different contexts and also some operators might be completely omitted from those overviews if they don't fit any; at the same time they still would appear in the good-old-plain-TOC and would be searchable. It's kind of top-down, helicopter-view approach. It's complimentary to the bottom-up approach, which is now in the docs on operators. And I think both approaches should be supported by the doc structure.
I stop, I talk too much. @BillWagner what are your thoughts? Do I understand your intention for abridged references correct (as described in the previous paragraph)?

@pkulikov I appreciate the thought you've put into this.  It's one reason why having a plan, issues, and a proposal helps discuss and improve as early in the process as possible.
I took another look at creating an organization based on usage. It's better, but probably not perfect. There's a lot that I like in your analysis:

From above, I say I gravitate to functionality as organizational strategy. However, some operators might be in a group that contains only one operator, others might be considered belonging to several groups. That's why I think that additional layer on top of individual articles would be helpful: it would allow to mention one operator within different groups.

I am leaning in that direction. My first attempt was to put every operator in a single group, with none in single or miscellaneous groups. That doesn't work. I also really dislike a misc. group: that would send readers to an article with unrelated concepts.

[Another supported scenario should be]  "OK, I know what this symbol means. Where is it usually used? What other operators do typically go with this one?", or "I want to do some math with numerics: what are the available operators?", or "I want to play with bits: what can I do?".

Yes, and I want to take that further: this is the primary use case, once the spec is published on docs (with some keys in docfx.json to get to more details on a single operator. Put another way, can the overview pages be enough, if they include interactive examples and links to pertinent spec docs? I'm not sure, but I want to keep trying with outlines a bit longer...

Here's the 2nd pass at a functional based outline:
Arithmetic operators

++ Operator (prefix and postfix)
-- Operator (prefix and postfix)
* multiplication
/ division
% remainder
+ addition
- subtraction
<< left shift
>> right shift
+  unary positive
-  unary negative
~  bitwise complement
checked / unchecked
arithmetic compound assignment operators

The above comment about "work with bits" means maybe shift should go in its own group, with bitwise &, | and ^

Relational and equality operators

== equality
!= not equal
< less than
> greater than
>= greater than or equal
<= less than or equal

I'm open to the idea of splitting equality and relational into two separate groups.

Type testing and assignment

is (and is with assignment)
as
= (assignment)
? (nullable) ! (null forgiveness)
switch expression
true, false (operators)
typeof operator
(T) explicit cast

Logical operators

!  unary logical not
& logical and
| logical or
^ logical XOR
&& conditional and
|| conditional or
?? null coalescing
? : conditional (ternary)

There's a good case to be made that ?? belongs with ?..

string constant tokens

@ verbatim string
$ interpolated string

Instantiation and initialization

new operator
default(T), default default value operator
delegate
=> lambda declaration
, compound declaration
{} block / compound statement

This group feels a bit forced.

Member access

. member access Operator
() method call Operator
[] array access Operator
?. and ?[] null conditional access and index Operators

** Pointers and unmanaged types**

->
& address of
* dereference operator

Other operators and special tokens

:: (namespace alias qualifier)
nameof
sizeof
await

These should each get their own page. I can't create any logical grouping for any of the four.

@BillWagner

Put another way, can the overview pages be enough, if they include interactive examples and links to pertinent spec docs?

It depends. Below is one more take on the topic.
Current approach to operator reference consolidation
The main idea is to have a number of the operator overview articles. An overview article describes a group of related operators. Operators are put in a group based on their usage/functionality. The current list of groups is in the comment above.
At minimum (or to start with), an overview article would include the corresponding sections from the current operator reference docs with interactive examples.
What happens with the individual operator articles?
Can those be removed completely by merging into the corresponding overview article?
Every article should be considered separately:

Some operators don't belong to any group (for example, ::). Their individual pages stay as they are now.

Some operator symbols have only one meaning and belong to only one group. Examples are a group of equality operators and a group of relational operators. Their current pages can be merged together with an H2/H3 heading per operator (I assume, an individual operator still should be linkable). For those, overview pages seem to be enough.

Some operator symbols change their meaning depending on the type of operands, but those meanings are related (in particular, go together in the spec). For example, let's consider the binary + operator, With the current division proposal, it would end up in the group of arithmetic operators.
Question: where and how are string concatenation and delegate combination described/mentioned? It would be out of topic to provide related examples and details in the article about arithmetic operators. Also, it doesn't seem that there is another group overview to cover those. I would say that an individual article most probably should stay in place.
One might say that the related language spec section might be the replacement of an individual operator article. My concerns about language spec are further below.
(By the way, note that the / and % operator articles might be fully merged into the arithmetic operator overview. However, that would mean that such an overview should distinguish between integer and floating-point arithmetic. Given checked/unchecked operators/keywords, that separation looks highly probable, anyway.)

At last, there are operator symbols that have very different meaning. An example is the & operator, which ends up in the group of logical operators and in the group of pointer-related operators. That means, that existing article must be split: one part goes to one overview, while the rest of the article goes to another overview.
Question: how then does a reader would learn about all possible meanings of the & symbol, given he faced such a symbol in the code and didn't know what it meant? Currently, the corresponding article in the docs is the only place. The language spec talks about the logical AND and the address-of operators separately, without cross-linking.
A possible solution is to have two entries in the operators TOC for the & symbol: one for logical AND, another — for address-of. Such a solution works as long as every operator is included into some overview and can be linked (that's why an H2/H3 heading per operator in an overview).

To summarize:

It looks fine to leave group-less articles as is.
It looks fine to merge an article that clearly belongs to only one group into the corresponding overview.
It's even fine to split an article among multiple overviews, as long as every individual operator gets into some group and can be linked, or in other words, there would be still a way to provide an answer on the "What are all the meanings of this symbol?" question.

The hardest articles to deal with are those that contain sections that do belong to some group AND sections that don't belong to any group. Those are +, +=, -, -=. There might appear others after further group revisions.
A possible solution for such articles is to keep an individual article as it is now. The overview would link it (in a "For more information, see..." way), AND an article would link the overview (in a "For overview of related operators, see..." way). There might be some duplication in text, but examples can be reused.
Remarks on the language spec
I would treat the language spec links as they are treated now: explicitly state that the link goes to the language spec and it's "for more information". In other words, I wouldn't replace the doc reference article on the + operator with the "Addition operator" section from the spec, because the language spec is harder to comprehend: for the first-time/non-experienced reader paragraphs about dynamic binding and binary operator overload resolution might be overwhelming.

A couple of miscellaneous comments:

I would definitely split the "Arithmetic operators" group into two distinct groups -- arithmetic operators and bitwise operators. Given that bitwise operators are far more specialized, having it in its own group makes the arithmetic operators group far less intimidating. (I'd also never think to look for bitwise operators in the arithmetic operators group.)

is also a string concatenation operator. That seems to be missing.

More generally, I really like the functional/category approach. I think that it makes sense to supplement it with a single-page list of symbols/keywords that link to the appropriate article.
I think that it's fine to have any entire category of operators in a single article, such as all arithmetic operators in a single article. Failing that, it seems to me to e a good idea to include a closely related group of operators in a single article. For example, +,  ++ (prefix), ++ (postfix), and += can be included, which allows the article to be a basic reference as well as serve as a simple tutorial for anyone who might use addition by one instead of ++ or x = x + y instead of x += y.
The problem is how to handle operators that fall in multiple categories. I think that the best way of handling them is to treat them separately, but to note the alternate use whenever there is one. (For example, to not include & as a bitwise AND operator when treating it as a logical operator, but instead to note the alternate meaning of the & symbol with a link to the logical operators topic.)

@BillWagner as for operator grouping, I would keep groups as small as possible to have overviews very narrow-focused. The following division is derived from your proposal.
Arithmetic operators

++ (prefix and postfix)
-- (prefix and postfix)
+ (unary and binary addition of numeric operands)
- (unary and binary subtraction of numeric operands)
* (multiplication)
/ (division)
% (remainder)
corresponding compound assignment operators
checked/unchecked

Bitwise operations

& (bitwise AND for integral operands)
| (bitwise OR for integral operands)
^ (bitwise exclusive-OR for integral operands)
~ (bitwise negation)
<< and >> (shift operators)
corresponding compound assignment operators

Logical operations (limited to bool)

& (logical AND for bool operands)
| (logical OR for bool operands)
^ (logical exclusive-OR for bool operands)
! (logical negation)
&& and || (conditional logical AND and OR operators)
true and false operators (note: it's still might be a separate article on its own and only referenced from the overview) @BillWagner what made you put those two operators into the "Type testing and assignment" group?
corresponding compound assignment operators

Relational operators

< (less than)
> (greater than)
<= (less than or equal)
>= (greater than or equal)

Equality operators

== (equal)
!= (not equal)

As relational operator are predefined only for numeric types, while equality operators are for a broader set of types, I consider them as separate groups.
Pointer-related operators

& (address-of)
* (pointer indirection)
-> (pointer member access)

Pointer arithmetic with ++, --, +, and - might also be included into the overview.
Member access

. (member access)
[] (array or indexer access)
?. and ?[] (null-conditional access)
() (method call)

Type testing, conversion and assignment

is (and is with assignment)
as
= (assignment)
? (nullable) ! (null forgiveness)
typeof operator
(T) explicit cast

@BillWagner why did you put the switch expression in this group? Cannot it be used in a broader context than only type testing?
Not-in-any-group operators

? : (conditional operator). Somehow, it feels out of tune with the logical operators.
?? (null coalescing). It also feels not in the logical operations group. Most probably, it's because I limit logical operations to those on bool operands.
+, += (string concatenation and delegate combination)
-, -= (delegate removal)
:: (namespace alias qualifier)
nameof
sizeof
await
=> (lambda declaration)

I would also not mix @ and $ into one string-related topic: those two features are of different size. Also, where would other two usages of @ go?

what made you put those two operators (true and false) into the "Type testing and assignment" group?

Not sure. I like your organization better here.

why did you put the switch expression in this group? Cannot it be used in a broader context than only type testing?

Is was thinking about pattern matching with is, as and switch. I think it might be better to put those three in a single overview where all the patterns can be shown. Thoughts?

Formal proposal
I like the proposal in the previous comment by @pkulikov
I'd like to adopt it as the resolution to this issue. I'll leave this open for further discussion until Wednesday. If there are no objections at that time, I'll update the related issues and close this discussion.

I think it might be better to put those three in a single overview where all the patterns can be shown. Thoughts?

I think to have a structured overview of pattern matching with all the patterns presented is a good idea. With that, should the "Type testing" overview still describe before-pattern-matching-era meanings of the is and as operators?

@BillWagner

...I'll update the related issues...

I'd be glad to work on those issues and compile the corresponding overview articles.

@pkulikov Thank you!
Let's start with the the arithmetic operator page. That's the most well defined of the consolidated pages.

I've updated all the issues for this set of pages. Closing this.


git pull on startup error, failing, hanging

The error message on re-starting Obsidian after installing the plugin is "URL not set", but the plugin doesn't allow a place to set repository URL.
The assumption is that the plugin would use the existing github repository information from the vault directory. However, that does not happen for me.
The message "git pull" in the status bar remains, and Obsidian is locked so I cannot use the UI to disable the plugin.
I ended up deleting the plugin folder from .obsidian/plugins to regain control of Obsidian.

Sorry, I don't know what's causing this error. Your Obsidian freezes, because of this error? Sounds a bit like #69 . Are there any other errors in the console? (CTRL + SHIFT + I) Hopefully with a bit more text than just "URL not set".

I reset my repository, did a couple of commits and re-installed the plugin.
Improvements:

Obsidian is no longer hanging or blocking work
error message has changed to: "Did not push. No upstream branch is set! See README for instructions"

At this point, it is the same as #76
closing, since redundant


Error in CppSharp.h when trying to wrap UTF16 Test with C++/CLI

I saw the TODO in UTF16 Test and added CLI generation for the test. I figured out many of the errors but finally i get:
Error	27	error C2664: 'System::String ^clix::detail::StringMarshaler<NetFromCxx>::marshalCxxString<2,SourceType>(const clix::detail::StringTypeSelector<2>::Type &)' : cannot convert argument 1 from 'const char *const ' to 'const clix::detail::StringTypeSelector<2>::Type &'	E:\GSoC\MonoProject_2015\CppSharp_New\CppSharp\include\CppSharp.h	103

at the return statement in CppSharp.h in this function:
// Marshals to .NET from C++ strings
    template<> struct StringMarshaler<NetFromCxx> {

      template<Encoding encoding, typename SourceType>
      static System::String ^marshal(const SourceType &string) {
        // Constructs a std::[w]string in case someone gave us a char * to choke on
		  return marshalCxxString<encoding, SourceType>(string);
      }

@ddobrev @tritao Any insight why this error would be there only after generating and compiling a certain code?!

Can you paste the region of code in the generated source that triggers this compile error?

I can't actually find that. Visual Studio is NOT showing any error in any part of the generated code.
When i build the solution, it simple shows this error only in CppSharp.h!

@tritao @ddobrev Suggestions please?! I am stuck and could not find anything to remove this error. I tried changing that template call with different types but to no avail. VS is just showing error on that line and is not giving any details as to from where the function was called.

@genuinelucifer @tritao will have to help you with this one, I have little idea about C++/CLI. In the mean time, if you have nothing to work on, could you please try https://github.com/mono/CppSharp/issues/508 ? I think it should be easy, I think char* can be always safely marshalled as StringBuilder with ANSI and wchar_t* as StringBuilder with Unicode.

@ddobrev I started the work on marshalling C++ strings to StringBuilder. Please review #532


Redo history is lost when saving HTML file and FormatOnSave results in no changes

Does this issue occur when all extensions are disabled?: Yes

Version: 1.67.2
Commit: c3511e6c69bb39013c4a4b7b9566ec1ca73fc4d5
Date: 2022-05-17T18:20:04.972Z (1 day ago)
Electron: 17.4.1
Chromium: 98.0.4758.141
Node.js: 16.13.0
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 21.4.0

Steps to Reproduce:

Set "files.insertFinalNewline": true
Create and save a HTML file with some content => a newline is ensured at the end of the file, this is good
Make a change and save
Undo once => nothing happens, this is bad
Undo a second time => the changes are undone
Save the undone changes
Try to redo => nothing happens, there's no redo history

Then change the language mode from HTML to Plain Text and repeat the steps: step 5 is not needed because only one undo is needed, which is correct, and step 7 succeeds because the redo history is kept after saving.
I'm used to being able to undo, save, and then redo, when any automatic formatting that occurs results in no changes (i.e. the file is properly formatted in all stages of the undo/redo history). I've been doing this consistently for the past 2-3 years, even with editorconfig and rubocop. I rely a lot on my redo history.
Seems like the bug is that an extra stage is added into the undo history when files.insertFinalNewline applies to the file, even though it results in no differences. Also occurs when files.insertFinalNewline is turned off and I have editorconfig insert_final_newline = true and extensions enabled; the reproduction steps above where written with extensions disabled, but the effect is the same: an extra stage added to the undo/redo history that contains no changes, so shouldn't be there.
Cheers, H =)

Code is here:
https://github.com/microsoft/vscode/blob/4a130c40ed876644ed8af2943809d08221375408/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.ts#L121-L137
I am not sure if I have to do something special to avoid a no-op edit messing with the undo/redo history, sounds like a editor issue to me.
@alexdima @hediet thoughts?

@bpasero Can you reproduce?
@henrahmagix I cannot reproduce. At step 4, undo works as expected for me:
https://user-images.githubusercontent.com/5047891/173075887-6372a6db-0409-4a65-8201-76b51be27bf1.mp4

Maybe there is an extension involved?
Can you try to run VS Code without extensions? From the command line (NOT the integrated terminal in Code), execute: code --disable-extensions and try your steps again to see if it reproduces. If you see it is an issue with the extension, please file it against the extension repository itself.

@bpasero Is that question to me? When I originally replicated this, I did so without extensions. But I did it via command palette "Developer: Reload With Extensions Disabled.

Got auto-upgraded to 1.68.0 and now can't replicate

Ah wait, sorry @bpasero, I can now replicate it when I also have "editor.formatOnSave": true and all extensions disabled.
https://user-images.githubusercontent.com/1429026/173103780-08c50290-fd29-415b-b3c9-a05999d08370.mov

Sorry @bpasero please reopen =)

I can reproduce when both these settings are enabled:

"files.insertFinalNewline": true
"editor.formatOnSave": true

Steps:

empty window, fresh user data dir
apply those settings
new index.html file
first line type something and save
type something again at the end of line and save
undo

=> 🐛 nothing happens
This seems to require both format on save and adding final new line.

Well, it looks we have a case of two features fighting it off :). When I remove "files.insertFinalNewline": true I can notice that on each save the last line is removed.
So here's what's going on:

the formatter save participant deletes the last line
then, the insert final new line save participant reinserts it
both these edits are grouped in a single undo step because we don't insert undo stops between save participants

Which effectively gives the illusion that the undo doesn't really do anything.

@jrieken @aeschli Do you have any thoughts what to do in this case? I can see a simple solution if the formatter would respect the setting "files.insertFinalNewline" and not constantly delete the last line. What do you think?

The workaround is to use the HTML setting html.format.endWithNewline. Setting that will make the issue go away.
I agree that it would be better to remove that setting and use "files.insertFinalNewline" instead. Working on a PR.

Fixed by https://github.com/microsoft/vscode/pull/152446


Webinterface freezes in Firefox

Gitea version (or commit ref): 1.12.1
Git version: 2.20.1
Operating system: Debian 10
Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No
[ ] Not relevant

Log gist:

Description
After upgrading from 1.11.0 to 1.12.1 the webinterface periodically freezes for about 30-60 seconds. After about 5 clicks (it does not matter what I click, I can go to the main page and press F5 to reproduce the issue) the browser seems to be stuck during page load.
The logfile (loglevel Trace) only shows the following every 10 secunds during the freeze
2020/06/23 14:13:40 ...m.io/xorm/core/db.go:154:QueryContext() [I] [SQL] SELECT user_id, count(*) AS count FROM notification WHERE user_id IN (SELECT user_id FROM notificatio
n WHERE updated_unix >= ? AND updated_unix < ?) AND status = ? GROUP BY user_id [1592914408<PHONE_NUMBER> 1] - 2.564311ms
2020/06/23 14:13:50 ...m.io/xorm/core/db.go:154:QueryContext() [I] [SQL] SELECT user_id, count(*) AS count FROM notification WHERE user_id IN (SELECT user_id FROM notificatio
n WHERE updated_unix >= ? AND updated_unix < ?) AND status = ? GROUP BY user_id [1592914418<PHONE_NUMBER> 1] - 2.689541ms

After 30-60 seconds the log shows that the request is preocessed and if I reload the page it works again for about 5 clicks
This only seems to happen when I use Firefox (77.0.1 Linux). Chrome seems to work just fine

Anything in the browser console? Is it the same on try?
(I'm running my instance on master and don't have any issues in Firefox)

I'm seeing the same thing as OP: personally run instance is stalling on web requests in Firefox, but not on the try.gitea.io instance. I'm not seeing anything in Firefox's console while the page load is stalled (no messages in Console, nor any activity in the Network tab).
Server information:

Gitea 1.12.1
with SQLite database
on Ubuntu 18.04LTS
with git version 2.17.1
served through an Apache 2.4.29 reverse proxy (HTTPS to client)

Client information:

Firefox 77.0.1 on Arch Linux
reproducible after restarting Firefox in Safe Mode

Looking at the Apache logs for the proxy, it might be the GET /git/user/events requests which are stalling (??).

Duplicate of #11978

Clear browser cache, that should fix freezing in single tab

@lafriks clearing the cache did not improved the situation. I'm in the same boat at the others

This is probably a key point: https://developer.mozilla.org/en-US/docs/Web/API/EventSource. In Firefox, there's a limit on the total number of EventSources used for each domain when the page is accessed via HTTP/1.1. I can confirm that the server where I've seen the problem only supports HTTP/1.1. (I have another which has HTTP/2 enabled, but it hasn't yet been upgraded to gitea v1.12 so I can't yet say for sure that it won't have problem eventually there, too.)

I can confirm this problem exists for me as well.  I've tried to clear browser cache in Firefox and it does not help.  This problem appeared in 1.12.0 and prevails in 1.12.1.
A buddy of mine also suspect it is related to EventSource.  It seems to be pointing that direction.  Right now I'm using Chrome / Chromium with no issue (only Firefox).

Had the same issue on Firefox with gitea 1.12.1 and a server using HTTP/1. I activated HTTP/2 on the server as mentioned by @jmert, and this bug didn't show up since. So, thank you @jmert  !

I am running my instance behind HAProxy. I can confirm, that the problem goes away for me as well after enabling HTTP/2 for this frontend in HAProxy.

I'm betting this is a duplicate of #11978

Closing as duplicate