Fixed scrollview inset when RN view is embedded in another view

Summary
I'm using RNN, which embeds RN view inside native view controllers.
On iOS 13, a modal view controller is "floating" and is offset from the top of the screen.
This causes the calculation of inset in KeyboardAvoidingView incorrect as it mixes local view controller coordinate space, with keyboard's screen coordinate space.
Changelog

[iOS] [Fixed] - Fixed KeyboardAvoidingView inset in embedded views (i.e modal view controllers on iOS 13)
Test Plan

Tested before and after in a simple view controller (should stay the same)
Tested before and after in a modal view controller (should be offset before, and fixed after)
Repeated no. 2 with each device rotation (upsideDown, landscapeLeft, landscapeRight)

Closed by mistake

@kelset This is an easy fix for modals presented in iOS 13, and iOS 14 is almost here....

hey Daniel, thanks for the ping. I can try to put this in front of the right people but can't make promises

This change will cause a delay in rendering as the measure is an async round trip to native.
I wonder if this change should be made on the native side and if the layout metrics are wrong for embedded views.

I tested in dev and production, there’s no side effects.
The inset is used for when keyboard is visible, which is not the default.
So when the scroll view shows, you calculate the correct position by measuring, not by causing another render. When keyboard shows- you use the precalculated value.

Ah, alright. That seems reasonable to me.

This needed to be reverted: https://github.com/facebook/react-native/commit/a37e45a57ef508bf9b413b64d1324294cec5e478
This caused an issue on the login screen of the Oculus app where the TextInputs were covered up with the login button. Hopefully @xyin96 can provide more info for you to debug and fix this.

@TheSavior @xyin96 Waiting for more info on this.
Are you sure the inputs weren't covered due to some workaround in the app?

@TheSavior I don't get it. This got reverted due to a regression in a different app (no matter who stands behind it) without even looking into the bug? Chances are there's a workaround in place because of this bug.

@danielgindi, I totally get where you are coming from. I'm hoping @xyin96 can give more info from the Oculus app so you two can figure out how to proceed.
Fwiw, there being a workaround to this bug that ends up being a problem with this fix is still reason for concern. Who knows how many other surfaces and apps have workarounds for the sad state of the KeyboardAvoidingView. If those screens all break during an upgrade, even if KeyboardAvoidingView is now more correct, it would be detrimental to those companies and apps and make the upgrade more difficult.
I'm hoping that @xyin96 can respond, and a path forward can be found that can make this work better out of the box but also not break existing screens with their current workarounds.

@TheSavior There is not a single release of RN that does not break a workaround somewhere, or even a valid piece of code. The problem with this issue is that it's actually is very difficult to workaround without glitches and re-rendering.
My "workaround" for RN projects includes a script that runs after npm install and changes some stuff - like migrating some Android imports to androidx. namespace, or applying fixes like the current one.

Hi @danielgindi, sorry for the late response.
I had begun to look into this a few days back, but got caught up in some other work items. It looks like in our case, the this breaks down because the KeyboardAvoidingView is not our container component.
e.g.:
<SafeAreaView style={{flex: 1}}>
  <KeyboardAvoidingView>
    {/* ... */}
  </KeyboardAvoidingView>
</SafeAreaView>

In this case, if you had tried to measure the layout of the KeyboardAvoidingView, it would have a height of 0.
I'm not too familiar with iOS. But I'm wondering if this fix is better done in the native ViewManager rather than in JS because this would also affect how this component works for Android.

Sounds weird, as it’s not the root in my case too. And it should not matter as the original code measures its frame relative to the root, not the parent. And the patch does the same, only considering that the root may be offset.
Is it possible though that some scroll offset is getting in the way here in your case?

@xyin96 Could you please post a sample screen that demonstrates an issue after the fix? I've tested this in all directions, can't see any issue.
Does it even happen on iOS or Android?
Are you using height, padding, or position mode? (on ios padding mode works best for scrollviews in my experience)

@TheSavior I request for this to be re-merged.
I've tested this thoroughly in every condition imaginable. The offsets always come out right. Wrapped in SafeAreaView, unwrapped, wrapped in ScrollView, unwrapped, with contentInsetAdjustmentBehavior='never' or default, with all behavior modes, inside an iOS 13 modal view controller, inside a normal view controller with navigation bar, without navigation bar, and all possible combinations of all options above.

@xyin96, can you help @danielgindi get a repro for the issue that Oculus had?
I can't remerge this as is. If this gets landed again as is, it would have the same effect. It would break Oculus and Oculus would revert it. It would require me getting familiar with the Oculus app and getting a repro for you myself which I don't have the bandwidth for, so I'm hoping that @xyin96 can help. I recognize this is unfortunate and doesn't leave you with an easy way to move forward. :-/


Wrap user-provided python code in RestrictedPython

This seems like the easiest and most direct thing to spin out of #121.

Downgraded due to adding the ENABLE_PYTHON setting to gate Python access much more strongly.


GH-37880: [CI][Python][Packaging] Add support for Python 3.12

Rationale for this change
Python 3.12 will be released in the next couple of weeks. We should add the wheels for pyarrow on our 14.0.0 release.
What changes are included in this PR?
This PR adds jobs to build pyarrow wheels for Python 3.12.
Are these changes tested?
They will be tested via archery tasks
Are there any user-facing changes?
No but users will be able to use pyarrow with Python 3.12

Closes: #37880

@github-actions crossbow submit cp312

@github-actions crossbow submit wheel-macos-mojave-cp312-amd64

@github-actions crossbow submit wheel-manylinux-2-28-cp312-amd64

@github-actions crossbow submit wheel-manylinux-2-28-cp312-amd64

@github-actions crossbow submit wheel-macos-mojave-cp312-amd64

I am facing some issues when updating setuptools with numpy:
        File "/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-build-env-2rp89sp0/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 16, in <module>
          import setuptools.version
        File "/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-build-env-2rp89sp0/overlay/lib/python3.12/site-packages/setuptools/version.py", line 1, in <module>
          import pkg_resources
        File "/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-build-env-2rp89sp0/overlay/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2172, in <module>
          register_finder(pkgutil.ImpImporter, find_on_path)
                          ^^^^^^^^^^^^^^^^^^^
      AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
      [end of output]

This seems related to: https://github.com/pypa/pip/issues/12179

@github-actions crossbow submit wheel-macos-mojave-cp312-amd64

@github-actions crossbow submit wheel-manylinux-2-28-cp312-amd64

@github-actions crossbow submit wheel-macos-mojave-cp312-amd64

There seems to be an issue compiling grpcio with Python 3.12:
https://github.com/grpc/grpc/issues/33063
It seems it will be released soon as v1.59.0-pre1 seems to contain a fix for it: https://github.com/grpc/grpc/releases/tag/v1.59.0-pre1
I am facing the same issue on the macos wheels here: https://github.com/ursacomputing/crossbow/actions/runs/6328784518/job/17187734569#step:13:10233

@github-actions crossbow submit wheel-macos-mojave-cp312-amd64

@github-actions crossbow submit cp312

@github-actions crossbow submit cp312

@github-actions crossbow submit wheel-macos-big-sur-cp312-arm64

A PR for pythonnet is here https://github.com/pythonnet/pythonnet/pull/2249

A PR for pythonnet is here pythonnet/pythonnet#2249

Hi @terencehonles thanks for this. I am not entirely sure what is the relation between the Pythonnet PR and this one, could you expand? Thanks!

ok, I've just seen the Integration conda failure :)
+ pip install pythonnet
Collecting pythonnet
  Downloading pythonnet-2.5.2.tar.gz (1.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 23.0 MB/s eta 0:00:00
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: pycparser in /opt/conda/envs/arrow/lib/python3.12/site-packages (from pythonnet) (2.21)
Building wheels for collected packages: pythonnet
  Building wheel for pythonnet (setup.py): started
  Building wheel for pythonnet (setup.py): finished with status 'error'
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [59 lines of output]
      /tmp/pip-install-gcdj18td/pythonnet_45b6370628694cb0b3522eb2ed08f807/setup.py:468: SyntaxWarning: invalid escape sequence '\*'
        "MSBuild\**\Bin\MSBuild.exe",
      /tmp/pip-install-gcdj18td/pythonnet_45b6370628694cb0b3522eb2ed08f807/setup.py:533: SyntaxWarning: invalid escape sequence '\*'
        "MSBuild\**\Bin\MSBuild.exe",
      running bdist_wheel
      running build
      running build_ext
      /bin/sh: 1: mono: not found
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-gcdj18td/pythonnet_45b6370628694cb0b3522eb2ed08f807/setup.py", line 630, in <module>
          setup(
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-install-gcdj18td/pythonnet_45b6370628694cb0b3522eb2ed08f807/setup.py", line 612, in run
          return bdist_wheel.bdist_wheel.run(self)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/wheel/bdist_wheel.py", line 364, in run
          self.run_command("build")
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/command/build.py", line 131, in run
          self.run_command(cmd_name)
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
          self.build_extensions()
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
          self._build_extensions_serial()
        File "/opt/conda/envs/arrow/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
          self.build_extension(ext)
        File "/tmp/pip-install-gcdj18td/pythonnet_45b6370628694cb0b3522eb2ed08f807/setup.py", line 249, in build_extension
          self._install_packages()
        File "/tmp/pip-install-gcdj18td/pythonnet_45b6370628694cb0b3522eb2ed08f807/setup.py", line 438, in _install_packages
          subprocess.check_call(cmd, shell=use_shell)
        File "/opt/conda/envs/arrow/lib/python3.12/subprocess.py", line 413, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command 'mono tools/nuget/nuget.exe update -self' returned non-zero exit status 127.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pythonnet
  Running setup.py clean for pythonnet

@raulcd I can fix the conda integration failure.

Attempted fix for conda-integration in https://github.com/apache/arrow/pull/37990

@github-actions crossbow submit cp312

The storage testbench is only used for testing, does it really block packaging?
Also, the storage testbench could actually use a different Python, though it certainly complicates the CI setup.

As I suggested on the issue I opened on storage testbench our alternative is to disable it temporarily. I plan to wait a couple of days and go that route to unblock it for our 14.0.0 release if there is not a new release from them.

I think it would be good to have nightly wheels for python 3.12 as soon as possible, so personally I would go ahead already with disabling the tests temporarily, and then if they release in a few days, we can update on our side.

By the way, perhaps pipx would make it easier to manage the storage testbench installation?

Ah, it looks like the testbench wouldn't support pipx as is...

@github-actions crossbow submit cp312

CI ARM failures are unrelated and they are tracked here: https://github.com/apache/arrow/issues/37999

For the record, I created https://github.com/googleapis/storage-testbench/issues/544 for pipx support in the storage testbench.

I think we can merge this, and re-enable the testbench in a follow-up?

Ideally, we would only disable the testbench on Python 3.12, so that GCS supports still gets some testing on other versions.

@pitrou @jorisvandenbossche I am not around until Tuesday, I won't be able to follow up the change for GCS only disabled for Python 3.12 until I'm back.

@github-actions crossbow submit cp312

@github-actions crossbow submit cp312

@github-actions crossbow submit cp311

@raulcd There is no point in using pipx if you don't modify the invocations in the C++, Python and R tests.

Also the whole point of using pipx would be to decouple the Python version for the GCS testbench, and the Python version under test.
So you probably want something like pipx install --python <some_python_executable_that_works_with_gcs_testbench>.
See https://pypa.github.io/pipx/docs/#pipx-install

@pitrou ok, I've never used it before so I was just trying. Probably better to do that on a different PR then.

@raulcd Looks like there is a lint failure.

@github-actions crossbow submit -g wheel

@github-actions crossbow submit wheel-macos-mojave-cp310-amd64

@pitrou @jorisvandenbossche any other concern here? I would like to merge it.

@github-actions crossbow submit -g wheel -g python

Let's make sure the 3.10 version change didn't break anything else?

There are a lot of fsspec/s3fs errors that are unrelated to this PR.
test-conda-python-3.12 also fails installing dependencies from conda-forge, because gdb seems incompatible with Python 3.12. This can probably be fixed later.

I think the CI results are ok otherwise, so we can merge.

A merge with main might be sufficient to get rid of the failures? We saw the same yesterday in the encryption PR, and after a merge they went away.
But indeed, if the triggered wheels builds are passing, that's probably also good enough to merge this directly.


a few type improvements, mostly flight related

Hi, really appreciate your work on adding these stubs. I thought I'd open a PR with some minor additions/corrections encountered in my usage, mostly in the pyarrow.flight package, with one in pyarrow.ipc. I'll leave comments inline with sources.

Thank you very much for providing these improvements!


fix(package): modify semantic-release build

Deploy preview for pf-next ready!
Built with commit ef73a43c8ecb2a1826fe6b41f7236f6302cc35bf
https://deploy-preview-233--pf-next.netlify.com


Clicking should not zoom

As clicking on nodes is central to the experience, it should not automatically zoom in OpenSeadragon. Double-click can trigger zooming instead, or the user can use a scroll-wheel, pinching or the +/- buttons.

The magical formula is
gestureSettingsTouch : {clickToZoom: false, dblClickToZoom: true},
gestureSettingsMouse: {clickToZoom: false, dblClickToZoom: true},


Investigate using a third-party packaging/install system

Probably one that's better than CPack

Could work with CPack after all


ds/linter/markdown

downstream-only: document repository maintenance
ci: disable dependabot PR creation
[DOWNSTREAM-ONLY] build: hide the CSI-Addons Operator from the UI
[DOWNSTREAM-ONLY] build: use Red Hat icon for UI
[DOWNSTREAM-ONLY]: document process for resolving conflicts
[DOWNSTREAM-ONLY] remove Yug from OWNERS
[DOWNSTREAM-ONLY] ci: disable Dependabot PR creation
[DOWNSTREAM-ONLY] ci: disable Dependabot PR creation
cleanup: update OWNERS_ALIASES
redhat: point to the right upstream project in the README
[DOWNSTREAM-ONLY] cleanup: address MarkDown linter issues

Great, trying the GitHib CLI and it created this PR in the wrong repo. Sorry for the confusion!

red-hat-storage/kubernetes-csi-addons#90 is the one I wanted,  in case someone is interested (used the gh pr create --repo red-hat-storage/kubernetes-csi-addons --fill command)


Current, Average, Min and Max as separate "first class gauge" elements

The Temperature Example shows a nice display of values with min max, current and old value. It has 8 display items in total which are aranged around each other with different sizes.
Instead of having this complex 8 part arrangement I'd prefere to be able to simply arrange a few of the items below each other with the same size.
E.g:
Current:
Min:
Avg:
Max:
How could I achieve this? I have looked at the source code but I couldn't find the "subgauges" to be handled like this.

Which temperature example are you referring to? Could you provide a screenshot?

If you are referring to the LcdSkin there is no way to re-arrange the parameters in the skin. To achieve this you have to create your own skin that can look whatever you like it to be.
So you simply create a skin that makes use of those properties from the Gauge class. Each skin in Medusa is just another visualization of the Gauge model and uses only the properties that are needed for this specific visualization.

Thx for the swift answer I was hoping to be able to reuse skin elements. I'll get back with screenshots later

Well if you attach a screenshot how it should look like and it makes sense there is no reason not to create another Lcd like skin. It just have to make sense for more than one person ;)

I tried to create an example and get screen shots for it but miserably failed.
I tried a variant of the LCDField class https://github.com/BITPlan/can4eve/blob/master/obdii/src/main/java/eu/hansolo/LcdField.java fiddling with the size factors and tried creating a Skin for this see https://github.com/BITPlan/can4eve/blob/master/obdii/src/main/java/com/bitplan/obdii/javafx/LCDPane.java.
The test does something

@Test
public void testLCDPane() throws Exception {
WaitableApp.toolkitInit();
LCDPane lcdPane=new LCDPane(2,2,200,30,LcdFont.LCD,"r1c1","r1c2","r2c1","r2c2");
SampleApp.createAndShow("LCDPane", lcdPane, SHOW_TIME*4);
}

The result is not even close to what I would like to get since I don't know how the actual redraw with painting the gradients needs to be activated.

So what about switching the lcd off in the gauge and use 4 lcd gauges for the values you need. So you don't need a new control, just combine existing ones.
You could also create a drawing of your ideas...does not have to be code...just need aketch of your idea.

Thx for getting back. Yes I only want the LCD gauge from main example. I simply could/can  not find it in the code of medusa.
In the meantime I got as far as:

By simplifying https://github.com/BITPlan/can4eve/blob/master/obdii/src/main/java/eu/hansolo/LcdField.java
and using SkinBase in
https://github.com/BITPlan/can4eve/blob/master/obdii/src/main/java/com/bitplan/obdii/javafx/LCDPane.java
The code now looks much cleaner and I start understanding what is going on.
Thank you for your offer to go by a drawing of my ideas.

with some labels will suffice.

The newest state of affairs is:

So it looks like the standard font robotoMedium does not show on my Mac.  What is the font used in the example Pressure Gauge?

The latest result is looking the way I would like it to look:

I am not sure whether the layoutChildren part is correct:
@Override
   public void layoutChildren(double contentX, double contentY,
       double contentWidth, double contentHeight) {
     super.layoutChildren(contentX, contentY, contentWidth, contentHeight);
     LcdField lcdField = this.getSkinnable();
     Label lcdText = lcdField.getLcdText();
     // lcdText.setTranslateX(-lcdField.getLcd().getWidth());
     lcdText.setTranslateX(-contentWidth / 2);
   }

I'd love to see that something like:
https://github.com/BITPlan/can4eve/blob/master/obdii/src/main/java/eu/hansolo/LcdField.java
is incorporated into Medusa at least as an example on how to create own Skins. For me this took a few hours although the result doesn't look too complicated.

I have given up this approach and I am using "standard" controls. From my point of view this issue may be closed. Still I'd suggest to refactor the code to make it more modular and understandable and allow the reuse of "subcomponents".

Well the whole idea is to create your own skin for the gauge class. That skin can contain whatever you like, means if you need a specific visualization, just create a skin for it.
It's not the idea to have parts of skins be reusable like subgauges etc.


Feat: To Add Two more different Genres

Describe the feature
Hi @anuragverma108
There are total 19 genres in Genre Section . I want to add two more genres. Kindly assign me it under GSSOC'24
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Assigned!


fix test linking

Issue #, if available:
Description of changes:
Some of the test programs fail to link without libkvspicUtils. This probably wasn't explicit before because each static lib before it just ate everything ... but with shared libs, you must be more explicit. Also, one of them wanted a threading link.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Closing due to failed address-sanitizer check. Please reopen if the changes in this PR are still a relevant fix for any issues.


Don't show nydusd config file to other users on host

Nydusd stores registry auth in its json config file on host. We'd better not store or expose sensitive information on host.
Now the configuration file has permission bits of 0644 which means non-root user can read the file.
To reduce the exposure risk, we should not let non-root user read it.

Better not to write the file to disk if possible.

Ture. Perhaps we can open a API from nydusd to pass AUTH


Debug<PHONE_NUMBER>

[Enter feedback here]

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

ID: c4e4e08c-f56d-93b8-074d-e076ece21ce1
Version Independent ID: c11a85db-a85f-0e18-5365-5c2f84ffc3c8
Content: ACPI Debugging - Windows drivers
Content Source: windows-driver-docs-pr/debugger/acpi-debugging.md
Product: windows-hardware
Technology: debugger
GitHub Login: @DOMARS
Microsoft Alias: domars

I don't see any feedback on this debugger documentation topic, so closing this issue. Thanks for your interest in our documentation.


GitLab

It supports GitLab or not yet?

@umarmughal at the moment not.

I don't expect this app to work with GitLab (or BitBucked, etc.) simply because it would require a ton of changes to the API and managing notifications and an events screen between both would be very challenging. This isn't a mobile git client, it's a mobile GitHub client.
That being said, I'm not sure where @housseindjirdeh stands on this. It would be doable to implement GitLab eventually, but I foresee a lot of ugly and confusing API code and a difficult UI/UX if we go that route.

Thanks for asking @umarmughal :)
@andrewda I couldn't have said it better myself. I agree that it would be amazing to have GitLab and BitBucket support in this app and the ability to switch between accounts but the amount of work required would be tremendous. It's something I thought of when I first built the app but it's not something I think we should think of doing anytime soon, especially since there's so much we plan on adding to app.
I'm okay with having an issue for this open (or closed - don't mind either way really) if anybody wants to discuss the potential of including such support in the future 💬

Closing this to get a clearer issue list.
Don't hesitate to continue the conversation here though 😉


Improve tests for adapters

Most classes are covered, other classes will be covered later
https://scrutinizer-ci.com/g/php-rpc/cruds/code-structure/master?elementType=class&orderField=test_coverage&order=asc&changesExpanded=0


Add dpi scaling support

Added initial support for dpi scaling, just an option in the settings for now, preferably this would automatically detected by reading the GFXSettings file
Closes #179

Looks fantastic!  Thank you again!


Composing and piping for Records

Question
Hey @gcanti ,
Got a quick one related to pipe and compose for Records.
Most of the methods from records follow, object first convention, like in lodash, i.e., traverserWithKey(option)(X, Y), where X is an object and Y is a function.
It makes piping and composing not possible, so in result there is no chance to make clean pointfree bigger computation since objects sits in the middle.
I was trying to flip these functions, but flip requires currying and after flipping & currying I got type checks errors and I’m not able to recreate type.
What would be awesome to have
import * as R from ‘fp-ts/lib/Record’
const computation = pipe(
  R.traverseWithKey(option)((val, key) => …),
  R.map(val => …)
  // …etc
)
computation(someRecord)

If I’m missing something, please let me know as I don’t want to use ramda and only option which I see right now, is to go with fromFoldable and toArray, but then, I'm switching type and I'd like to avoid such conversion.
Many thanks,
Damian
Which versions of fp-ts, and which browser and OS are affected by this issue? Did this work in previous versions of fp-ts?
"fp-ts": "^1.10.0"

@damianbaar before 1.0 fp-ts was more like rambda the problem is that typescript resolves types from "left to right" which makes the usage of a library hard that has the type given argument as last parameter. That is why @gcanti decided to move the type given parameter back to the left of the signature. You can still curry and flip by yourself but have to add all type information by yourself. The type can not be infered anymore by the compiler.

Also pipe (and flip, curry, etc...) doesn't play well with polymorphic functions
const of = <A>(a: A): Array<A> => [a]
const map = <A, B>(f: (a: A) => B) => (as: Array<A>): Array<B> => as.map(f)
const len = (s: string): number => s.length

const computation = pipe(
  of,
  map(len) // doesn't type-check
)

would it be possible to attach key as second argument

we could add *WithKey variants (like map/mapWithKey and traverse/traverseWithKey).
We could also add some new related type classes

FunctorWithIndex (https://pursuit.purescript.org/packages/purescript-foldable-traversable/3.4.0/docs/Data.FunctorWithIndex)
FoldableWithIndex (https://pursuit.purescript.org/packages/purescript-foldable-traversable/3.4.0/docs/Data.FoldableWithIndex)
TraversableWithIndex (https://pursuit.purescript.org/packages/purescript-foldable-traversable/3.4.0/docs/Data.TraversableWithIndex)
FilterableWithIndex ??? (missing in purescript-filterable)

is there any construction available to have Kleisli compositions?

No (I'm afraid that kleisli composition would suffer the same issues of compose / pipe), you may want to do a rewrite using chain
declare const g: (a: string) => Option<number>
declare const f: (b: number) => Option<boolean>

const h = (a: string) => g(a).chain(f)

is there any chance to make concat variadic?

No but you can use fold (from Semigroup or Monoid) for that

but if function would be curried then we can specify last argument upfront

You MUST rather than you can, it would be awkward.
With TypeScript point-free style is a lost cause (for now), therefore this library is optimized otherwise.

sounds great, thanks for all the answers. Cheers.


[FR]Combine search and install "I'm fealing lucky"

For example one may want to install  and he can type only one or two words from it's name and do brew install -s <one-or-two-words> which will install formula with exact match.
Inspired by ArchLinux' yaourt package manager, which prompts user with available package names with numbers in front of it and user can install some of them by putting numbers in prompt. It is default behavior for yaourt word, which very useful if you feel boring googling for package names and package manager keys.

@vitorgalvao thanks for correction.

You can accomplish this by using the shell completions. You brew install <one-or-two-words>⇥ and it completes the result. Even better, if the thing you typed was ambiguous (i.e. no suitable match) it’ll let you know.

I mean for packages like google-chrome-* in cask. For example one may just install brew -s chrome

$ brew search chrome
chrome-cli                               chromedriver

I understand your feature request, but frankly can’t picture the core team spending the time to do it. Maybe a PR would be accepted, but even that I’m doubtful.
Though not my decision in the end. Just wanted to make sure first your request couldn’t be accomplished another way.

Sorry, this isn't something we'll implement for now. Thanks anyway.


Add TouchBar Cheatsheet to Demos

it seems like this is more geared towards developers. maybe we should have a different section for development tools?


Add Project Folder Keyboard Shortcut Misbehaving

Prerequisites

[x] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
Using Atom on Windows 10, the Add Project Folder keyboard shortcut (Ctrl+Shift+A) does not respond to the first use of the shortcut, but will respond to the second use.  Once a project folder has been added via this method any other action taken afterward will prompt it to trigger once again, causing a major annoyance.
Steps to Reproduce

Open Atom
Use the Add Project Folder keyboard shortcut once (Ctrl+Shift+A).
Open the Command Palette with a keyboard shortcut, Ctrl+Shift+P.

Expected behavior: The Add Project Folder dialog window should appear after the first instance of the keyboard shortcut, but it does not until the Command Palette keyboard shortcut is triggered.
Actual behavior: Add Project Folder dialog window only appears after another keyboard shortcut is used.
Reproduces how often: 100%
Versions
Atom    : 1.20.0
Electron: 1.6.9
Chrome  : 56.0.2924.87
Node    : 7.4.0
apm  1.18.4
npm  3.10.10
node 6.9.5 x64
python 2.7.13
git 2.14.1
visual studio 2015
Additional Information
I always run Atom in full-screen mode.  Doesn't seem to make a difference, but thought it might be helpful.

What does the Keybinding Resolver (Ctrl+.) say when you use the Ctrl+Shift+A shortcut?

Looks like it was triggering shortcuts in the Git Plus package.  Git Plus had several shortcuts starting with Ctrl+Shift+A.  I removed those keymappings and Atom behaves as expected now.  Thanks!


Add audit logging support

Before this PR
The server could not record audit logs.
After this PR

==COMMIT_MSG==
The server now supports audit logging via an AuditLogEntry response extension.
==COMMIT_MSG==
This just implements the minimal integration required to allow the actual audit logging logic to be implemented externally. Once we're happy with something there we can think about pulling it into witchcraft-server.
Unlike other log types, we need to ensure that we've persisted audit log entries before the associated response is returned to the client.
Possible downsides?
We currently ensure the persistence requirement by flushing every log write. This is quite inefficient though. A better solution could be to allow async log requests to have an optional notification callback that could be used to still get the improved throughput of batched writes and flushes while still guaranteeing persistence.
We're now publicly reexporting the Conjure-generated audit logging definitions which we will need to be careful about when updating those definitions in the future.
Closes #73

Ping for review. I would like to use this as soon as it's available.

Yep, I'll cut a conjure-rust release once the two open PRs on that repo merge and then update this PR.


Google maps SDK v3  dead or in silent development?

Main question is:
Should we wait till v3 get out of beta or invest in searching for different mapping solution?
There is some annoying bugs with google maps SDK v2 which won't be fixed, because in v3 they do not exist (egz: flickering fill when changing polygon point's locations).
v3 BETA Has serious issues with loading performance. Loading even moderate amount of polygons to the map takes way longer than v2. It takes significantly longer to load even compared with MapBox.
There were no developments with v3 for over the year now. And i would just assume that it's dead. But you are still working on utils, which wouldn't make much sense if Google maps SDK for android is dead.

Hi @kirvis250, thanks for asking! Yes, V3 BETA is in silent development (I guess no longer silent as I write this message). It's been a long time in beta but definitely stay tuned for improvements.
Your feedback is very valuable and I suggest writing a note through the "Send Feedback" CTA on this page. This way, it's visible to our eng and product teams as they work on continued improvements to the Map SDK.

@arriolac Thank you for the answer. I now can be a bit more relaxed about that.
Will there be some way to reach objects displayed in map without having reference them in app code?
I mean that if you do addPolygon to map there should be getPolygons as well.
It's just an old inconvenience that i no longer care much about, but it still would be an improvement.
If you don't know that or can't tell it's okay.  It's just my curiosity taking over. :smile:

i will bump this "issue" since i am really interested in the stable version of this lib.
commits are rare at this repo (like 1-2 per month) and even more rare are the actually commits excluding some README edits etc
i love utils lib.i hope it will be updated soon.
PS.
check out my PR


Skip the entire ARGF.read_nonblock spec on Windows

Re #213

Thanks! And AppVeyor seems to confirm related failures are no longer in the log :+1:

:beers:


Frontend tests are KO (authentication.test.js)

From @cRicateau on June 2, 2017 17:37
Copied from original issue: theodo/pepiniere-open-source-generator#20

@ghamaide repaired in https://github.com/societe-generale/react-loopback-generator/pull/21
but still the whole npm test process is KO because of the linter on server-side


[doc-sprint] Linked to simple notebook pipeline example

Issue: https://github.com/kubeflow/website/issues/891

This change is

/ok-to-test
/assign

Preview: https://deploy-preview-941--competent-brattain-de2d6d.netlify.com/docs/notebooks/setup/

Thanks!
/lgtm
/approve


Make use of sudo to install tar

Signed-off-by: Johannes M. Scheuermann<EMAIL_ADDRESS>This PR: https://github.com/kubermatic/kubeone/pull/893 introduced a change to make the gobetween script also be usable on CentOS, sadly this breaks the ubuntu setup (since ubuntu uses the ubuntu user and not root):
openstack_compute_instance_v2.lb (remote-exec):   Checking Host Key: false
openstack_compute_instance_v2.lb: Still creating... [50s elapsed]
openstack_compute_instance_v2.lb (remote-exec): Connected!
openstack_compute_instance_v2.lb (remote-exec): E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
openstack_compute_instance_v2.lb (remote-exec): E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

What this PR does / why we need it:
Without this PR the provisioning of new clusters will fail with the error message from above.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Fix recursion bug in gobetween.sh script

/test all

/retest


Allow the kernel helper to commit directly to the repo instead of filing lots of issues

the bit at the end:
# Unset the testing flag so we can push
gsd_repo.testing = False
gsd_repo.commit("Add Kerenel IDs")
gsd_repo.push()


PolyGamma(n,0) for negative real part of n

Can this formula be implemented

https://functions.wolfram.com/GammaBetaErf/PolyGamma2/03/01/01/0002/

for PolyGamma(n,0) for negative real part of n?

The Mathematica help page says about PolyGamma[n, z]:

For arbitrary complex n, the polygamma function is defined by fractional calculus analytic continuation.

However, there is no single definition of fractional calculus. Thus it seems that whatever definition Mathematica is using, it's not commonly used.
For example, Wikipedia's Polygamma page mentions a different kind of generalization of the polygamma function, using the Hurwitz zeta function. Wikipedia also has page about another extension of the polygamma function, https://en.wikipedia.org/wiki/Balanced_polygamma_function which seems to be also different than the one Mathematica uses. It also gives different values for PolyGamma[n, 0] when the real part of n is < -1.
So the answer is: no, because there is no commonly accepted definition of the polygamma function that would produce such values.


State interaction tracking issue

TODO:

[ ] https://github.com/celestiaorg/celestia-node/issues/569
[x] https://github.com/celestiaorg/celestia-node/issues/570
[ ] https://github.com/celestiaorg/celestia-node/issues/572

I would say we don't need a tracking issue for this anymore as it's not an actively worked-on workstream.
Merge workstream will engulf these issues anyway


[scrapers] scrape Le Lab Quantique.

Objectif

Scrape Le Lab Quantique website for quantum news.

@Angel-Dijoux thanks for the request! I didn't know there was a news section. Will it work yet?

I didn't know there was a news section

Yes since 2020 ! We have around of 35 articles in Le Lab Quantique website.

Will it work yet

Technically yes, we should write a article before or after each LLQ events, but right now isn't directly accessible because LLQ website is in maintenance mode.

I'll see to change the way I implement graphql in wordpress, maybe my queries can be changed, we will wait before merge !

@stubbi  You can merge it, if is okay for you!


Incorrect doc property

Hello,
It looks like that in the example for creating a UC object the property 'contentIndexingMode' is being used but I'm pretty sure it should be 'contentIndexMode' as per the other half of the doc.
It was just confusing until I realized it. If it's correct then can we get an explanation why?

@NorthMcCormick ,
I apologize for the confusion, I've looked in to the native source code, it should be contentIndexingMode. I'll make a follow-up commit to fix the typo on the doc.

@NorthMcCormick Thank you for finding this issue with the docs. The docs have been updated.
@renesansz Thank you for making your pull request. It has been merged.


Release 0.9.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

115 of 125 (92.0%)  changed or added relevant lines in 11 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.6%) to 91.143%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/hapi/pipelines/database/operational_presence.py
4
5
80.0%

src/hapi/pipelines/database/national_risk.py
5
7
71.43%

src/hapi/pipelines/app/main.py
4
11
36.36%

Files with Coverage Reduction
New Missed Lines
%

src/hapi/pipelines/database/humanitarian_needs.py
1
98.94%

Totals

Change from base Build<PHONE_NUMBER>:
-0.6%

Covered Lines:
813

Relevant Lines:
892

💛  - Coveralls


How to properly mock store

Hello everyone.
I'm trying to get the best possible way to mock a store in unit tests. I came up with a simple way to just mock getState method but I think there is a better solution floating around.
I have a simple CounterComponent:
import counter from 'stores/counter';
import { useStore } from 'effector-react';

export default function CounterComponent() {
  const counter = useStore(counter);

  return (

Current counter: {counter}

  );
}

And I want to unit test it and check that it's displaying value from the store but I don't want to test the store itself. So I came up with this:
import counter from 'stores/counter'

jest.mock('stores/counter', () => {
  const actualObject = jest.requireActual('stores/counter');

  return {
    ...actualObject,
    getState: jest.fn()
  }
})

describe('CounterComponent Unit', () => {
  it('should display counter from counter store', () => {
    counter.getState.mockReturnValueOnce(0)

    // just to make it shorter I skipped rendering and finding part of the test,
    // imagine that this is the result of testing-library or any other library
    const textContent = 0

    expect(textContent).toBe(0)
  });
});

How do you unit test in this case? Any suggestions?

I published an article about testing with effector
In short, you can use separate event to set store value before and reset it back after test
import {createEvent} from 'effector'
import {apiRequestFX, lastResults} from '../app'
let currentHandler
beforeEach(() => {
  currentHandler = apiRequestFX.use.getCurrent()
})
afterEach(() => {
 apiRequestFX.use(currentHandler)
})
const resetResults = createEvent()
beforeAll(() => {
  lastResults.reset(resetResults)
})
afterAll(() => {
  lastResults.off(resetResults)
})
test('api requests will be added to the end of lastResults list', async() => {
  resetResults()
  apiRequestFX.use(() => 'api response')
  await apiRequestFX()
  expect(lastResults.getState()).toEqual(['api response'])
  apiRequestFX.use(() => 'last update')
  await apiRequestFX()
  expect(lastResults.getState()).toEqual(['api response', 'last update'])
})

This is interesting, thanks. But I'm looking for something that would not require to execute any effects or events. For example for components that just use store and never call any effects or events.
Long story short, something that you can call and mock what's inside the store.

@pbelyaev Not sure this is exactly what you asked, but in my tests I usually do it like this:
import * as effector from 'effector-react';

const useStoreMock = jest.spyOn(effector, 'useStore');

useStoreMock.mockReturnValue(0);

@amandafsilva great, that's is closer to what I am looking for. Thank you. I have a question though - what if there are more than one useStore hooks used? How do you return a value for each one of them?

@pbelyaev with other hooks I managed to do that by chaining mockReturnValueOnce, I guess with useStore should work as well. So it'd be something like:
useStoreMock.mockReturnValueOnce(0).mockReturnValueOnce(1);

@amandafsilva hm, seems unstable. If there will be added a new useStore hook on the top of the component then test will fail. Unfortunately, jest mocking can not return value based on arguments (there is an issue regarding this feature https://github.com/facebook/jest/issues/6180) so the only way around is to mock actual implementation of useStore and check passed arguments returning value accordingly.
Anyway, thank you for this approach, I didn't think about mocking the hooks itself.

@pbelyaev no problem :) and yeah, it's not a pretty solution, but using chained mockReturnValueOnce/mockImplementationOnce was the only way I found in the jest docs to return different values to multiple calls of a funcion.
I just didn't understand why the test would fail if there was another useStore, though...

@amandafsilva well imagine you have a component like this:
const NewNotificationsAlert = () => {
  const username = useStore($userName)
  const notificationsCount = useStore($notificationsCount)

  return (

Hello, {username}! You have {notificationsCount} new notification(s).

  )
}

Test will have a mock like this:
useStoreMock.mockReturnValueOnce('John Doe').mockReturnValueOnce(10);

But then someone adds a new useStore hook at the top of the component:
const NewNotificationsAlert = () => {
  const importantNotificationsCount = useStore($importantNotificationCount)
  const username = useStore($userName)
  const notificationsCount = useStore($notificationsCount)

  return (
    <>

Hello, {username}! You have {notificationsCount} new notification(s).

{importantNotificationsCount} of them are/is important.

    </>
  )
}

Now previous test that probably expected some values to be displayed will fail because instead of
"Hello, John Doe! You have 10 new notification(s)."

it will show:
"Hello, 10! You have undefined notification(s)."

 Yeah, in this case, for every new useStore call, we'd have to add a new mockReturnValueOnce in the correct order:
useStoreMock.mockReturnValueOnce(2).mockReturnValueOnce('John Doe').mockReturnValueOnce(10);
"Hello, John Doe! You have 10 new notification(s). 2 of them are/is important."
I did a quick research and the last answer on here shows a way of mocking two useState, maybe it could work for useStore as well.

If you didn't find a better solution, I have a suggestion.
import counter from 'stores/counter';

jest.mock('stores/counter', () => {
  const { createStore } = jest.requireActual('effector');
  return createStore(30);
});

describe('CounterComponent Unit', () => {
  it('should display counter from counter store', () => {
    expect(counter.getState()).toBe(30);
  });
});


[REFACTOR] Refactor tests/python/mkl/test_subgraph.py to utilize Gluon API

Description

Replace symbolic test network definitions with HybridBlocks
Split huge tests/python/mkl/test_subgraph.py to few smaller files

Checklist
Essentials

[x] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[x] Changes are complete (i.e.


Not supported isTypeSupported method

This is not working
MediaRecorder.isTypeSupported(type)

It should work https://github.com/ai/audio-recorder-polyfill/blob/master/index.js#L244
What error do you have?

I'm not sure if this is a bad test, but I've tried a bunch of them on Safari 12.0.1 (macOS Mojave) to no avail with a whole bunch of codecs:
    const codecs: string[] = [
      'video/webm;codecs=vp9',
      'video/webm;codecs=vp8',
      'video/webm',
      'video/webm;codecs=vp8.0',
      'video/webm;codecs=vp9.0',
      'video/webm;codecs=h264',
      'video/webm;codecs=H264',
      'video/webm;codecs=avc1',
      'video/webm;codecs=vp8,opus',
      'video/WEBM;codecs=VP8,OPUS',
      'video/webm;codecs=vp9,opus',
      'video/webm;codecs=vp8,vp9,opus',
      'video/webm;codecs=h264,opus',
      'video/webm;codecs=h264,vp9,opus',
      'video/x-matroska;codecs=avc1',
      'video/mp4',
      'video/3gpp',
      'video/3gpp2',
      'video/quicktime',
      'video/x-m4v'
    ];

    const options = {};

    for (const codec of codecs) {
      // @ts-ignore
      if (MediaRecorder.isTypeSupported(codec)) {
        console.log('found matching codec', codec);
        options['mimeType'] = codec;
        break;
      }
    }

I have a feeling that having no mimetype set is not letting me record on Safari, as the following handler never receives an event:
  record() {
    ...
    this.mediaRecorder.ondataavailable = this.handleDataAvailable.bind(this);
    ...
  }

  private handleDataAvailable(event) {
    console.log(event); // this never logs in Safari, goes nuts in Chrome, Firefox
    if (event.data && event.data.size > 0) {
      this.recordedBlobs.push(event.data);
    }
  }

In Chrome this work fine (without audio-recorder-polyfill)
MediaRecorder.isTypeSupported("audio/webm")

The problem appears when I start using audio-recorder-polyfill
import MediaRecorder from 'audio-recorder-polyfill'
window.MediaRecorder = MediaRecorder

MediaRecorder.isTypeSupported("audio/webm")

I believe audio-recorder-polyfill extend not replace native MediaRecorder object. I was wrong?

This polyfill doesn’t support audio/webm (since webm encoder is huge). This polyfill convert audio only to .wav files. This is why it supports only audio/wav and audio/wave mime types. So polyfill result will be:
import MediaRecorder from 'audio-recorder-polyfill'
window.MediaRecorder = MediaRecorder

MediaRecorder.isTypeSupported("audio/webm") //=> false, since polyfill doesn’t have webm encoder
MediaRecorder.isTypeSupported("audio/wav") //=> true, since it encodes to WAVE format

We have plans to add ogg/vorbis encoder to polyfill, but it still will not encode to audio/webm (WebM is not the best format right now, this is why it is better to support better Vorbis).
If you want to have WebM support, you can use custom encoder:
MediaRecorder.encoder = require('./webm-encoder')
MediaRecorder.mimeType = 'audio/webm'

Is this behavior sounds reasonable for you?

Thank you for reply.
As for me, there is no needs to use require('./webm-encoder') because Chrome/Mozilla/Opera have native support of vorbis/webm/ogg.
All non-native solutions are unstable and should only be used if there is no alternative. I'm searching for MediaRecorder polyfill for Edge/Safari with fallback to native methods on Chrome/Mozilla/Opera.

because Chrome/Mozilla/Opera have native support of vorbis/webm/ogg.

Yeap, you do not need this polyfill on Chrome/Mozilla/Opera. Just don't load polyfill for them. It will have better performance than falling back to native methods.


Error on text.py

On PUNCTUATION var declaration found and syntax error, missing r before regex:
PUNCTUATION = re.compile(r'[^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}\s]')`

PUNCTUATION was never actually used so it was taken out by #6


Hope to support graceful shutdown

1. What version of Go and system type/arch are you using?

go version go1.17.6 darwin/amd64
2. What version of GoFrame are you using?

github.com/gogf/gf/v2 v2.3.2
3. Can this issue be re-produced with the latest release?
yes
4. What did you do?

gf init gf2demo && cd gf2demo

vi internal/controller/hello.go

func (c *cHello) Hello(ctx context.Context, req *v1.HelloReq) (res *v1.HelloRes, err error) {
	time.Sleep(time.Second * 15)  // ***** Add this line *****
	g.RequestFromCtx(ctx).Response.Writeln("Hello World!")
	return
}

gf build main.go

./main
Output:

2023-02-22 21:03:59.868 [INFO] pid[29185]: http server started listening on [:8000]
2023-02-22 21:03:59.868 [INFO] swagger ui is serving at address: http://<IP_ADDRESS>:8000/swagger/
2023-02-22 21:03:59.868 [INFO] openapi specification is serving at address: http://<IP_ADDRESS>:8000/api.json

  ADDRESS | METHOD |   ROUTE    |                             HANDLER                             |           MIDDLEWARE
----------|--------|------------|-----------------------------------------------------------------|----------------------------------
  :8000   | ALL    | /*         | github.com/gogf/gf/v2/net/ghttp.internalMiddlewareServerTracing | GLOBAL MIDDLEWARE
----------|--------|------------|-----------------------------------------------------------------|----------------------------------
  :8000   | ALL    | /api.json  | github.com/gogf/gf/v2/net/ghttp.(*Server).openapiSpec           |
----------|--------|------------|-----------------------------------------------------------------|----------------------------------
  :8000   | GET    | /hello     | gf2demo/internal/controller.(*cHello).Hello                     | ghttp.MiddlewareHandlerResponse
----------|--------|------------|-----------------------------------------------------------------|----------------------------------
  :8000   | ALL    | /swagger/* | github.com/gogf/gf/v2/net/ghttp.(*Server).swaggerUI             | HOOK_BEFORE_SERVE
----------|--------|------------|-----------------------------------------------------------------|----------------------------------

Execute curl localhost:8000/hello in another terminal window, and it will hang up for response.

The last step: Execute kill -SIGTERM 29185 to shutdown the server.

5. What did you expect to see?
The server waits for in-progress requests(step 6) to complete before shutting down the service.
And Step 5 output: Hello World!
6. What did you see instead?
The server terminated the service immediately, and ouput as follows:
2023-02-22 21:04:13.647 29185: server gracefully shutting down by signal: terminated
2023-02-22 21:04:13.648 [INFO] pid[29185]: all servers shutdown

And Step 5 ouptut: curl: (52) Empty reply from server

config.yaml :
server:
graceful: true
gracefulTimeout: 20

config.yaml : server: graceful: true gracefulTimeout: 20

I have tested this configuration before, it only works for graceful restart, not for graceful shutdown.

@windvalley It seams graceful shutdown is not supported in signal.


Enable prettier ESLint plugin/rules and formatters and format on save

This PR is trying to improve prettier related configurations to make sure contributors know as soon as possible (e.g. while editing code) that they have introduced a formatting error, and also make formatting more automatic to make it less likely that a formatting issue is even introduced.

.eslintrc.js: Enable the prettier ESLint plugin so that in VSCode you get red squigglies if introduce a formatting error.
settings.json: Enable formatOnSave.
settings.json: Since the formatting scripts defined in package.json includes *.{ts,tsx,js,json,scss,css}, I also specified that the associated file types should use the prettier formatter in VSCode (so that formatOnSave in those files will result in content that passes the command line prettier format check).
Since I added the above, it applies to all json files in the repo (not just those under packages/**/src. I don't want formatting changes to be unexpectedly applied next time someone makes a change to one of these files, so I ran the prettier formatter on these files as well. Some of these files will look like every line changed, but this is because prettier wants CRLF in json files, not LF.
package.json: The format and lint commands defined in package.json don't work on Mac. I updated the command so that it works on both Mac and Windows.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/14872/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14872/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14872/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/14872/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/14872/merge
https://gui.babylonjs.com/?snapshot=refs/pull/14872/merge
https://nme.babylonjs.com/?snapshot=refs/pull/14872/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/14872/merge#BCU1XR#0

Visualization tests for WebGPU (Experimental)
Important - these might fail sporadically. This is an optional test.
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14872/merge/testResults/webgpuplaywright/index.html

WebGL2 visualization test reporter:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14872/merge/testResults/webgl2playwright/index.html


[BUG] rancher-system-agent logs are filled with time parsing errors

Rancher Server Setup

Rancher version: v2.6.10
Installation option (Docker install/Helm Chart): docker install
Proxy/Cert Details: N/A

Information about the Cluster

Kubernetes version: v1.24.10+rke2r1
Cluster Type (Local/Downstream): Downstream

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider): provisioned ec2
1 node

User Information

What is the role of the user logged in? (Admin/Cluster Owner/Cluster Member/Project Owner/Project Member/Custom): Admin

Describe the bug

When accessing the VM via ssh and trying to view the logs of rancher-system-agent via journalctl -eu rancher-system-agent -f, it is spammed with the following error:
Mar 08 00:10:45 maxfix124-pool1-116a1e0c-bcqxg rancher-system-agent[1009]: time="2023-03-08T00:10:45Z" level=error msg="error encountered during parsing of last run time: parsing time \"\" as \"Mon Jan _2 15:04:05 MST 2006\": cannot parse \"\" as \"Mon\""

To Reproduce

Setup rancher
Provision an rke2 cluster
Download SSH key from one of the nodes
Retrieve logs for rancher-system-agent

Result
Spammed with time parsing errors
Expected Result

There should be no errors
Screenshots

N/A
Additional context

This doesn't block anything as far as I can tell, but it is frustrating when debugging other issues and gives the idea that there is something wrong occurring when there isn't.

We can probably add an empty string check here, but this is a benign error and will occur every time a periodic probe is run and has not ever successfully run (for example, on initial install of a cluster, it'll probably get emitted a few times).

I have the same issue

I just tested RKE2 setup from Rancher server. All nodes are VMs running on Harvester. Getting the same error. Tested on Harvester 1.1.1 and 1.1.2, with the same error.

After some investigation and a clarification from the Harvester team, it came to the point that RKE2 is using the first uplink available from the list. So, if your eth0 is listed first from  and is not configured or using an unreachable network, you won't be able to get CA from another node which is causing that parsing error in the log. When digging deeper I found that additional error before that parsing one.
error: level=fatal msg="starting kubernetes: preparing server: failed to get CA certs: Get "https:
//<IP_ADDRESS>:9345/cacerts": dial tcp <IP_ADDRESS>:9345: connect: connection refused"
So, RKE2 indeed is using the first IP available from the list, which is in my case <IP_ADDRESS> fake IP assigned automatically to VM from the Harvester if using a default mgm network.
I think RKE2 doc should have the statement somewhere that it's picking the first uplink on the list during the deployment, to prevent a confusion. The better solution is to make an option to chose which uplink to use when deploying an RKE2 cluster.

Same problem here.

Same problem here. +1

In case anyone stumbles upon this thread with the slightly more specific error of "Failed to list resource X, error parsing timestamp" (for me it was one of the *v1.ClusterRepo resources, which were preventing the cluster agent from starting), search for that datestring in all clusterrepos and just append a Z after the date to resolve the issue and get the cluster agent back online. I had multiple clusterrepos with the same format issue, once all are fixed the agent should come back online (you might have to trigger a restart though)


Federated Identity sample

Issue gh-538
Issue gh-499
Issue gh-106

Thanks @sjohnr ! This is now in main via 3fe6f866598068326f2aadc25779a7402a8b046e


fix bookkeeping language

https://glottolog.org/resource/languoid/id/chua1256

should be "Dananshan Miao"?

That does not seem to be so clear. @MacyL, what further hints on that variety did you find in the text?

@MacyL  -- any ideas what this could be?

it's chua1248 (Chuanqiandian), i will fix it now

fixed, thanks for pointing it out.

Awesome, thanks for fixing it :)


added ability to install via composer

installable via composer
added some documentation

+1

Fixed in https://github.com/phpunit/phpunit-testlistener-xhprof/commit/25e8c2811f11a6837056ba3fd5858d1984adf17c
Thanks!


Missing apps from PowerToys Run

Microsoft PowerToys version
0.68.1
Installation method
Chocolatey
Running as admin
No
Area(s) with issue?
PowerToys Run
Steps to reproduce
Starting PowerToys Run, normally or in "as admin", and try to type LibreOffice (for example, not the only one missing).
✔ Expected Behavior
Programs plugin to find LibreOffice installed.
❌ Actual Behavior
The closest match will be the ".lnk" file found by the Search plugin.
Other Software
No response

Are you still experiencing this issue? /needinfo


babel-preset-es2015 to babel-preset-env

Deploy preview for gestalt ready!
Built with commit d9190316962cb26a77c273ae76e89ea246e6fdc1
https://deploy-preview-85--gestalt.netlify.com

Warnings

:warning:

Please add a changelog.md entry for your changes.

  Generated by :no_entry_sign: dangerJS

@alirezavalizade 🙏 thank you very much!
@christianvuerings does this affect the .broserlistrc change that you have planned?


feat(workloadmeta): use startup health check for kubeapiserver collector

What does this PR do?
Switch the workloadmeta-kubeapiserver WorkloadMeta collector from a readiness health check to a startup one.
Motivation
The workloadmeta-kubeapiserver WorkloadMeta collector is using a readiness health check as a startup one. This was done before startup health check were available. We should make the switch from a readiness probe to a startup one.
Additional Notes
You don't need to explicitly close the channel. The startup health check needs to keep the channel registered during the life cycle of the process to be able to display the status of the startup health check.
Stop logs
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (subcommands/start/command.go:521 in start) | See ya!
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (comp/core/healthprobe/impl/healthprobe.go:57 in stop) | Stopping Health check
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (comp/remote-config/rcservice/rcserviceimpl/rcservice.go:123 in func2) | remote config service stopped
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/scheduler/scheduler.go:206 in Stop) | Waiting for the scheduler to shutdown
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/scheduler/scheduler.go:179 in func1) | Exited Scheduler loop, shutting down queues...
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/scheduler/scheduler.go:227 in stopQueues) | Stopping 1 queue(s)
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/scheduler/scheduler.go:234 in stopQueues) | Stopped queue 15s
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (pkg/collector/runner/runner.go:181 in Stop) | Runner 1 is shutting down...
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/runner/runner.go:206 in func2) | Runner 1 waiting for all the workers to exit...
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/runner/runner.go:209 in func2) | All runner 1 workers have been shut down
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (pkg/collector/runner/runner.go:215 in Stop) | Runner 1 shut down
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (pkg/clusteragent/admission/controllers/webhook/controller_v1.go:104 in Run) | Stopping webhook controller for secret default/webhook-certificate and webhook datadog-webhook
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/aggregator/demultiplexer.go:129 in sendIterableSeries) | Demultiplexer: sendIterableSeries: start sending iterable series to the serializer
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/aggregator/demultiplexer.go:135 in sendIterableSeries) | Demultiplexer: sendIterableSeries: stop routine
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (pkg/config/remote/service/service.go:438 in func2) | [Remote Config] Stopping Remote Config configuration poller
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (pkg/config/remote/service/service.go:404 in func1) | [Remote Config] Stopping Remote Config org status poller
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (pkg/clusteragent/admission/controllers/secret/controller.go:92 in Run) | Stopping secrets controller for default/webhook-certificate
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (pkg/util/kubernetes/apiserver/controllers/metadata_controller.go:99 in run) | Stopping metadata controller
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/worker/worker.go:210 in Run) | Runner 1, worker 1: Finished processing checks.
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/worker/worker.go:210 in Run) | Runner 1, worker 4: Finished processing checks.
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/worker/worker.go:210 in Run) | Runner 1, worker 3: Finished processing checks.
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/collector/worker/worker.go:210 in Run) | Runner 1, worker 2: Finished processing checks.
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (pkg/aggregator/aggregator.go:620 in sendServiceChecks) | Flushing 1 service checks to the forwarder
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (pkg/aggregator/aggregator.go:744 in run) | Stopping aggregator
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (comp/forwarder/defaultforwarder/default_forwarder.go:401 in Stop) | stopping the Forwarder
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (comp/forwarder/defaultforwarder/domain_forwarder.go:256 in Stop) | domainForwarder stopped
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (comp/forwarder/defaultforwarder/default_forwarder.go:401 in Stop) | stopping the Forwarder
2024-06-19 13:17:29 UTC | CLUSTER | DEBUG | (comp/forwarder/defaultforwarder/worker.go:96 in Stop) | Flushing one new transaction before stopping Worker
2024-06-19 13:17:29 UTC | CLUSTER | ERROR | (client-go@v0.28.6/tools/leaderelection/leaderelection.go:332 in tryAcquireOrRenew) | error retrieving resource lock default/datadog-leader-election: Unauthorized
2024-06-19 13:17:29 UTC | CLUSTER | INFO | (comp/forwarder/defaultforwarder/domain_forwarder.go:256 in Stop) | domainForwarder stopped

Describe how to test/QA your changes
With a Cluster Agent deployed using the Operator, check the startup health check. You should see the workloadmeta-kubeapiserver as healthy.
➜  datadog-dev git:(main) ✗ k exec -it deployments/datadog-cluster-agent -- curl http://localhost:5555/startup
{"Healthy":["healthcheck","workloadmeta-kubeapiserver"],"Unhealthy":null}%

/merge


Update H2 to 2.0.206 to address CVE-2021-42392.

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-42392

https://github.com/apache/flink/pull/18301

@Chromico Please close this PR as it's indeed a duplicate. Also, the vulnerability for Flink is not applicable since Flink only uses this dependency for testing purposes

Done :)


Safely encode HTTP headers

Currently HTTP header keys and values may contain non-ASCII characters. These  should be encoded on adding to the request object.

There is no standard for encoding HTTP header values. MIME encoding can be used but will not be automatically recognized by server. The application needs to take care of encoding and decoding.

iv_encode_mime can be used to safely encode a HTTP header value.

perfect !!
On Thu, Feb 22, 2024 at 9:23 AM m1h43l @.***> wrote:

iv_encode_mime can be used to safely encode a HTTP header value.
—
Reply to this email directly, view it on GitHub
https://github.com/sitemule/ILEvator/issues/43#issuecomment-1958931597,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAVIPHUY7QA6F5BDX4OT7UTYU36AVAVCNFSM6AAAAABDJC3GBWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJYHEZTCNJZG4
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


How to run Camus for fetching last 12 hours?

missing data which is last 12 hours ,how can I fetch

Do you have any logs or anything? It'll be hard to debug without any more information.


Multiple placeholder with animation

Hello
how can I have multiple placeholder to point out the list view?
the way I achieved this:
screen.js
isLoading ? [...Array(5)].map((o, i) => (<LoadingComponent key={i} />)) : (<List />)

and in LoadingComponent (actual code is more complicated):
<div style={styles.wrapper}>
    <ReactPlaceholder type='rect' showLoadingAnimation />
    <ReactPlaceholder type='text' showLoadingAnimation />
</div>

the problem here is I wanted to have an animation so I used ReactPlaceholder instead of RectShape or TextBlock, so I encounter warning:
The prop `ready` is marked as required in `ReactPlaceholder`
and
The prop `children` is marked as required in `ReactPlaceholder

I could pass null as a child and ready={false} but is there any better solution here?


Update UserGuide.md

Edit add and edit command

Coverage remained the same at 81.766% when pulling<PHONE_NUMBER>77b3b11c9299e3afa717a0873a28f6 on annabeleng-patch-1 into b99c8052571d392188d84c03c4109d2b315f69a1 on master.


Add CUSTOM_ACTOR environment variable

Note: this is a band-aid.  We need to figure out if it's possible to make this work without having to fork the repo.


Incorporating the availability of screen and depth textures for the GLES3 backend

The PR is for the implementation of SCREEN_TEXTURE and DEPTH_TEXTURE for the GLES3 backend.
The link for the testbed for this PR can be found here: https://github.com/the-brickster/Godot4Testbed/tree/master

This seems to go directly against #70967...?

This seems to go directly against #70967...?

Ah I overlooked that, most of this PR is still valid but it indeed reintroduces the renames.
So yeah, @the-brickster we don't need to re-add actions.renames["SCREEN_TEXTURE"] and related things. There is a new way of doing this by adding a uniform with a hint in your shader.
So in your test project, in your shader simply add:
uniform sampler2D my_screen_texture : hint_screen_texture;

Have a look at how things have changed in the Vulkan renderer if you're not sure. The PR Akien mentions should provide you all the further background.

Ahh ok, so that's why I needed to change it in my test project. I will get the required changes within the next day.

This seems to go directly against #70967...?

I have integrated those changes into my PR

@the-brickster I don't get it... How can this PR be "fixed" if the whole concept of SCREEN_TEXTURE and DEPTH_TEXTURE has been scrapped in #70967?
It hasn't been scrapped per se, it's just been replaced in favor of using hint_depth_texture and hint_screen_texture, you can confirm this by using the following test project I use:
https://github.com/the-brickster/Godot4Testbed/tree/master
Within the scene splat_test.tscn

@the-brickster To avoid confusion, you can edit the title and description of the PR. It would also be a good idea to include a link to the test project you're using in the PR description.

@aaronfranke @Riteo title changed and testbed project added

@clayjohn needs to do a more in depth review of the implementation.
But you could already squash the commits, which would be needed before merging. See PR workflow.
BTW for future PRs, we recommend using a dedicated branch on your fork for your PRs, and not your fork's master branch. This lets you have multiple PRs open and avoids issues if you mistakenly rebase a branch on your fork's master branch instead of the upstream master branch.

@clayjohn let me know if there any more changes that need to be done to line up with the spec

I believe the extra line breaks should be gone, it's just remnants of removing my testing code

There's some trailing whitespace in this file: https://github.com/godotengine/godot/actions/runs/4094173769/jobs/7068178311
Could you squash the commits? See PR workflow for instructions.

I did a rebase to godotengine/godot if you need help.
https://github.com/V-Sekai/godot/tree/gles3-screen-depth

@fire Thanks so much for the help

This seems good to me (aside from Bastiaan's code comment above that I seconded), but I don't feel confident enough in my rendering skills to add an approval. If Clay can take a look at it, that would be ideal!

@clayjohn changes pushed and rebased against master


bash: /apollo/third_party/ros/setup.bash: No such file or directory

when i run bash docker/scripts/dev_into.sh
i get the error:
bash: /apollo/third_party/ros/setup.bash: No such file or directory

You can ignore it if the first time. just try 'bash apollo.sh build' which will automatic pull the ros dependency (https://github.com/ApolloAuto/apollo/blob/master/WORKSPACE.in ,line 180) .  If after that this happens again, please describe your operation steps, we can check it together.

I think @iweey run the command "bash docker/scripts/dev_into.sh" with "root" user. This issue has been fixed in new dev image.


Update for new treasuredata APT key

Same as with #51, the package signing key has been updated. It is now
https://packages.treasuredata.com/GPG-KEY-td-agent

I have a manheim branch running in my fork that incorporates:

PR #40
PR #41
PR #53
PR #54
some additional rspec test fixes.

I currently have that tagged as pr40,41,53,54_and_spec_fixes. Feel free to use if you wish.


[warning] failed package validation and/or copy for commit 5abf76b5b1ca1b938eb5fdcf0a47e6b1ab66f3cc

Hi @conda-forge/pegasus-wms! This is the friendly automated conda-forge-webservice!
It appears that one or more of your feedstock's outputs did not copy from the
staging channel (cf-staging) to the production channel (conda-forge). :(
This failure can happen for a lot of reasons, including an outdated feedstock
token. Below we have put some information about the failure to help you debug it.
Rerendering the feedstock will usually fix these problems.
If you have any issues or questions, you can find us on gitter in the
community chat room or you can bump us right here.
output validation (is this output allowed for your feedstock?):

noarch/python-pegasus-wms-5.0.0-hd8ed1ab_0.tar.bz2: False

copied (did this output get copied to the production channel?):

noarch/python-pegasus-wms-5.0.0-hd8ed1ab_0.tar.bz2: False

error messages:

output noarch/python-pegasus-wms-5.0.0-hd8ed1ab_0.tar.bz2 not allowed for conda-forge/pegasus-wms-feedstock

Think this was fixed a while ago. Closing...


Update ci-fix cadl -> TypeSpec update

Documentation update for TypeSpec Validation. @mikeharder and @ckairen I mostly translated the language and updated a few links. Please let me know if any of these rules are no longer valid and we can remove them.

@mikeharder and @ckairen I'm going to merge this as I think this is more correct than what it currently is but you guys can feel free to update it based on the new took as it gets worked out.

@mikeharder and @ckairen I'm going to merge this as I think this is more correct than what it currently is but you guys can feel free to update it based on the new took as it gets worked out.

This is fine for now, but I think the docs will need a major update once the new TypeSpecValidation is live.


SSL support for HTTPS and WSS

Can launch servers in secure mode
./RunServer start https

Use Firefox to accept the self-signed certificates by visiting
https://localhost:4444
and then
https://localhost:4443

this was mainly for the WebSocket server. Getting a HTTPS server working is easy.
I'm going to switch to Flask webserver anyways, and this was done because if the webserver is HTTPS, then the WebSocket server must also use SSL.
We want to have our servers ready to be integrated in a real secure environment.


Atari Performance for PPO2

Describe the bug
PPO2 have bad performance on Atari games. For example, it does not converge on pong.
Code example
Using https://github.com/araffin/rl-baselines-zoo:
python train.py --algo ppo2 --env PongNoFrameskip-v4

System Info
Describe the characteristic of your environment:

Stable-Baselines v2.1.2
GPU
Python 3.6
Tensorflow 1.8

The explained variance is never good, it may comes from the value function...


Implement FromStr for enum Edition

Just did this as I came across the comment in the code asking for implementing std::str::FromStr for input::Edition.
Not sure what was meant by "proper error handling" though, panic! with a descriptive message might not be it :sweat_smile:

bors r+
Thanks!

If you're satisfied with from_str unwrapping in fixture::parse_meta(...), I think I'm pretty much done here.
Otherwise I'll need some pointers towards how you would like the error to be handled :slightly_smiling_face:

the best error-handing strategy in test fixtures is unwrapping :)
bors r+


Add Polish translations

Description
Added Polish translations for all entries
Type of change

[x] New feature (added a non-breaking change which adds functionality)

Thanks for contributing translations.
There's a new feature for week streaks where it counts as a week in the streak if you contributed any day Sun-Sat in a given week.
It would be helpful if you could also translate these two new phrases which currently only appear in some locales:
    "Week Streak" => "...",
    "Longest Week Streak" => "...",

Thanks, let me know if you have any questions

Looks great! Thanks for the contribution :tada:


Publishing newer releases to NPM

Last release published to NPM is 5.4.7. It seems outdated, since last release tag on GH is 5.5.2. Can you please make new release on NPM?

I think this is one you're looking for - https://www.npmjs.com/package/foundation-sites
The other names were taken when we registered with NPM and Foundation now has 3 frameworks (sites, emails, apps) so it makes sense.


[Usage]:Can vllm use a method similar to device_map in transformers ?

Your current environment

How would you like to use vllm
I have three 4090 GPUs with a total of 24*3 GB of memory, and the model I need to deploy requires at least 52 GB. The issue is that parallel deployment requires the number of GPUs to be divisible by 32, which is clearly not feasible. Can vllm use a method similar to device_map in transformers to specify how each layer is deployed to solve this problem?

you can use --pipeline-parallel-size 3 , see https://docs.vllm.ai/en/latest/serving/distributed_serving.html

you can use --pipeline-parallel-size 3 , see https://docs.vllm.ai/en/latest/serving/distributed_serving.html
Thank you for your guidance. Should I set the parameter pipeline-parallel-size to 3? Should tensor_parallel_size also be set to 3?

to be specific, it is --pipeline-parallel-size 3 --tensor_parallel_size 1 , the latter can be omitted as it is the default.

pipeline-parallel-size
After setting parameters, an error is reported：
Traceback (most recent call last):
File "", line 1, in
File "/data/logs/drone-exec/envir6767/model_lib.py", line 263, in load_with_engine
self.engine = LLMEngine.from_engine_args(EngineArgs.from_cli_args(self.args))
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 385, in from_engine_args
engine_config = engine_args.create_engine_config()
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/arg_utils.py", line 670, in create_engine_config
parallel_config = ParallelConfig(
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 698, in init
self._verify_args()
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 704, in _verify_args
raise NotImplementedError("Pipeline parallelism is not supported "
NotImplementedError: Pipeline parallelism is not supported yet with multiprocessing.

Related code:
if 'gemma' in self.name.lower():
print("模型为gemma")
self.args.pipeline_parallel_size =3
self.args.tensor_parallel_size =1
self.engine = LLMEngine.from_engine_args(EngineArgs.from_cli_args(self.args))
The above code is written into its own loading module.

Even if I follow the instructions exactly as in the document, it still won’t work.

from vllm import LLM
llm = LLM('/data/big_model/gemma-2-27b-it', pipeline_parallel_size =3)
INFO 07-20 13:05:45 config.py:695] Defaulting to use mp for distributed inference
Traceback (most recent call last):
File "", line 1, in
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/entrypoints/llm.py", line 150, in init
self.llm_engine = LLMEngine.from_engine_args(
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 385, in from_engine_args
engine_config = engine_args.create_engine_config()
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/arg_utils.py", line 670, in create_engine_config
parallel_config = ParallelConfig(
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 698, in init
self._verify_args()
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 704, in _verify_args
raise NotImplementedError("Pipeline parallelism is not supported "
NotImplementedError: Pipeline parallelism is not supported yet with multiprocessing.

it is a new feature, try to follow https://docs.vllm.ai/en/latest/getting_started/installation.html to install the latest main, or wait for the next release.

Is it possible to set the following parameter: distributed_executor_backend. After I set it up,
from vllm import LLM
llm = LLM('/data/big_model/gemma-2-27b-it', distributed_executor_backend = "ray",pipeline_parallel_size =3)
I got another error:
Traceback (most recent call last):
File "", line 1, in
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/entrypoints/llm.py", line 150, in init
self.llm_engine = LLMEngine.from_engine_args(
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 385, in from_engine_args
engine_config = engine_args.create_engine_config()
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/arg_utils.py", line 670, in create_engine_config
parallel_config = ParallelConfig(
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 698, in init
self._verify_args()
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 704, in _verify_args
raise NotImplementedError("Pipeline parallelism is not supported "
NotImplementedError: Pipeline parallelism is not supported yet with multiprocessing.

from vllm import LLM
llm = LLM('/data/big_model/gemma-2-27b-it', distributed_executor_backend = "ray",pipeline_parallel_size =3)
Traceback (most recent call last):
File "", line 1, in
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/entrypoints/llm.py", line 150, in init
self.llm_engine = LLMEngine.from_engine_args(
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 385, in from_engine_args
engine_config = engine_args.create_engine_config()
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/arg_utils.py", line 761, in create_engine_config
return EngineConfig(
File "", line 15, in init
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 1550, in post_init
self.model_config.verify_with_parallel_config(self.parallel_config)
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 269, in verify_with_parallel_config
raise NotImplementedError(
NotImplementedError: Pipeline parallelism is only supported for the following  architectures: ['AquilaModel', 'AquilaForCausalLM', 'InternLMForCausalLM', 'LlamaForCausalLM', 'LLaMAForCausalLM', 'MistralForCausalLM', 'Phi3ForCausalLM', 'GPT2LMHeadModel'].

it is a new feature, try to follow https://docs.vllm.ai/en/latest/getting_started/installation.html to install the latest main, or wait for the next release.

Is it possible to set the following parameter: distributed_executor_backend. After I set it up,
from vllm import LLM
llm = LLM('/data/big_model/gemma-2-27b-it', distributed_executor_backend = "ray",pipeline_parallel_size =3)
I got another error:
Traceback (most recent call last):
File "", line 1, in
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/entrypoints/llm.py", line 150, in init
self.llm_engine = LLMEngine.from_engine_args(
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 385, in from_engine_args
engine_config = engine_args.create_engine_config()
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/engine/arg_utils.py", line 670, in create_engine_config
parallel_config = ParallelConfig(
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 698, in init
self._verify_args()
File "/root/anaconda3/envs/guihun_doc_aigc/lib/python3.10/site-packages/vllm/config.py", line 704, in _verify_args
raise NotImplementedError("Pipeline parallelism is not supported "
NotImplementedError: Pipeline parallelism is not supported yet with multiprocessing.

please give a minimal reproducible example with full log.

oh, one thing to note, pipeline_parallel_size is not supported in LLM. you need to use it through openai api server. please carefully read the doc https://docs.vllm.ai/en/latest/serving/distributed_serving.html .


Programming Best Practices

Finally took a look at the page! Honestly, all the practices you featured are just absolutely good advice and actually made me look back at some of my code I wrote for my personal projects and think, "Hm, maybe I should at least try to follow these if I'm always coming back to my code and thinking, what the heck was I doing?". I don't know if I would have anything to specifically add, since I don't know if I'm even "qualified" enough to comment on good coding practices, but I guess the only thing I'd say is that, I like adding examples, and a few places I think an example would really pop out and be like "wow, that makes sense", lol. I'll try using the GitHub review thing to add what I mean

(I'm alive again!)
Added some examples for the commenting section. Hopefully this clears this up a little!


Rails Engine + OmniAuth = undefined method and no route matches

Hi, I just created RailsEngine with OmniAuth.
My engine is called Auth.
I added - lib/auth.rb
require 'devise'

config/routes.rb
  devise_for  :users, class_name: 'Auth::User', module: :devise,
              controllers: { omniauth_callbacks: 'auth/omniauth_callbacks' }

And I configured initializers/devise.rb like this
config.router_name = :auth
config.omniauth_path_prefix = '/auth/users/auth'

But when I visit /auth/users/sign_in, it raise error
undefined method `user_omniauth_authorize_path' for #<#<Class:0x007fb78db4ed70>:0x007fb78db4dfb0>

So I rewrote view and linked it directly to '/auth/users/auth/twitter'
This redirects me to twitter and when I confirm the dialog, it redirects me back and raise
No route matches [GET] "/auth/users/auth/twitter/callback"

This route doesn't exist, but exist: '/auth/auth/users/auth/twitter/callback'
root GET /     home#index
auth     /auth Auth::Engine

Routes for Auth::Engine:
        new_user_session GET      /users/sign_in(.:format)                    devise/sessions#new
            user_session POST     /users/sign_in(.:format)                    devise/sessions#create
    destroy_user_session DELETE   /users/sign_out(.:format)                   devise/sessions#destroy
           user_password POST     /users/password(.:format)                   devise/passwords#create
       new_user_password GET      /users/password/new(.:format)               devise/passwords#new
      edit_user_password GET      /users/password/edit(.:format)              devise/passwords#edit
                         PATCH    /users/password(.:format)                   devise/passwords#update
                         PUT      /users/password(.:format)                   devise/passwords#update
cancel_user_registration GET      /users/cancel(.:format)                     devise/registrations#cancel
       user_registration POST     /users(.:format)                            devise/registrations#create
   new_user_registration GET      /users/sign_up(.:format)                    devise/registrations#new
  edit_user_registration GET      /users/edit(.:format)                       devise/registrations#edit
                         PATCH    /users(.:format)                            devise/registrations#update
                         PUT      /users(.:format)                            devise/registrations#update
                         DELETE   /users(.:format)                            devise/registrations#destroy
       user_confirmation POST     /users/confirmation(.:format)               devise/confirmations#create
   new_user_confirmation GET      /users/confirmation/new(.:format)           devise/confirmations#new
                         GET      /users/confirmation(.:format)               devise/confirmations#show
             user_unlock POST     /users/unlock(.:format)                     devise/unlocks#create
         new_user_unlock GET      /users/unlock/new(.:format)                 devise/unlocks#new
                         GET      /users/unlock(.:format)                     devise/unlocks#show
 user_omniauth_authorize GET|POST /auth/users/auth/:provider(.:format)        auth/omniauth_callbacks#passthru {:provider=>/twitter/}
  user_omniauth_callback GET|POST /auth/users/auth/:action/callback(.:format) auth/omniauth_callbacks#(?-mix:twitter)

when I remove
config.omniauth_path_prefix = '/auth/users/auth'

then is callback route generated properly
 user_omniauth_authorize GET|POST /users/auth/:provider(.:format)        auth/omniauth_callbacks#passthru {:provider=>/twitter/}
  user_omniauth_callback GET|POST /users/auth/:action/callback(.:format) auth/omniauth_callbacks#(?-mix:twitter)

But it raise
Not found. Authentication pass thru.

When I access '/auth/users/auth/twitter'
I'm running on Rails 4 and Ruby 2

For me, I didn't have this issue - maybe it's because I mounted my engine at the root level, per this article (see "Routes" section):
http://tech.taskrabbit.com/blog/2014/02/11/rails-4-engines/
Devise version: 3.2.4
Omniauth version: 1.1.4
# Main Routes
mount MyEngine::Engine, at: "/"

# Model

module MyEngine
  class Account < ActiveRecord::Base
    devise :omniauthable, omniauth_providers: %I(google_oauth2)
  end
end

# Controller
module MyEngine
  module Accounts
    class OmniauthCallbacksController < Devise::OmniauthCallbacksController
      def google_oauth2
        ...
      end
    end
  end
end

# Config
config.omniauth_path_prefix = "/my_engine/accounts/auth"

# Routes
MyEngine::Engine.routes.draw do
  scope :my_engine do
    devise_for :accounts, class_name: "MyEngine::Account",
                          module: :devise,
                          controllers: { omniauth_callbacks: "my_engine/accounts/omniauth_callbacks" }

I have the same issue. Mounting engine that uses devise + oauth under different path than "/" causes "Not found, authentication pass thru" error.
I've tried setting OmniAuth::config.path_prefix = config.omniauth_path_prefix =  to include mounting path, but without success.
The workaround I've found is to mount engine at "/" and use namespaces, such as:
MyEngine::MySubModule::Engine.routes.draw do
  namespace :my_engine do
    namespace :my_submodule do
      devise_for :user_accounts,
        sign_out_via: [ :post, :delete ],
        class_name: "::MyEngine::MySubmodule::UserAccount",
        format: false,
        controllers: {
          sessions: "my_engine/my_submodule/sessions",
          passwords: "my_engine/my_submodule/passwords",
          registrations: "my_engine/my_submodule/registrations",
          omniauth_callbacks: "my_engine/my_submodule/omniauth_callbacks",
          unlocks: "my_engine/my_submodule/unlocks" }

    end
  end
end

Devise 3.4.1, omniauth 1.2.2, rails 4.2.0.

Thanks guys

ok

I have the same promble,my way is

I'm closing this issue because it has not had recent activity.
If you're still facing this on the latest version, please open a new one with all the information requested in the template.
Thank you!


Questionnaires without intro jump straight to the questionnaire

What
Cover page is optional.  This change modifies the navigator behaviour to only send the user to the intro page if the schema contains an intro.
How to test

Check out the branch
Enable dev mode and visit the dev console
Check each questionnaire
mci_mini should direct straight to the question, whereas the others will display an intro page

Who can test
Anybody except @weapdiv-david

LGTM :+1:


Migration Log

This is an auto-generated issue. The migration log is in the following comment(s).

Log Chunk 1
[2024-05-20T06:50:13Z] INFO -- Migration started by shubhajyoti-bagchi-groww from https://github.com/GrowwOld/react-native-custom-tabs to Groww-OSS/react-native-custom-tabs
[2024-05-20T06:50:14Z] INFO -- Migration ID: c8f8054d-62f3-4fd3-bf91-cf1490969980
[2024-05-20T06:50:14Z] INFO -- -----------------------------
[2024-05-20T06:50:14Z] INFO -- Git source migration started
[2024-05-20T06:54:25Z] INFO -- Git source migration completed
[2024-05-20T06:54:25Z] INFO -- -----------------------------
[2024-05-20T06:54:25Z] INFO -- Extraction started
[2024-05-20T06:54:31Z] INFO -- Extraction complete
[2024-05-20T06:54:31Z] INFO -- -----------------------------
[2024-05-20T06:54:31Z] INFO -- Transformation started
[2024-05-20T06:54:41Z] INFO -- Transformation complete
[2024-05-20T06:54:41Z] INFO -- -----------------------------
[2024-05-20T06:54:41Z] INFO -- Import started
[2024-05-20T06:54:42Z] WARN -- 'Allow Forking' setting could not be enabled for the repository because it is not enabled at the organization level.
[2024-05-20T06:54:53Z] INFO -- Import complete
[2024-05-20T06:54:53Z] INFO -- -----------------------------
[2024-05-20T06:54:53Z] INFO -- Migration complete
[2024-05-20T06:54:53Z] INFO -- -----------------------------


Figures aligned left after compiling

I am using ![conda](images/anaconda.png)  to insert a figure on a markdown cell. On the jupyter notebook, when i run the cell, the image shows aligned on center. However when i compile my docs using sphinx (i am using RTD theme) the images aligned on left.

Currently, nbsphinx uses pandoc to convert Markdown to reStructuredText which is then processed by Sphinx.
The call is comparable to this:
pandoc --from markdown-implicit_figures --to rst

Your input
![conda](images/anaconda.png)

... will be transformed to
|conda|

.. |conda| image:: images/anaconda.png

... which contains no information about alignment. So it's up to Sphinx to choose the alignment.
You may find a Sphinx option to change the default alignment?
Or you can try to use some custom CSS to get your desired alignment.
Or you can try to hack src/nbsphinx.py to do what you want.
If you come up with a satisfactory solution, feel free to make a PR!


Add option in preferences to show/hide status bar

Related to #2353
Description
Add option in preferences to show/hide status bar
On

Off

@ccordoba12 fixed!

Thanks! This is working as expected :-)

:+1: