On 1.0, restarting the docker container yields a "fresh" server despite being previously configured

Describe the Bug
I setup a fresh 1.0 server with no prior save files, used network mode of host to bypass the API issue we were seeing and configured a server as usual.
After configuring the server, setting admin pass, player pass, selecting a starting zone and generating it, I stopped/started the docker containe.
This yielded a "fresh" server where all configurations were gone. It behaved as if it had never been configured before (no name, no passwords set, etc).
Docker Compose File
Please censor anything sensitive. Your runtime command might look like this:
version: "3.5"
services:
    satisfactory:
        container_name: 'satisfactory'
        hostname: 'satisfactory'
        network_mode: host
        image: 'wolveix/satisfactory-server:latest'
        volumes:
            -  ${DOCKER_CONFIGS}/satisfactory/config:/config
        environment:
            - AUTOSAVEINTERVAL=300
            - AUTOSAVENUM=288
            - AUTOPAUSE=false
            - MAXPLAYERS=10
            - PUID=1000
            - PGID=999 # for the docker user
            - TZ=${TZ}
            - UMASK_SET=022 #optional
            - STEAMBETA=false
            - DISABLESEASONALEVENTS=true
        restart: unless-stopped

I am having the same problem. None of the settings (passwords, save intervals) or even the game saves themselves are persisting through a restart here is my docker compose
services:
    satisfactory-server:
        container_name: 'satisfactory-server'
        hostname: 'satisfactory-server'
        image: 'wolveix/satisfactory-server:latest'
        network_mode: "host"
        ports:
            - '7777:7777/udp'
            - '7777:7777/tcp'
        volumes:
            - '/root/apps/satisfactory:/config'
        environment:
            - MAXPLAYERS=4
            - PGID=1000
            - PUID=1000
            - ROOTLESS=false
            - STEAMBETA=false
        restart: unless-stopped
        deploy:
          resources:
            limits:
              memory: 12G
            reservations:
              memory: 4G

Same happening here

Same issue, data isn't being stored. Existing old saves also don't show up in the server.

Yep, known issue, thank you all. I'll look into this shortly

This should now be fixed. Make sure to docker pull wolveix/satisfactory-server:latest. Your image should then be a74d21334805 (see below):
root@petaluma:/opt/games# docker images | grep satisf
wolveix/satisfactory-server           latest              a74d21334805   2 minutes ago       404MB

If you're still experiencing issues, please re-open! :)

I think the problem is that the Ubuntu 24 Docker image now contains a default user ubuntu with the id 1000.
So the user steam gets the id 1001 (instead of 1000).
But the run.sh script is executed by default with the PUID and PGID env variables set to 1000.
Changing them to 1001 should fix this?

@Panzer1119 incredible, thanks for this! You're almost definitely 100% correct. I'll revisit this after Coffee Stain fix the connectivity issue with 1.0

Can I ask why the downgrade from Ubuntu 24 to 18 in the Dockerfile?

Alright, breakdown here:

This repo's Dockerfile creates a steam user. That user ID is or should be considered unknown, but on a clean Ubuntu image it would be 1000 or, since 24.04, 1001, as it's the first available UID on the system.

At runtime this container switches to PUID/PGID provided in the environment, default 1000/1000. It also chown's all of the bind mount files to the assumed UID/GID, and then runs steamcmd -- but as $USER.

In init.sh, look at lines 62-74. Assume rootless is false (default). What happens here is you are modifying the steam user to have the uid specified by PUID, but you do not account for a potential collision. If there is already an account with that ID the usermod command will just fail, and there's nothing handling it here in this bash script. Because the Ubuntu 24.04 base image added a user at uid=1000, there is now a collision, and now the script will proceed with steam staying as uid=1001, $USER=steam, and then you modifying all the file permissions every time you start up (line 93) to be chown'd by uid=1000 (the default value of PUID).

Lots of ways to go about changing this but the simple path would be to just run steamcmd using the PUID provided. If you have a PUID provided at all, you run steamcmd with that, and if PUID is not provided, you run it as the steam user (and you chown the files using that steam user's ID). I think that would solve it in a way that is less likely to break in the future.

@putnam is this also the case with Ubuntu 22.04?

As I reflect a little more on this I think $HOME won't be set properly if not run explicitly as the steam user.
Like, let's say you provide PUID=55000. The Dockerfile made a steam user, it has UID 1001 (or whatever it may be), but it also has HOME set to /home/steam where all the files are expected to reside. But if you just run steamcmd with gosu $PUID:PGID steamcmd I think it would not behave correctly.
So it probably requires more work than that little change.  I was just doing a little static analysis.

Yeah, I'd rebind $HOME I reckon. Great work! Looking forward to hopefully seeing a PR 👀

🎉 For me it seems to work now with image v1.7.3 (hash d5e93211f497) and this docker-compose.yml (network configuration because Unraid and macvlan):

docker-compose.yml
version: '3'
services:
  prod-satisfactory-new:
    container_name: 'prod-satisfactory-new'
    hostname: 'prod-satisfactory-new'
    image: wolveix/satisfactory-server:v1.7.3
    ports:
      - '7777:7777/udp'
      - '7777:7777/tcp'
    volumes:
      - '/mnt/user/appdata/prod-satisfactory-new/config:/config'
    environment:
      - MAXPLAYERS=5
      - PGID=1000
      - PUID=1000
      - STEAMBETA=false
      - ROOTLESS=false
      - SERVERGAMEPORT=7777
    restart: unless-stopped
    healthcheck:
      test: bash /healthcheck.sh
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 120s
    deploy:
      resources:
        limits:
          memory: 16G
        reservations:
          memory: 12G
    networks:
      br1.22:
        ipv4_address: <IP_ADDRESS>

networks:
  br1.22:
    external: true

After a stop and start of the container the save and settings are loaded correctly.
But the health endpoint of the container does not seem to work properly I think, it stated "Starting" all the time and then switched to "Unhealthy" after uploading a save.

@christianvw thanks for sharing! Did it stay in an unhealthy state ince you loaded the save? If so, would you mind opening a separate issue for this? It's late where I am (00:42) so I'll look into it in the morning :)

Yeah, I think rebinding HOME is enough. I just checked and steamcmd does use HOME from the environment instead of doing anything funky.
So what you need to do is change the gosu line to use PUID/PGID and bind $HOME to /home/steam. Personally I'd do the export at the top of run.sh rather than do it with an ugly bash -c in init.sh.
Example 1, bash -c version:
gosu $PUID:PGID bash -c 'export HOME=/home/steam; /home/steam/run.sh'
Example 2, do it in run.sh:
gosu $PUID:$PGID /home/steam/run.sh
(And at the top of run.sh add the line export HOME=/home/steam)
Defaulting PUID:PGID to a fixed number like 1000:1000 is okay, especially for backward compatibility for people who have existing files, so I think the above change is actually all you need.
The problem of people not understanding permissions will continue forever, and if you keep the default at 1000:1000 the tech support questions will be the same as they always were (i.e., why does user "ubuntu" own my satisfactory files? what do?).

Eh, it's a little hairier than I thought. steamcmd uses xdg to discover the homedir of the running user instead of caring about the environment variable. So it will require a little more work to get that functional. I'll poke around and send you a PR if I get to something that makes sense.

https://askubuntu.com/questions/1513927/ubuntu-24-04-docker-images-now-includes-user-ubuntu-with-uid-gid-1000
You could also remove the user or remap the uid as per bug report
Remapping: usermod -l steam ubuntu
Remove default user before creation: userdel -r ubuntu

Just in case someone is missing savefiles like us, there is always the overlay you can have a look into.
For example if you are doing snapshots of your filesystem you can retrieve savefiles from there.
Example is from k3s but this should be true for any other container runtime:
find /var/lib -iname *.sav
/var/lib/rancher/k3s/agent/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/<random number>/fs/home/ubuntu/.config/Epic/FactoryGame/Saved/SaveGames/server/<savegamename>.sav

Thanks for sharing @Cardes!

This problem is still happening. I run a server on TrueNAS Scale and had a instance setup with a persistent data volume mounted at /config and lost several days worth of play progress when i restarted it to update. sadly i had no snapshotting so I've lost that save entirely.

@atomic-squid no, this issue is not still happening. You were unfortunately running an old version of the image, from a very short window of time shortly after 1.0 released. I had patched the bug within an hour or so of implementing the Coffee Stain API workaround.
I'm deeply sorry that that data is lost, but it won't continue to happen with any version of the image currently available, unless your configuration mappings are wrong

For anyone else that stumbles across this, I did re-deploy all of the v1.7 images with the fix for this, so that if anyone rebuilt their container, the issue would be fixed moving forward. With the server update Coffee Stain put out yesterday, everyone running the faulty image will need to restart their container anyway, which will highlight the issue. I'm hoping that they'll then come here, see that it was unfortunately due to a bug, and then update their container either with their existing tag, or with the latest tag.


Different results inferenced by the same tflite from windows and android

I build up my facial emotion recognition module plugged into face_mesh_mobile pipeline, and make a subgraph of face_landmark_front_gpu.pbtxt base on face_landmark_gpu.pbtxt with the same input_streams ("IMAGE:image" and "ROI:roi"). I compile my android aar with the above modifications. Then I train my custom facial emotion recognition tflite which works fine in my tflite inference demo (using tensorflow python api without mediapipe) on windows. Finally, it turns out bad inference result on android.
I've got a visualization on the input tensor of tflite and ensure the face detection area to be adaptive to the tflite.
What do I miss? I wonder is there any possible that the same tflite could output results with greate difference between these two platform?
Here is my subgraph (tflite could be provided by email if necessary), and Thanks for any help!!!
##################################################
type: "FaceEmotionGpu"
GPU image. (GpuBuffer)
input_stream: "IMAGE:image"
ROI (region of interest) within the given image where a face is located.
(NormalizedRect)
input_stream: "ROI:initial_roi"
output_stream: "EMOTIONS_PRED:emotions_pred_logits"
Calculate size of the image.
node {
calculator: "ImagePropertiesCalculator"
input_stream: "IMAGE_GPU:image"
output_stream: "SIZE:image_size"
}
Expands and shifts the rectangle that contains the face so that it's likely
to cover the entire face.
node {
calculator: "RectTransformationCalculator"
input_stream: "NORM_RECT:initial_roi"
input_stream: "IMAGE_SIZE:image_size"
output_stream: "roi"
options: {
[mediapipe.RectTransformationCalculatorOptions.ext] {
scale_x: 0.6666
scale_y: 0.6666
square_long: true
}
}
}
Transforms the input image into a 96x96 tensor.
node: {
calculator: "ImageToTensorCalculator"
input_stream: "IMAGE_GPU:image"
input_stream: "NORM_RECT:roi"
output_stream: "TENSORS:em_input_tensors"
options: {
[mediapipe.ImageToTensorCalculatorOptions.ext] {
output_tensor_width: 96
output_tensor_height: 96
output_tensor_float_range {
min: 0.0
max: 1.0
}
gpu_origin: TOP_LEFT
}
}
}
Runs a TensorFlow Lite model on GPU that takes an image tensor and outputs a
vector of GPU tensors representing, for instance, detection boxes/keypoints
and scores.
node {
calculator: "InferenceCalculator"
input_stream: "TENSORS:em_input_tensors"
output_stream: "TENSORS:emotions_pred_tensor"
options: {
[mediapipe.InferenceCalculatorOptions.ext] {
model_path: "mediapipe/modules/face_landmark/face_emotion.tflite"
#
delegate: { gpu { use_advanced_gpu_api: true } }
}
}
}
Converts the emotion prediction logit tensors into a float vector that represents the confidence
score of the facial emotion.
node {
calculator: "TensorsToFloatsCalculator"
input_stream: "TENSORS:emotions_pred_tensor"
output_stream: "FLOATS:emotions_pred_logits"
}

Hi @PGogo ,
Could you please provide steps to reproduce this issue.

Hi @PGogo , Could you please provide steps to reproduce this issue.

Thank you for your help. Here are my steps.

Train my custom model and conver to tflite.
In order to insert my module into the pipeline of face_mesh_mobile, I make a subgraph refer to face_landmark_gpu.pbtxt and also modify several related pbtxt
Every thing works fine running on android, except the prediction of the tflite. Since it gives a lower accuracy  than running on windows(using tensorflow python api without mediapipe)

It seems that my tflite output different inference results between android and windows environments. Is it possible? And how could I make them exactly the same?


Allow to pass empty array to operations on details

Landed in https://github.com/metarhia/globalstorage/commit/95124cc0fd986217b520bbbd266f1745fed5c422.


Ground polyline cleanup

I was seeing intermittent test failures depending on when and whether GroundPolylinePrimitive.initialize was being called and cleaned up.
I changed everything to be the same as GroundPrimitive

@hpinkos, thanks for the pull request! Maintainers, we have a signed CLA from @hpinkos, so you can review this at any time.
:warning: I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to CHANGES.md and comment on this pull request so we know it was updated. For more info, see the Pull Request Guidelines.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:

Who can review?  @mramato @bagnell ?
cc @likangning93

Thanks.

Thanks @hpinkos!


Kube-proxy support for k8s_node_name

In the following dashboard, use the k8s_node_name label instead of instance for consistency across the dashboards
https://github.com/aws-observability/aws-observability-accelerator/blob/c4819a990312f7c2597f529577471320e5c4ef7d/artifacts/grafana-dashboards/eks/kube-proxy/kube-proxy.json#L1126
Need to update all the queries in panels as well

Definitely makes sense. Will pick it up most probably end next week or the week after.


Move the signing key to files/default

This is where Chef expects the key to be.

@ziggythehamster, just out of curiosity, having signing key in files passed all test cases.  What is a test scenario where having the signing key just in files and not files/default fail?

Chef 11.18.12 dies because the file is not in the correct directory. It actually even tells you "didn't find the file in files/debian-8.2, files/debian, or files/default. DID find it in files", but then it throws an exception because files is not the correct place for it.

Thanks for the clarification @ziggythehamster, I will ensure to test this against Chef 11 when doing this build.  Please give me a day or so to get this setup.

@ziggythehamster I am going to go ahead and accept this but am going to refactor this cookbook based on st-isidore-de-seville/cookbook-apt-nginx and st-isidore-de-seville/cookbook-yum-nginx


chore: add bootstrap address for catsmile100

Description
Adding bootstrap address for catsmile100

@catsmile100 Merged, with thanks


Change variable name from range to vRange_enum

range is a built-in function name while vRange_enum communicates
clearer that the variable value comes from the enumerated options.
For compatibility, I have also corrected the millivolt bug that has
been reported already two times.
The use of range does not create problems since it is in the scope of the
the function but it is confusing.

We don't take pull requests on our repositories. If you have an issue with the repository please contact<EMAIL_ADDRESS>


Clarify AssignableScopes paragraph

The explanation of AssignableScopes could be better. Can I suggest a rewording here?
The AssignableScopes property specifies the scopes (subscriptions, resource groups, or resources) which have this role definition available. You can make the role available for assignment in only the subscriptions or resource groups that require it, and not clutter the user experience for the rest of the subscriptions or resource groups. You must use at least one subscription, resource group, or resource ID.

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

ID: e0091902-7cb0-8dc3-2a7a-dc644f39a961
Version Independent ID: d2757c88-1bad-8d27-b548-9e04a8ec7fe1
Content: Understand role definitions in RBAC for Azure resources
Content Source: articles/role-based-access-control/role-definitions.md
Service: role-based-access-control
GitHub Login: @rolyon
Microsoft Alias: rolyon

@4x0v7 Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.

Hi @4x0v7
Thanks for your updated wording. We've added it to the article:
https://docs.microsoft.com/en-us/azure/role-based-access-control/role-definitions#assignablescopes

Let us know if you have any additional feedback.

@MicrosoftDocs/azure-cxp-triage
#please-close


iOS Source fallbacks and re-add url parameter

I should have separated these into two pull requests but I believe they are both worthwhile fixes; if you disagree about the source fallbacks then it would be great if you could at least re-add the url parameter.
In production I'm seeing errors and a failure to create scheduled notifications on many devices, as it seems in more recent iOS versions there is often no local calendar. It would be even better if there were a way to query sources directly from flutter, but that would complicate things and is probably overkill in most cases - I'm going to guess that 99% of users just use the default iCloud calendar.

@andzejsw  and @thomassth are you both ok with this PR?

@nickrandolph All looks good.

Will this PR ever be merged?

lmk know if you need anything else from my end to make it happen!

I don't have an iOS device at hand
Can someone run this PR on device and see if there's any error popping up
In case there is some migration issue from previous versions

If it helps, I've been running this in production with roughly 30k active iOS users for 3 months and haven't been seeing any errors.


week 6

GRADER DANIEL BERTINO
Total: 4/5
Week 6 Review Ticket
Scrum Score: 4/4.5
Teacher: ?/0.5
Tangibles
All Tangibles are found in GH Pages
https://github.com/hamzahakak/hamzahakak/blob/gh-pages/planning.md

[ ] Watched  two CB Videos & documented it on GH Pages
[x] MCQ Practice Exam Results (38/50)
[x] Create Task Documented on Gh Pages

missing notes on gh pages


Added FB Canvas autogrow

I've used the library in a Facebook tab, and there were no option for set the Canvas height. I placed the Facebook AutoGrow option after the init. This is has no effect when you don't use canvas and or tab.

Hi @bajzarpa, this is really use case specific. I would recommend that you can call FB.Canvas.setAutoGrow(); right after the deferred object was resolved. Which should do the same you provided by your PR.
Example:
$rootScope.$on('Facebook:load', function () {
  FB.Canvas.setAutoGrow();
});


Allow lambda syntax for typescript receivers implemented as classes.

This PR will allow typescript receivers implemented as typescript classes to use this. notation in the handlers for the events.
The receiverAsClass.test.ts tests that the generated event handlers still work as expected.
Feel free to comment if I have missed anything.

Thanks for the PR!
First, when wrapping a receiver method in a lambda function method, ideally, the spread syntax should be used.
// This PR
connection.on("ReceiveMessage", (message: string, value: number) => receiver.receiveMessage(message,value));

// Ideal
connection.on("ReceiveMessage", (...args: [string, number]) => receiver.receiveMessage(...args));

Second, when wrapping a receiver method in a lambda expression, the method instance passed to MethodList must also be changed. And since the lambda passed in connection.on and the method instance in methodList must be identical, a temporary variable is needed. The ideal format of the code would be as follows.
public readonly register = (connection: HubConnection, receiver: IReceiver): Disposable => {

    const __receiveMessage = (...args: [string, number]) => receiver.receiveMessage(...args);

    connection.on("ReceiveMessage", __receiveMessage);

    const methodList: ReceiverMethod[] = [
        { methodName: "ReceiveMessage", method: __receiveMessage }
    ]

    return new ReceiverMethodSubscription(connection, methodList);
}

Thanks!


wrong placing of line spacer in diff view for code lense

Issue Type: Bug
with code lense enabled on for example references in java, the diff editor side by side view places a line spacer below the line with code lense while the code lense itself is displayed above the line.

I'll look further into how to reproduce this.

Ok, the spacers on the left side are positioned at the wrong place when word wrap is enabled on the right side (with code lense).
Independent on weather word wrap is enabled on the left side.

@S-p-Ace Could you please share a sample for how to reproduce? It might also help to attach a screenshot showing the problem.

Hi @alexdima, I hope its OK for me to just provide some steps to reproduce the issue.
here is what I did:

Initialise a new project for example with maven (quickstart archetype) and initialize git
commit the initial project files
do some changes to code that has code lense and save the file
(I updated the maven dependencies to use JUnit5 instead of 4)
open the diff editor from the changed file in source control
enable word wrap on the right side

word wrap disabled:

word wrap enabled:

The majority of the dependency block for junit has moved up one line on the left side and the spacer for the code lense moved down between the version and scope tags.
The provider for these code lenses is pflannery.vscode-versionlens

:+1: Here is a simplified repro:

configure:

	"typescript.referencesCodeLens.enabled": true,
	"diffEditor.codeLens": true,

create two identical files: fileA.ts, fileB.ts:

// this is a long line this is a long line this is a long line
class Hello {
    public static sayHi() {

    }
}

compare the two files and in the right-hand-side file enable wrapping using alt+z:

Fixed in Diff Editor v2:


bug-#4846-Fail on restart investing after liquidation on MaximumDrawdownPercentPortfolio.py

Description

If trailing stop is True, the algo reached liquidation requirement will always be stuck as the 'high' value of portfolio is always higher than current value by preset drawdown percent. It will never restart investing on next rebalancing period and beyond.
Related Issue

Fixes #4846
Motivation and Context

I added a line so that the trailing high value could be reset after liquidation and the investment process won't be stop by high value always more than current value by drawdown percent.
Requires Documentation Change

Nil
How Has This Been Tested?

https://travis-ci.org/github/QuantConnect/Lean/builds/735379137
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] Refactor (non-breaking change which improves implementation)
[ ] Performance (non-breaking change which improves performance. Please add associated performance test and results)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Non-functional change (xml comments/documentation/etc)

Checklist:

[x] My code follows the code style of this project.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

I now edited to the correct version. As per enquiry, the original file won't change the self.portfolioHigh when the liquidation happened, so:

the currentValue is always less than high value and if self.isTrailing and self.portfolioHigh < currentValue: will never fulfil; and
since currentValue and self.portfolioHigh won't change after liquidation, if pnl < self.maximumDrawdownPercent will always fulfil and never be able to invest

Hey!
I went ahead and updated the C# implementation and added a check so that we only reset the portfolio value after we actually have liquidated a collection of targets. Found this while testing with the regression test (which have been updated),  the portfolio construction model might only rebalance daily so there could be no targets until next rebalance, without the new check it wouldn't adjust the risk on the actual targets.

Thx a lot for the effort!


new FAQ: 'What is ASIC resistance? Why is it important?'

Added all suggestions.

Sorry, I didn't want to have a long discussion around this :P Approved it.

Don't be sorry, i appreciate your honest reviews :)


[Question] is posible to send a message through the ipc from the APP to the DLL?

im hooking with no issues and sending messages(through the interface) from the DLL to the console application(everything in C#) with no issues at all.
Is there a way to send a message from the Application to DLL?(bi-direction ipc communication)
Example: i want that some events in my application changes configurations in the dll.

Yes, you can see an example of this happening here: https://github.com/spazzarama/Direct3DHook/blob/master/Capture/EntryPoint.cs#L33


litevfs: limit the number of pages fetched from LFSC per query

For now, to avoid very large DBs DDoSing LFSC, limit the number of
pages LiteVFS will fetch from LFSC per query to 64.
This is configurable via pragma up to 1024.

Nice one! Do you need any help in this repo?

Sure, thanks for the reply and good luck


chore: add simp to Polynomial.X_ne_zero

As requested here by @riccardobrasca

!bench

Thanks!
bors merge


[SPARK-45341][CORE] Correct the title level in the comments of KVStore.java to make sbt doc run successfully with Java 17

What changes were proposed in this pull request?
This pr aims to correct the title level in the comments of KVStore.java to make sbt doc run successfully with Java 17.
Why are the changes needed?
Make the sbt doc command execute successfully with Java 17
Does this PR introduce any user-facing change?
No
How was this patch tested?

Manually check.

run build/sbt clean doc -Phadoop-3 -Phadoop-cloud -Pmesos -Pyarn -Pkinesis-asl -Phive-thriftserver -Pspark-ganglia-lgpl -Pkubernetes -Phive -Pvolcano
Before
[error] /Users/yangjie01/SourceCode/git/spark-mine-sbt/Picked up JAVA_TOOL_OPTIONS:-Duser.language=en
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/LevelDBTypeInfo.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/ArrayWrappers.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/KVIndex.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/InMemoryStore.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/LevelDBIterator.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/RocksDB.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/RocksDBTypeInfo.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/UnsupportedStoreVersionException.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/LevelDB.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/KVStoreIterator.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/KVStore.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/KVStoreView.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/KVTypeInfo.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/RocksDBIterator.java...
[error] Loading source file /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/KVStoreSerializer.java...
[error] Constructing Javadoc information...
[error] Building index for all the packages and classes...
[error] Standard Doclet version 17.0.8+7-LTS
[error] Building tree for all the packages and classes...
[error] /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/src/main/java/org/apache/spark/util/kvstore/KVStore.java:32:1:  error: heading used out of sequence:
, compared to implicit preceding heading:

[error]  *
Serialization

[error]    ^Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/InMemoryStore.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/KVIndex.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/KVStore.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/KVStoreIterator.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/KVStoreSerializer.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/KVStoreView.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/KVTypeInfo.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/LevelDB.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/LevelDB.TypeAliases.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/RocksDB.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/RocksDB.TypeAliases.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/UnsupportedStoreVersionException.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/package-summary.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/org/apache/spark/util/kvstore/package-tree.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/constant-values.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/serialized-form.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/overview-tree.html...
[error] Building index for all classes...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/allclasses-index.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/allpackages-index.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/index-all.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/index.html...
[error] Generating /Users/yangjie01/SourceCode/git/spark-mine-sbt/common/kvstore/target/scala-2.13/api/help-doc.html...
[error] 1 error
[warn] javadoc exited with exit code 1
...
[error] sbt.inc.Doc$JavadocGenerationFailed
[error] 	at sbt.inc.Doc$.sbt$inc$Doc$$$anonfun$cachedJavadoc$1(Doc.scala:51)
[error] 	at sbt.inc.Doc$$anonfun$cachedJavadoc$2.run(Doc.scala:41)
[error] 	at sbt.inc.Doc$.sbt$inc$Doc$$$anonfun$prepare$1(Doc.scala:62)
[error] 	at sbt.inc.Doc$$anonfun$prepare$5.run(Doc.scala:57)
[error] 	at sbt.inc.Doc$.go$1(Doc.scala:73)
[error] 	at sbt.inc.Doc$.$anonfun$cached$5(Doc.scala:82)
[error] 	at sbt.inc.Doc$.$anonfun$cached$5$adapted(Doc.scala:81)
[error] 	at sbt.util.Tracked$.$anonfun$inputChangedW$1(Tracked.scala:220)
[error] 	at sbt.inc.Doc$.sbt$inc$Doc$$$anonfun$cached$1(Doc.scala:85)
[error] 	at sbt.inc.Doc$$anonfun$cached$7.run(Doc.scala:68)
[error] 	at sbt.Defaults$.$anonfun$docTaskSettings$4(Defaults.scala:2178)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63)
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:69)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error] 	at sbt.Execute.work(Execute.scala:292)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[error] 	at java.base/java.lang.Thread.run(Thread.java:833)
[error] (kvstore / Compile / doc) sbt.inc.Doc$JavadocGenerationFailed
[error] Total time: 118 s (01:58), completed Sep 26, 2023, 10:11:02 PM

The command execution failed because after Java 9, the JavaDoc tool has stricter requirements for title levels, and title tags must be used in the correct order(start with
).
After
[success] Total time: 115 s (01:55), completed Sep 26, 2023, 10:14:20 PM

Was this patch authored or co-authored using generative AI tooling?
No

Since Github Action is checking sbt unidoc, this issue was not exposed. cc @srowen @HyukjinKwon @dongjoon-hyun FYI

I'm just curious why this is SBT issue?
This javadoc issue should happen in Maven because we have the following.
https://github.com/apache/spark/blob/ea3104fa71b0d7b6ac5e74292c28e40acb1e6537/pom.xml#L3187-L3188

An interesting question, the maven build indeed did not throw any errors, I can't provide an answer right now, need to investigate it for maven

@dongjoon-hyun we can test as follows
build/mvn javadoc:javadoc -pl common/kvstore -am

then we can see
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.5.0:javadoc (default-cli) on project spark-kvstore_2.13: An error has occurred in Javadoc report generation:
[ERROR] Exit code: 1
[ERROR] 正在加载程序包org.apache.spark.util.kvstore的源文件...
[ERROR] 正在构造 Javadoc 信息...
[ERROR] 正在构建所有程序包和类的索引...
[ERROR] 标准 Doclet 版本 17.0.8+7-LTS
[ERROR] 正在构建所有程序包和类的树...
[ERROR] /Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/src/main/java/org/apache/spark/util/kvstore/KVStore.java:32: 错误: 使用的标题超出序列：
（与隐式前导标题相比：
）
[ERROR]  *
Serialization

[ERROR]    ^
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/InMemoryStore.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/KVIndex.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/KVStore.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/KVStoreIterator.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/KVStoreSerializer.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/KVStoreView.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/KVTypeInfo.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/LevelDB.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/LevelDB.TypeAliases.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/RocksDB.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/RocksDB.TypeAliases.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/UnsupportedStoreVersionException.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/package-summary.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/package-tree.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/constant-values.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/serialized-form.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/KVIndex.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/InMemoryStore.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/RocksDB.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/RocksDB.TypeAliases.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/UnsupportedStoreVersionException.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/LevelDB.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/LevelDB.TypeAliases.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/KVStoreIterator.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/KVStore.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/KVStoreView.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/KVTypeInfo.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/class-use/KVStoreSerializer.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/org/apache/spark/util/kvstore/package-use.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/overview-tree.html...
[ERROR] 正在构建所有类的索引...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/allclasses-index.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/allpackages-index.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/index-all.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/index.html...
[ERROR] 正在生成/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs/help-doc.html...
[ERROR] 注: 可能覆盖将来的标准标记的定制标记:  @todo, @note, @tparam, @constructor, @groupname, @example, @group。为了避免出现可能的覆盖, 请在定制标记名称中至少使用一个句点字符 (.)。
[ERROR] 注: 找不到的定制标记:  @todo, @note, @tparam, @constructor, @groupname, @example, @group
[ERROR] 1 个错误
[ERROR] Command line was: /Users/yangjie01/Tools/zulu17/zulu-17.jdk/Contents/Home/bin/javadoc -Xdoclint:all -Xdoclint:-missing @options @packages
[ERROR]
[ERROR] Refer to the generated Javadoc files in '/Users/yangjie01/SourceCode/git/spark-mine-13/common/kvstore/target/site/apidocs' dir.
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :spark-kvstore_2.13

Sorry, there are some non-English characters in the compilation log.
In GitHub Action, we run "mvn install", but the "mvn install" command does not execute "javadoc:javadoc" by default. This is because "javadoc:javadoc" belongs to the site lifecycle phase, and the install lifecycle phase comes before site. A simple fix would be to change the execution command to "mvn install javadoc:javadoc" for additional checks.


Migrate build to null safety

Part of #71511

Do we need this test when we are migrating this to null safety @jmagman ?

We will migrate this when packages/flutter_tools/lib/src/artifacts.dart will be migrated to null safety

@Abhishek01039 all imported libraries need to be migrated before this can be migrated.  This is stuck behind artifacts and https://github.com/flutter/flutter/issues/80875.  I didn't spot any other libraries that could be migrated until that one is done.
Also, you should make sure at a minimum you don't have analyzer warnings before you put these out for review.  🙂
https://github.com/flutter/flutter/pull/81106/checks?check_run_id=2425037280
   info • The library 'package:flutter_tools/src/artifacts.dart' is legacy, and should not be imported into a null safe library • packages/flutter_tools/lib/src/base/build.dart:6:8 • import_of_legacy_library_into_null_safe

I am also waiting for artifacts will migrate to null safety. @jmagman

Hello @jonahwilliams
When you will migrate packages/flutter_tools/lib/src/artifacts.dart to null safety
then mark this PR as ready
thanks

@Abhishek01039 artifacts has been migrated to null safety, you can rebase on top of tree.

Also please migrate build_test at the same time.

Lots of failing tests
02:16 +820 ~3 -1: test/general.shard/build_system/targets/common_test.dart: AotElfProfile Produces correct output directory [E]
  NoSuchMethodError: The getter 'isNotEmpty' was called on null.
  Receiver: null
  Tried calling: isNotEmpty
  dart:core                                                          Object.noSuchMethod
  package:flutter_tools/src/base/build.dart 185:54                   AOTSnapshotter.build

CI getting an error in project_test.dart file which is unrelated to this PR I think.
I am getting this when I am trying to run this test locally
Failed to load "test/general.shard/project_test.dart": Directory listing failed, path = '/Users/abhishek/Desktop/open_source/flutter/bin/cache/artifacts/gradle_wrapper/' (OS Error: No such file or directory, errno = 2)
dart:io                                                      _Directory.listSync
2
ForwardingDirectory.listSync
package:file/…/forwarding/forwarding_directory.dart:43
transfer
test/general.shard/project_test.dart:853
_testInMemory
test/general.shard/project_test.dart:790
main.<fn>.<fn>
test/general.shard/project_test.dart:35
package:test_api                                             group
main.<fn>
test/general.shard/project_test.dart:34
package:test_api                                             group
main
test/general.shard/project_test.dart:33
2

✖ loading test/general.shard/project_test.dart
Exited (1)

CI is green right now so if the test is failing is because of your changes unfortunately

CI getting an error in project_test.dart file which is unrelated to this PR I think.

Filed https://github.com/flutter/flutter/issues/83275.  Run flutter build apk once to get the required cached artifacts downloaded.  In any case you should still be able to see the other failures locally.

This was blocking the next clump of migrations, I have a version in https://github.com/flutter/flutter/pull/83381.


Crash when using ovsdb plugin

Describe the bug
When using ovsdb plugin the user is getting the following error:
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/vdsm/supervdsm_server.py", line 95, in wrapper
    res = func(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/vdsm/network/api.py", line 206, in setupNetworks
    _setup_networks(networks, bondings, options)
  File "/usr/lib/python3.6/site-packages/vdsm/network/api.py", line 230, in _setup_networks
    netswitch.configurator.setup(networks, bondings, options, in_rollback)
  File "/usr/lib/python3.6/site-packages/vdsm/network/netswitch/configurator.py", line 71, in setup
    _setup_nmstate(networks, bondings, options, in_rollback)
  File "/usr/lib/python3.6/site-packages/vdsm/network/netswitch/configurator.py", line 94, in _setup_nmstate
    nmstate.setup(desired_state, verify_change=not in_rollback)
  File "/usr/lib/python3.6/site-packages/vdsm/network/nmstate/api.py", line 49, in setup
    state_apply(desired_state, verify_change=verify_change)
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 71, in apply
    _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 104, in _apply_ifaces_state
    plugin.apply_changes(net_state, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/plugins/nmstate_plugin_ovsdb.py", line 196, in apply_changes
    for iface in net_state.ifaces.all_ifaces():
AttributeError: 'Ifaces' object has no attribute 'all_ifaces'

Version

nmstate-plugin-ovsdb-1.0.0-1.el8.noarch
nmstate-1.0.0-1.el8.noarch
nispor-1.0.1-2.el8.x86_64
NetworkManager-1.30.0-0.4.el8.x86_64

Platform

Platform: el8

How reproducible

100%

Nmstate output

Expected output:

Do not crash because the function does not exist.

Current output:

Crashing because the function does not exist.

I can confirm this is 100% reproducible. Tag v1.0.0 ovsdb plugin is broken because is using a function that does exist on 1.0.0 net_state.py. I am not sure why but it seems our linter didn't detect this and an integration test is missing.

I can confirm this is 100% reproducible. Tag v1.0.0 ovsdb plugin is broken because is using a function that does exist on 1.0.0 net_state.py. I am not sure why but it seems our linter didn't detect this and an integration test is missing.

This was caused due to a sync. issue when updating nmstate. The plugin was updated but the nmstate core was not. I am closing this and will reopen if it happens again.

This was caused due to a sync. issue when updating nmstate. The plugin was updated but the nmstate core was not. I am closing this and will reopen if it happens again.


double filled loader added 🚀

Issue reference:
NIL
Proposed changes:
Double-filled loader added
Type of change:
New loader added
Please delete options that are not relevant.

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

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented on my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

Additional info (if any):
NULL

Thanks for the contribution @shubhajeet1207.


Braintree Teardown DOM elements

General information

SDK version: 3.34.0
Environment: Sandbox
Browser and OS:  Chrome 67.0.3396.99 (64-bit) on Windows 10

Issue description
on our website we have Angular, we have 3 payment methods for our clients which include payment at Delivery, Credit Card or Paypal With Braintree, we have a directive paypal which is activated when user select that payment type, so we have something like this:
<paypal-gateway ng-if="paymentType == 'paypal'"> </paypal-gateway>

so when you toggle between payments method, I do a teardown of the instance, the instance torn down properly but the DOM is still there (Paypal Checkout Button) even if I do a
braintreeClient.teardown();
    PaypalCheckoutInstance.teardown():

in fact when I click then the buttom, I get an exception:

VM1531:91 checkout.js error Error: Error: createPayment cannot be called after teardown.

this is my example code:
$.get("/api/gateway/client_token", function (data) {
                let client_token = data.clientToken;

                // Create a client.
                braintree.client.create({
                    authorization: client_token
                }).then(function (clientInstance) {
                    braintreeClient = clientInstance;
                    setTimeout(function () {
                        console.log('destroying Braintree Client');
                        braintreeClient.teardown(function (err) {
                            if(err){
                                console.log('could not teardown braintree');
                            } else {
                                console.log('Braintree has been torn down!');
                                paypalInstance.teardown(function (err) {
                                    if(err){
                                        console.log('could not teardown Paypal');
                                    } else {
                                        console.log('Paypal has been torn down!');
                                    }
                                });
                            }
                        });
                    }, 5000);
                    braintree.dataCollector.create({
                        client: clientInstance,
                        paypal: true
                    }).then(function (dataCollectorInstance) {
                        let deviceDataElement = angular.element($("#paymentNonce"));
                        deviceDataElement.scope().vm.deviceData = dataCollectorInstance.deviceData;
                        console.log(deviceDataElement.scope());
                    });

                    return braintree.paypalCheckout.create({
                        client: clientInstance
                    });

                }).then(function (paypalCheckoutInstance) {
                    paypalInstance = paypalCheckoutInstance;
                    // Set up PayPal with the checkout.js library
                    return paypal.Button.render({
                        env: 'sandbox', // or 'sandbox'
                        style: {
                            label: 'checkout',
                            size: 'responsive',    // small | medium | large | responsive
                            shape: 'rect',     // pill | rect
                            color: 'black',      // gold | blue | silver | black
                            tagline: false
                        },
                        payment: function () {
                            return paypalCheckoutInstance.createPayment({
                                flow: 'vault'
                                // Your PayPal options here. For available options, see
                                // http://braintree.github.io/braintree-web/current/PayPalCheckout.html#createPayment
                            });
                        },

                        onAuthorize: function (data, actions) {
                            return paypalCheckoutInstance.tokenizePayment(data)
                                .then(function (payload) {
                                    let paymentNonceElement = angular.element($("#paymentNonce"));
                                    paymentNonceElement.scope().vm.paymentNonce = payload.nonce;
                                    //at this point paypal was selected with success
                                    $("#paypal-button").click();
                                    ;
                                });
                        },

                        onCancel: function (data) {
                            console.log('checkout.js payment cancelled', JSON.stringify(data, 0, 2));
                        },

                        onError: function (err) {
                            console.error('checkout.js error', err);
                        }
                    }, '#paypal-button');
                }).then(function () {
                    // The PayPal button will be rendered in an html element with the id
                    // `paypal-button`. This function will be called when the PayPal button
                    // is set up and ready to be used.
                }).catch(function (err) {
                    // Handle component creation error
                    console.log(err);
                });
            });```

the problem was on the javascript side.


fatal error: memory: No such file or directory  #include

Hello. I am trying to compile code form examples of this project but I got fatal error message and I can´t move on. Can somebody please help with solution of this error?

You are running the compilation on wrong settings in the Arduino IDE. Recommend closing the Issue.

Thank you for answer, but which setting should I change.

I should check it personally but you have to check mainly board settings

Sorry, couldn't reproduce this.
Closed due to inactivity. Please reopen for follow-up questions.


spack python3 requirement

-Updated readme about spack python3 requirement.

The spack install script does contain python3 install. Problem is only headnode needs to install spack, but when the compute nodes access spack they will fail because python3 is not installed. One easy solution would be to install python3 on all compute nodes with a tag.


About src/loader/augs.py

Thanks for your nice code!
I have two questions here:

The operation that expanding the box seems not considering the situation in which the instance is on the boundary of the image. (where -2 may be negative and +2 may be out of bounds).Code Here
And another question is that, after expanding the box, is there any need to check the size of the height and width of the bounding box? (Unless the instance is on the boundary, the minimal size of the bounding box would be 4x4)Code Here

@GekFreeman Hi,

The input patches for augmentation have been made (or asked to be made) so that they always have at least double the size the targetted size (i.e if inputting size for the network is 254x254, then during augmentation the patches size always 254x254 * a with a >= 2.0). You can see this mentioned in here https://github.com/vqdang/hover_net/blob/6dc2868f98d640eea5398813c8a80f4d44d47c7e/src/extract_patches.py#L28-L31 As a result, we don't really need to worry that the bboxes of the instance under our consideration (i.e instances within the central region during the augmentation) are out of bound.
I don't remember clearl but I would say that I put these lines there for sanity check. Because as mentioned in 1 and https://github.com/vqdang/hover_net/blob/6dc2868f98d640eea5398813c8a80f4d44d47c7e/src/loader/augs.py#L211 there shouldn't have any bboxes with size < 4x4 by that line. You can feedback to us if you see any problem once they are removed.

Hi @GekFreeman,
Thanks for pointing this out. Because we only consider the central region at the output of the network, we don’t need to worry about instances at the edge of the original image. Refer to:
https://github.com/vqdang/hover_net/blob/master/src/config.py#L161
We see that this line will crop the horizontal and vertical map ground truth, disregarding nuclei at the edge. However, we shall still explore this problem and double check exactly what happens for these ‘edge nuclei’. They won’t have an effect on the performance, as discussed above, but we may clean up the code by dealing with this situation.
For your second question, you are right - this was merely for a sanity check.
We will reinform you when we have explored the above situation and afterwards close the issue.

Hi @simongraham @vqdang , Thanks for your timely explanation,
For the first question, I just thought the code here was not robust because
inst_box[0] -= 2
inst_box[2] -= 2
inst_box[1] += 2
inst_box[3] += 2

inst_map = inst_map[inst_box[0]:inst_box[1],
inst_box[2]:inst_box[3]]

inst_box[0] might be negative, at the same time, inst_box[1] could be positive (grammarly error).
However, I find the instances you are traversing here are only in the crop_ann, which is not possible at the edge of the original image(after _fix_mirror_padding and cropping_center).
The point you mentioned above does explain why they won't affect the performance.
For the second question, I will add to this issue if I have some problems when I delete the check.
Thanks again for your nice code~

We have added a small comment at:
https://github.com/vqdang/hover_net/blob/master/src/loader/augs.py#L223
to help alleviate any confusion. We confirm that the bounding boxes are valid due to the consideration of the central part of the image.


Terragrunt support for .tfvars files.

Hello there,
I'm currently looking into get to work terragrunt with a .tfvars file which contains AWS credentials. I'm fully aware that best practices encourage to use env variables or EC2 roles to manage access to AWS api.
Whenever I try to run terragrunt with the following command it doesn't work.
terragrunt apply -var-file=credentials.tfvars
However, terraform apply works as expected.
terraform apply -var-file=credentials.tfvars
Any thoughts on this?
Best,
Phillip

What are you defining in credentials.tfvars? When you say the terragrunt command "doesn't work", can you be more specific? What happens?

Hi Yevgeniy,
sorry for not being more specific on the problem.
Well, inside credentials.tvars I'm defining AWS secrets as follow.
aws_access_key = “XXXXXXXXXXX”
aws_secret_key = “XXXXXXXXXXXXXXXXXXXXXXXX”
aws_region = "eu-west-1"
and whenever I run terragrunt apply -var-file=credentials.tfvars i get:
terragrunt apply -var-file=~/credentials/terraform.tfvars
[terragrunt] 2017/01/23 00:27:08 Reading Terragrunt config file at /Users/phillip/Development/cloud/terraform/environments/aws-vpc-public/.terragrunt
[terragrunt] 2017/01/23 00:27:08 Attempting to acquire lock for state file my-app in DynamoDB
Error finding AWS credentials (did you set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables?): NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
[terragrunt] 2017/01/23 00:27:09 Error finding AWS credentials (did you set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables?): NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
make: *** [apply] Error 1

Oh, I see. I'm guessing in your Terraform code, you're doing something like this:
provider "aws" {
  access_key = "${var.aws_access_key}"
  secret_key = "${var.aws_secret_key}"
}

If so, the reason that works is you're explicitly using Terraform variables. Currently, Terraform does not try to read any variables from Terraform, nor would it know to use those two variables in particular, as you could name them whatever you want.
Is there a reason you can use environment variables, AWS profiles, AWS roles, etc?

Hi Yevgeniy,
we have managed and sort it out using ENV variables. Thanks anyway.
Best,
Phillip

Got it, thanks for the update!

@p0bailey can you share how did you do that?
I'm currently trying to use the TF_VAR variables with terragrunt, I have the something like this:
module "elb" {
  source = "../modules/network/loadbalancing"
  instance_port_http  = "${var.elb_instance_port_http}"
  instance_port_https = "${var.elb_instance_port_https}"
}

For terraform, I just declare TF_VAR_elb_instance_port_http and it works. How can I make it work with terragrunt?
Thanks
cc @brikis98

HI @pablokbs
the fix was quite simple, we stopped to put the cred in the .tfvars file and we are passing them as an environment var. That's it.
Best,
Phillip

Hi @p0bailey thanks for your response, actually I came back to post that was my mistake and I wasn't declaring them. Everything is good.
Thanks!

@pablokbs
Can you use TF_VAR_* variable in terragrunt?
I have same issue when deploy a new tag within target definition in ECS, it doesn't work with TF_VAR_tag=0.1.2
TF_VAR_tag=0.1.2 terragrunt plan


Add support for other languages for rouge

I calculate rouge with
from datasets import load_metric
rouge = load_metric("rouge")
rouge_output = rouge.compute(predictions=['тест тест привет'], references=['тест тест пока'], rouge_types=[
    "rouge2"])["rouge2"].mid
print(rouge_output)

the result is
Score(precision=0.0, recall=0.0, fmeasure=0.0)
It seems like the rouge_score library that this metric uses filters all non-alphanueric latin characters
in rouge_scorer/tokenize.py with text = re.sub(r"[^a-z0-9]+", " ", six.ensure_str(text)).
Please add support for other languages.

We could update ROUGE similiar to BLEU (#19) where optionally a tokenizer can be passed. The RougeScorer accepts a tokenizer keyword argument.
cc @sashavor


Implement close() syscall for SEV shim.

Resolves #120

@greyspectrum This has been handled in #131 , so can be closed. But the good news is that the close() test should hopefully now pass after a rebase.


🔧 Fix version number

I fixed the issue and created a new release 0.6.1. But thanks for the notice!


ref(*): correct version format for charts

Will resolve #581.

testing this atm...

tested and it looks good:
helm [redis-chart*]$ kubectl get pods,svc,rc
NAME                    READY          STATUS        RESTARTS   AGE
redis-master-rc-detny   1/1            Running       0          54s
redis-slave-rc-qz718    1/1            Running       0          53s
redis-slave-rc-y4stp    1/1            Running       0          53s
NAME                    CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
kubernetes              <IP_ADDRESS>       <none>        443/TCP    3m
redis-master            <IP_ADDRESS>    <none>        6379/TCP   54s
redis-slave             <IP_ADDRESS>   <none>        6379/TCP   53s
NAME                    DESIRED        CURRENT       AGE
redis-master-rc         1              1             54s
redis-slave-rc          2              2             53s

ready for review.

cc/ @runseb

LGTM,
I agree.
It is a detail but might as well get this right from the start.

sounds good. thanks.


[#163524147] Update the cdn-broker with TLS 1.2 policy

What
This pulls in an updated version of the cdn-broker that configures
CloudFront to only support TLS 1.2
🚨 Do not merge before 4th March 🚨
How to review

Deploy from this branch
Create a cdn-route instance.
Once it's fully deployed, test is in an SSL tester (eg https://www.ssllabs.com/ssltest) to verify it only supports TLS 1.2

🚨 Before merging 🚨
Update the TMP commit with the release created after https://github.com/alphagov/paas-cdn-broker-boshrelease/pull/13 is merged.
Who can review
Not me.

Interestingly https://www.ssllabs.com/ssltest/analyze.html?d=cdntest.andras.dev.cloudpipeline.digital&s=<IP_ADDRESS> shows it's able to connect on TLS1.0, but I think this happened because the CF distribution was still being updated after the SSL cert was set up.

I saw the same when testing. I think this is because the default *.cloudfront.net cert is configured to allow everything, and it still being served while everything gets updated. Once it was all fully updated, ssltest was no longer reporting TLS1.0 as available.


Lacks details

Instructions for the in-place edition downgrade lacks for detailed information on how to acomplish this process.
Reinstalling SQL Server to donwgrade Enterprise Edition to Standard edition asks for a SQL Standard Edition serial number,  which is not provided due to the PayAsYouGo licensing model. The serial numer it automatically loads corresponds to an Enterprise edition.
Triying to install an evaluation editions ends up in equal results.

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

ID: 4e312b6b-d5a9-6653-92ff-80494123a536
Version Independent ID: 59867322-724a-7df3-95f4-10562fe6fdbd
Content: In-place change of SQL Server edition - SQL Server on Azure VMs
Content Source: articles/azure-sql/virtual-machines/windows/change-sql-server-edition.md
Service: virtual-machines-sql
Sub-service: management
GitHub Login: @bluefooted
Microsoft Alias: pamela

Hello @edarsaut , thanks for reaching out. I have assigned the issue to the content author to investigate further and update the document as appropriate.

Hello @bluefooted . Could you please review and add your comments on this request as applicable.

@edarsaut This is listed in the prerequisites:
Setup media with the desired edition of SQL Server. Customers who have Software Assurance can obtain their installation media from the Volume Licensing Center. Customers who don't have Software Assurance can use the setup media from an Azure Marketplace SQL Server VM image that has their desired edition (typically located in C:\SQLServerFull).
Any suggestions for wording that would make this clearer?

@bluefooted, Since most administrators probably don't have Software Assurance nor a deployed SQL Server VM with the specific edition from a marketplace image, I think this could be clearer by mentioning that they need to deploy a SQL Server VM with the specific SQL server edition from the marketplace in order to get the right installation media. It may seem obvious, but probably not for someone doing it for the first time.

@edarsaut Does this work?
Customers who have Software Assurance and are using the Azure Hybrid Benefit licensing model can obtain their installation media from the Volume Licensing Center. Customers who don't have Software Assurance and are using the pay-as-you-go licensing model can deploy a new Azure Marketplace SQL Server VM image that has their desired edition and use the setup media from this VM (typically located in C:\SQLServerFull). Once you have copied the media out of this new VM, it should be deleted to prevent additional billing.

@bluefooted I think it works. Nice point by warning about deleting the deployed VM once copied the installation media to avoid additional costs.
Thank you, nice job.


HHH-16531 HHH-18004 ColumnDefinitions should respect @Column(columnDefinition)

https://hibernate.atlassian.net/browse/HHH-16531

OK, this LGTM now. Thanks!

OK, this LGTM now. Thanks!

Updated, fix that column not updated if columnDefinition added and differs to inferred type but the inferred type is equals to actual type in database, please review again.

JDBC type names and codes are chaos, It wasted my several days, this may be my final attempt, I chose another safer way that differentiate updating from validating schema which should ignore user-specified definition, It will minimize impact.
Meanwhile I added a dedicate field columnDefinition instead of existing sqlType to store user-specified definition, It's not required(not confirmed) but worthwhile to not mix user-specified and inferred one.
WDYT @gavinking

It fix https://hibernate.atlassian.net/browse/HHH-18004 also.


Bump to v0.40.0

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

@JoanFM, @hanxiao, @nan-wang, @sugatoray, there hasn't been a lot of activity in this repo. However, I would be happy to see the docarray updated to the latest version on conda-forge and help with the maintenance of the packaging. I added myself as a maintainer.
Could anyone please merge this? Thanks!

@basnijholt Thank you for your contribution.


Remove stub files

There are a couple of stub files that need removing:

test_openfe_gromacs.py
openfe_gromacs.py

These are placeholders from the cookiecutter and should be removed.

Removed these in PR #42


CI: Add style checks (missing since Travis got throttled)

Had to kill and re-tag 20.2.4 because I found a bug with flake8, which made me realize we aren't doing style checks anymore.
Adding in a very simple way to maint/20.2.x. Once merged into master, I will move this inside the .maint/ci checks.

@mgxd @oesteban Any objections?


Update README.md

Added Verida protocol

Thanks for the interest @ra-phael, feel free to reach out if you have any questions or would like to know more.


Mention about NuGet.PackageSourcemapper tool for package source mapping feature

Fixes: https://github.com/NuGet/docs.microsoft.com-nuget/issues/2779
To create visibility for NuGet.PackageSourceMapper tool mention it in doc. It'll drive customers onboarding to reducing time they spend on creating source mapping patterns.

Docs Build status updates of commit 476d088:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/consume-packages/Package-Source-Mapping.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 10ceb05:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/consume-packages/Package-Source-Mapping.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 584b8be:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/consume-packages/Package-Source-Mapping.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit eeda137:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/consume-packages/Package-Source-Mapping.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 23000a8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/consume-packages/Package-Source-Mapping.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Make the nightly workflow unlist previous versions

The nightly version list can grow pretty big. Somehow we should get all versions that ends with -nightly and unlist them using dotnet nuget delete.

Recent commit solved this.


Chaining questions from a single input tag?

Hi,
I see that you can shuffle between several questions by using the pipe separator but I would also like to split questions into several chunks so that one question can use several bubbles. Is that possible? This would increase readability for long questions and make the whole experience a little bit more human-like.
Thanks in advance!

@FranckSCTV I like this idea!
Maybe && could work for this?
cf-questions="Hello there&&Please choose an option|Hello&&Those choices"
Would result in two robot speech bubbles.
What do you think?

@felixnielsen , GREAT, this is exactly what I had in mind :)

+1 for this. Any chance of moving it up the queue?

+1 for this as well. Multiple bot speech bubbles would be great for conversational flow

:+1


Fixed typo in error msg for wrong date-time format

LOL. Copy and paste fail! Thanks for the PR.
Published to NPM as version 1.6.5.


Please add host.data.apiVersion

Issue in /src/pages/guides/uxp_guide/uxp-misc/manifest-v4/index.md
...since v1 will be probably removed and there are breaking changes and it is better to do it right from the start.

Hi @jardicc, thanks for your suggestion - this will be addressed in the coming release.


Specify the generator to use for sharing schema files in different environments

Problem
What I want to do
prisma's schema structure is simple, clear, and brilliant!
I am planning to use prisma schema in several programming languages.
For example, let's assume the following case:
Nodejs will handle the web server functions, and python will handle the once-a-day batch aggregation from the database.
I want to use prisma-client-js to connect from node and prisma-client-py to connect from python.
I believe that the benefit gained is quite large if one schema can be shared by multiple environments and programming languages.
(For example, it could be a shared language for exchanging data such as protocol-buffer.)
Current issues
There are three items living together in the schema.prisma file: datasource, generator, and model.
Of these, only model is an important part of the data handling schema.
The datasource part is useful for generating connection methods, but the generator part is more dependent on each environment.
For example, if you want to share a schema between the above two languages, a simple description would look like this.
generator client-js {
  provider = "prisma-client-js"
}

generator client-py {
  provider = "prisma-client-py"
}

However, this will not work as expected, because one of the two generator will output an error if both are not installed.
Suggested solution
I need a way to select and execute only what I need in the arguments.
For example :
prisma generate --schema ./schema/schema.prisma --generator client-js

It would also be great if you could specify multiple generators.
Alternatively, it may be better to have the generator part specified by each user as an add-on.
Alternatives.
There is currently a way to force a workaround using environment variables.
generator client {
  provider = env(PRISMA_CLIENT)
}

I have created a sample that uses this method.
https://github.com/arika0093/prisma-multi-language
However, the drawback is that there is a lot of work to specify, and it is a bit of a hack.
Additional context
Creating a schema first, and then automatically creating the fetch code and database from there, will cause a paradigm shift in system development.
I think it would be pretty cool to have a system where only the schema.prisma is managed in git and each project can refer to it from there.
What are your thoughts on this? I'd appreciate your input.

Interesting problem!
Just to make sure: What is preventing you from having both Clients installed at the same time in both systems?

For example, if you install both prisma-client-js and prisma-client-py, you will have the following situation.
$ npm install prisma # install prisma-client-js
$ pip install prisma # install prisma-client-js
$ npx prisma generate # prisma-client-js installed by npm works.
$ prisma generate # prisma-client-py installed by pip works.

This simply makes it more difficult to figure out how to make it work.
Also, npx prisma generate succeeds, but prisma generate fails:
I think the reason is that the nodejs side cannot be executed without the npx command.
In addition, consider a use case where you want to build each environment inside a docker container.
In general, you will build the environment based on the node or python image.
If you need both language environments, the drawback is that the image building process becomes more complicated.

I believe from this

However, this will not work as expected, because one of the two generator will output an error if both are not installed.
That you would need Node.js to generate the js client and Python to generate the Python client?, and if you only have one of these installed then generate would fail.

the solution mentioned

prisma generate --schema ./schema/schema.prisma --generator client-js
would make it possible to specify which generator to trigger, avoiding the problem

Is that what it is about?

Oh interesting, this is global Prisma CLI (prisma generate) vs local Prisma CLI from the project (npx prisma generate). Will have to look into prisma-client-py a bit to understand why that differentiation is necessary.
Your other point makes total sense to me - fundamentally this should be possible for you in a nice way.

Also, npx prisma generate succeeds, but prisma generate fails:

I can confirm this issue:
generator client {
  provider = "prisma-client-js"
}

datasource client {
  provider = "sqlite"
  url      = "file:dev.db"
}

model Post {
  id     String @id @default(cuid())
  binary Bytes
}

$ python -m prisma generate

Environment variables loaded from prisma/.env
Prisma schema loaded from prisma/schema.prisma
Error: Generator at<EMAIL_ADDRESS>could not start:

internal/modules/cjs/loader.js:967
  throw err;
  ^
Error: Cannot find module '/tmp/prisma-js-starter/--max-old-space-size=8096'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:964:15)
    at Function._resolveFilename (pkg/prelude/bootstrap.js:1459:46)
    at Function.Module._load (internal/modules/cjs/loader.js:840:27)
    at Function.runMain (pkg/prelude/bootstrap.js:1488:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Thanks for jumping in here @RobertCraigie - I was missing the pkg context so will look at your new issue 👍

@arika0093 In the meantime, another alternative solution would be to automatically create the Prisma Schema file, this is also very hacky but would allow you to configure the generators. For example:
python.prisma
generator py {
  provider             = "prisma-client-py"
  recursive_type_depth = -1
}

node.prisma
generator js {
  provider = "prisma-client-js"
}

models.prisma
datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

model Post {
  id        Int     @id @default(autoincrement())
  title     String
  content   String?
  published Boolean @default(false)
  author    User?   @relation(fields:  [authorId], references: [id])
  authorId  Int?
}

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
  posts Post[]
}

Then to automatically create the Prisma Schema file you can use the following script
update_schema.sh
#!/bin/bash

LANGUAGE="$1"
if [ -z "$LANGUAGE" ]; then
  echo "You must pass the target language as the first argument to the script"
  exit 1
fi

cat "$LANGUAGE.prisma" "models.prisma" > schema.prisma

And use it like so:
./update_schema.sh python
prisma generate

Hi!
I've also encountered a use case analogous to @arika0093, in which:

prisma-client-js is used in the API layer of a Next.js app
prisma-client-py is used in a microservice that performs some specific task on the data that would be cumbersome to do with node.js

To keep container images small, one would ideally avoid installing node for a python microservice:

In general, you will build the environment based on the node or python image.
If you need both language environments, the drawback is that the image building process becomes more complicated.

As of today, is the following walkaround by @RobertCraigie still be the best approach?

@arika0093 In the meantime, another alternative solution would be to automatically create the Prisma Schema file, this is also very hacky but would allow you to configure the generators. For example:
python.prisma
generator py {
  provider             = "prisma-client-py"
  recursive_type_depth = -1
}

node.prisma
generator js {
  provider = "prisma-client-js"
}

models.prisma
datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

model Post {
  id        Int     @id @default(autoincrement())
  title     String
  content   String?
  published Boolean @default(false)
  author    User?   @relation(fields:  [authorId], references: [id])
  authorId  Int?
}

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
  posts Post[]
}

Then to automatically create the Prisma Schema file you can use the following script
update_schema.sh
#!/bin/bash

LANGUAGE="$1"
if [ -z "$LANGUAGE" ]; then
  echo "You must pass the target language as the first argument to the script"
  exit 1
fi

cat "$LANGUAGE.prisma" "models.prisma" > schema.prisma

And use it like so:
./update_schema.sh python
prisma generate

Thank you in advance!

Hey @partmor! Unfortunately the workaround I suggested is still the best solution to my knowledge.
Also a note about your point of not installing Node for a Python microservice, with the current architecture of the CLI the Python client in essence already installs Node through the packaged CLI which includes Node in the binary. The size of the packaged CLI is smaller than a standard install of Node but it is still not insignificant.
It should also be noted that I'm actively working on refactoring the way the Python CLI works so that it doesn't use the packaged CLI and instead downloads Node for you if you don't already have it installed, see https://github.com/RobertCraigie/prisma-client-py/pull/454. re size concerns, you will be able to install the python package with Node included which will result in equivalent storage requirements to the current packaged CLI.

Hey @partmor! Unfortunately the workaround I suggested is still the best solution to my knowledge.
Also a note about your point of not installing Node for a Python microservice, with the current architecture of the CLI the Python client in essence already installs Node through the packaged CLI which includes Node in the binary. The size of the packaged CLI is smaller than a standard install of Node but it is still not insignificant.
It should also be noted that I'm actively working on refactoring the way the Python CLI works so that it doesn't use the packaged CLI and instead downloads Node for you if you don't already have it installed, see RobertCraigie/prisma-client-py#454. re size concerns, you will be able to install the python package with Node included which will result in equivalent storage requirements to the current packaged CLI.

Thanks @RobertCraigie!

cc @RobertCraigie to take a look at @yukukotani's new PR

Also @RobertCraigie (really naive question), but if prisma-client-py is actually using Node underneath the hood, why can't it use an existing JS client generated from a schema?

This is really cool @yukukotani! Thank you for working on this 💜

if prisma-client-py is actually using Node underneath the hood, why can't it use an existing JS client generated from a schema?

@MadcowD I'm not sure I quite understand the question, are you referring to #10564?


Added additional configuration options to allow custom routing rules.

Routing controller classes are currently hard coded which is not ideal. This patch allows these classes to be overrides via config API. This is very useful if custom routing functionality is necessary for a project that uses Fluent.

Replaced by #330 - feel free to reopen if there's more that needs to be done


unclosed url tokens at end of file are fine

https://drafts.csswg.org/css-syntax/#consume-url-token

4.3.6. Consume a url token

whitespace
Consume as much whitespace as possible. If the next input code point is U+0029 RIGHT PARENTHESIS ()) or EOF, consume it and return the <url-token> (if EOF was encountered, this is a parse error); otherwise, consume the remnants of a bad url, create a `, and return it.

This is a valid <url-token> :
url( a

It is the trialing whitespace which is important.
GitHub hides it for some reason in the snippet above.
As a JavaScript string containing the same source:
const css = `url( a\n`

Ah, I am already too old to read the Matrix. Thanks!


Support testing storage event triggered ADF pipelines

Resolving issue #9 Support testing storage event triggered ADF pipelines;
for more details, please check the mentioned issue, many thanks! :-)

Hi Lace,
Thanks for your comments!
I've updated them one by one in latest commits.

Forgot the linting checks previously... anyway, they've been corrected now, thanks for the reminder!
Updated README as suggested, now the test samples and descriptions for both blob created & deleted event triggers are not mixed anymore.
Added suggested comments to those two constant variables.
Added suggested info logs.


HADOOP-17741. Service authorization adds ip-based user authentication

3108

 Quality gate: Failed
13 Issues

 11 Code issues
 2 Anti-patterns

Details

 Quality gate: Failed
13 Issues

 11 Code issues
 2 Anti-patterns

Details


Fr add new vaccin test files

Hello
FR add 18 vaccin test files from France Health Organization (CNAM).
Thanks

@adelourme , Many of the new test data files have got JSON keys in lowercase. e.g. "expectedresults" instead of "EXPECTEDRESULTS" ... Please help update those files to comply with https://github.com/eu-digital-green-certificates/dgc-testdata/blob/main/README.md

Hello,
Oh I 've just seen the problem thank you @bhavin-qryptal
I gonna fix the problem.
Thks

@adelourme It seems that the expiration times and the validation clocks are not correct. The check scripts throws exceptions about the expiration date.

Hello, yes ok, we fix the problem. Thanks

@adelourme , There are few samples with dgc_expiry_date later than dsc_not_valid_after date. This causing tests to fail. ref: https://github.com/eu-digital-green-certificates/dgc-testdata/pull/294/checks?check_run_id=2783819470

Hello, please could you merge this pull request. We fixed all date problems. Thanks

@adelourme there's currently a conflict between this pr and the current main branch of this repo. Can you merge main into your branch and push? Thank you!

@daniel-eder ok thanks, I gonna create new branch and pull request. Thanks


Add metadata_proxy_num_threads config option

This patch adds a neutron configuration option metadata_proxy_num_threads
with a default of 1000. This sets the maximum number of wsgi threads used
for the neutron metadata proxy. The neutron wide wsgi thread setting was
changed[1] to 100 which can lead to metadata proxy performance issues.
For a full discussion on the change to 100 see the dev list email[2].
[1] https://review.openstack.org/#/c/306187/
[2]http://lists.openstack.org/pipermail/openstack-dev/2015-December/082717.html

Looks good to me, although I'm no expert on Neutron code

I'm not sure if we want to this this complexity and just revert the old setting. Since this can not be ported to ocata+ it seems more work than actually needed right now

Since time is of the essence I'm leaning towards merging this as is.  @BjoernT objections?

Since we did not test this particular scenario where the metadata agent would run with a default of 100 and the proxy of 1000 I'm hesitant to merge it. I would much rather prefer to keep the change small and just revert https://github.com/openstack/neutron/commit/9d573387f1e33ce85269d3ed9be501717eed4807 and bring us in a scenario pre mitaka which ran just fine for years. If we want to fix neutron, let's do it in ocata/pike and fix the hard coded value at https://github.com/openstack/neutron/blob/master/neutron/agent/metadata/driver.py#L44

Isn't the point of this change to make it configurable, so you can set it to whatever you want once this change goes in? The default is mostly irrelevant

I agree with @mancdaz, the ability to configure this setting will be helpful, especially if this is going to be the RPC-O production standard for Mitaka going forward.

LGTM

@BjoernT so, are you a -1 or can we merge this and get it gating?

In the case here, I tend to agree with @mancdaz, that the value of this change is the configurability of num_threads on the wsgi server. The default value chosen is almost certain to be arbitrary on the first attempt.

I think the reason it is not currently configurable is because the metadata agent calls neutron-ns-metadata-proxy without passing the --config-file option[1] so when the ns proxy starts a wsgi.Server[2] it never picks up the existing CONF.wsgi_default_pool_size tunable[3]. I think if we just pass --config-file to neutron-ns-metadata-proxy we can use the existing wsgi_default_pool_size for this with a config override.
[1] https://github.com/openstack/neutron/blob/mitaka-eol/neutron/agent/metadata/driver.py#L99-L109
[2] https://github.com/openstack/neutron/blob/mitaka-eol/neutron/agent/metadata/namespace_proxy.py#L130
[3] https://github.com/openstack/neutron/blob/mitaka-eol/neutron/wsgi.py#L119

@clefelhocz @johnsom  Did we deliver the metadata patch for mitaka+ or what was the intention to fix this in Mitaka+ releases

Yes, this was merged upstream for newton (https://review.openstack.org/#/c/494313).
For Ocata and beyond this code has been replaced upstream with an alternate solution that is also configured for 1000+ threads.


Flag to scale by total number of crates

The number of crates on crates.io is growing exponentially, so it would make sense that most of these graphs would look like exponential curves. Maybe a more interesting comparison would be to divide each data point by the total number of crates available on crates.io on that date. That way you could see for example 4% or crates.io depended on your crate on 2016-11-01 and 8% of crates.io depended on your crate on 2017-11-01.
cargo tally --relative serde rustc-serialize

Implemented in 0.1.3.


Migrate to swtpm and depreciate tpm 1.2

This patch implements swtpm and the kernel resource manager
It also removes tpm 1.2 code that has fallen out of maintainance
and not seen any updates for a while
Signed-off-by: Luke Hinds<EMAIL_ADDRESS>

@jaosorior

@jaosorior

@font

Does swtpm come with a systemd unit file that performs many of these things at startup? Otherwise a reboot will wipe away the /tmp/swtpm directory and the setup will need to be redone again.

No, someone can make a patch though, I am sure Stefan would be receptive.

@font

Does swtpm come with a systemd unit file that performs many of these things at startup? Otherwise a reboot will wipe away the /tmp/swtpm directory and the setup will need to be redone again.

No, someone can make a patch though, I am sure Stefan would be receptive.


misleading Markdown support

Right on the homepage:

Modern feature set
Caddy supports HTTP/2, IPv6, Markdown

But v0.9 release notes:

markdown middleware no longer supports static site generation. We did this out of concern for scope creep, and I recommend using Hugo for your static site needs

When I hear Markdown is supported, I automatically think of a MD static site generator.  I think there needs to be clarification, like every time MD is mentioned, say 'dynamically served MarkDown' instead.  Or just drop as a 'feature', & mention you have MD middle where burried somewhere.
OTOH, I'd prefer to use 1 server platform for most everything, since I don't have to learn another API if I want to switch between dynamic & static...

Thanks for your comments.

When I hear Markdown is supported, I automatically think of a MD static site generator.

Static site generation and Markdown are two entirely different concepts. I don't think many people conflate Markdown with "static site generation" -- markdown is used in many contexts, including GitHub comments. I don't think it's reasonable to say that the phrase "Markdown support" is misleading.


Reading  from standard in broken?

I'm trying to use the --stdin flag but ktlint doesn't seem to be getting anything from standard in.
Here is a transcript of my terminal session:
francis::aether:ktlint.git [master %=] cat test.kt
import java.io.File

fun main(args: Array<String>) {
}
francis::aether:ktlint.git [master %=] ktlint --stdin --debug < test.kt
[DEBUG] Discovered ruleset "standard"
[DEBUG] Checking <text>
[DEBUG] 367ms / 0file(s) / 0error(s)

francis::aether:ktlint.git [master %=] ktlint --stdin --debug
[DEBUG] Discovered ruleset "standard"
import java.io.File

fun main(args: Array<String>) {
}
[DEBUG] Checking <text>
[DEBUG] 11032ms / 0file(s) / 0error(s)

I was expecting an unused import error but as you can see above, no error is produced.

Thank you for the ticket. Fixed in 0.8.1.


chore: Add optional shouldFocusOnHover prop to aria combobox

No issue to close, but solves this discussion! https://github.com/adobe/react-spectrum/discussions/7045
✅ Pull Request Checklist:

[x] Included link to corresponding React Spectrum GitHub Issue.
[x] Added/updated unit tests and storybook for this change (for new code or code which already has tests).
[x] Filled out test instructions.
[x] Updated documentation (if it already exists for this component).
[x] Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:
🧢 Your Project:

Any chance this could come in with next release :D?