[Playground][Backend][Bug]: Moving the initialization of properties file

fixes #22309
@VladMatyunin
Since Sdk_SDK_UNSPECIFIED in charge of datastore interaction, the properties file is needed only for this sdk
Otherwise, will be the next error for other SDKs like that:
│panic: Config File "properties" Not Found in "[/]"
│
│goroutine 1 [running]:
│main.main()
│	/go/src/playground/backend/cmd/server/server.go:203 +0x33

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @pabloem

lgtm thanks!


[WIP] octoprint: freeze werkzeug

Motivation for this change
Octoprint requires an older version of Werkzeug than in nixpkgs, causing a build failure. This pins the dependency version using the already established approach in the octoprint package and fixes the build.
Things done
Pinned the werkzeug dependency.

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@elohmeier Does uvloop build for you?  For me it hangs in the test_sock_cancel_add_reader_race test.

@elohmeier that's been an issue with that package for months.
I disabled python38 since it was causing me to not be able to review many packages.
https://github.com/NixOS/nixpkgs/commit/367193218862bb927d13e20235fb60a92fc51d9a
but was effective reverted https://github.com/NixOS/nixpkgs/commit/364909d53558ccd6adb5cf135992c6f318d6e80a , although i think it was able to build fine after this ... not sure when it started pausing again

@jonringer I don't think disabling uvloop on 3.8 is a workable solution.  Lots of stuff depends on it and 3.8 is now the default.  We should either fix it or disable the tests completely.

Sorry, didn't mean to close the PR.  Just clicked on the wrong button.
@jonringer This should fix uvloop: https://github.com/NixOS/nixpkgs/pull/91440

@jonringer I don't think disabling uvloop on 3.8 is a workable solution. Lots of stuff depends on it and 3.8 is now the default. We should either fix it or disable the tests completely.

The commit was from January, long before the (python3 -> python38) switch. And I did it so that I could review other packages, I agree it's not a great fix eitiher

I've merged master.  Now it fails in sentry-sdk..

please avoid merge conflicts, it prefered to do:
git pull -r origin master
git push .. .. --force

over
git pull origin master
git push

@gebner Thanks for the fix to uvloop, I've rebased onto the latest master containing your changes.
I've also fixed the sentry-sdk and trytond dependencies.
The octoprint build still fails because of conflicting dependency versions, e.g.:
pythonCatchConflictsPhase
Found duplicated packages in closure for dependency 'Werkzeug':
  Werkzeug 0.16.1 (/nix/store/ljzw6hh28lvg5jiclwk697slarrjdlcf-python3.8-Werkzeug-0.16.1/lib/python3.8/site-packages)
  Werkzeug 1.0.1 (/nix/store/2yp5874nib71k55984nsac0hdpbbfh7d-python3.8-Werkzeug-1.0.1/lib/python3.8/site-packages)

I'm not sure how to override them correctly so that they are modified in the transient dependencies. @jonringer do you have an idea how to do that?

I'm not sure how to override them correctly so that they are modified in the transient dependencies. @jonringer do you have an idea how to do that?

You can look at https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/admin/awscli/default.nix . This might cause issues, as the package that's bringing in the other werkzeug version likely will needed be patch to accept a different version range.

Got it fixed now. I had to introduce trytond as a python package, so that the packageOverrides can be applied to it.
The PR should be ready to be merged now.

Thanks for your help @gebner & @jonringer!

Adding trytond as a propagated build input causes everything that depends on sentry-sdk to acquire a transitive dependency on simplejson though trytond. The presence of simplejson then causes requests to be have differently.
Is it possible to make the trytond dependency optional? As far as I understand, Sentry has special support for it if you happen to use Tryton, but if you don’t, Sentry should work fine without.


getting 500 on calling /model/

ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/uvicorn/protocols/http/httptools_impl.py", line 390, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
    return await self.app(scope, receive, send)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/fastapi/applications.py", line 199, in __call__
    await super().__call__(scope, receive, send)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/applications.py", line 111, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/middleware/errors.py", line 181, in __call__
    raise exc from None
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/middleware/base.py", line 25, in __call__
    response = await self.dispatch_func(request, self.call_next)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/prometheus_fastapi_instrumentator/instrumentation.py", line 172, in dispatch_middleware
    raise e from None
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/prometheus_fastapi_instrumentator/instrumentation.py", line 169, in dispatch_middleware
    response = await call_next(request)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/middleware/base.py", line 45, in call_next
    task.result()
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/middleware/base.py", line 38, in coro
    await self.app(scope, receive, send)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/exceptions.py", line 82, in __call__
    raise exc from None
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/routing.py", line 566, in __call__
    await route.handle(scope, receive, send)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/routing.py", line 227, in handle
    await self.app(scope, receive, send)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/starlette/routing.py", line 41, in app
    response = await func(request)
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/fastapi/routing.py", line 218, in app
    is_coroutine=is_coroutine,
  File "/Users/yreddy31/anaconda3/lib/python3.7/site-packages/fastapi/routing.py", line 126, in serialize_response
    raise ValidationError(errors, field.type_)
pydantic.error_wrappers.ValidationError: 3 validation errors for UserOutputSchema
response -> out
  field required (type=value_error.missing)
response -> probablity
  field required (type=value_error.missing)
response -> status
  field required (type=value_error.missing)

am i doing anything wrong?

@sizhky hey, its been solved it
i passed wrong response_schema for model_details API,
Thanks


VBA - Web crashed after disconnecting VBA

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: No
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/151041377-1b75076e-c2db-4542-92f3-31b3f8aad26e.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @jboniface (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

Triggered auto assignment to @Beamanator (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Steps look clear and ready to be worked, seems like it could be Internal so I'm going to leave this to the pool

Picking this one up!

No updates today! I'll try to get to it tomorrow!

This is the error that I see in the console:

Seems like we never delete the bankAccoundID key from bankAccountList


[engsys] workaround for vscode-eslint extension in workspace

ESlint plugins are resolved relative to the config file. In our repo that means ESLint would try resolving plugins from sdk folder or individual package folder if it contains a config file. The plugins needed are actually installed under common/tools/eslint-plugin-azure-sdk. Linting works when running cli because NODE_PATH is set to contain a bunch of directories, including common/temp/node_modules/.pnpm/node_modules, and ESLint is able to find plugins.
When the dataplane.code-workspace is opened in VS Code, ESLint in vscode-eslint extension attempts to load plugins but couldn't because there's no NODE_PATH or equivalent. As a result, the extension crashes.
This PR provides a workaround utilizing the
eslint.options.resolvePluginsRelativeTo setting and a empty rush project whose sole purpose is to provide symlinks to eslint dependencies so that ESLint from the VS Code extension can loads them.
Bonus change includes some fixes done by the vscode-eslint extension UI.

API change check
API changes are not detected in this pull request.

I tried this in a fresh codespace and ran cd sdk/schemaregistry/schema-registry && rush update && rush rebuild -t . and just opened random source files there but I see the following in the output console:

[Info  - 5:08:01 PM] ESLint server is starting.
[Info  - 5:08:01 PM] ESLint server running in node v16.17.1
[Info  - 5:08:01 PM] ESLint server is running.
[Info  - 5:08:02 PM] ESLint library loaded from<EMAIL_ADDRESS>Uncaught exception received.
Error: Failed to load plugin '@azure/azure-sdk' declared in '../../.eslintrc.json': Cannot find module<EMAIL_ADDRESS>Please verify that the package.json has a valid "main" entry
Require stack:
/home/codespace/workspace/common/tools/eslint-plugin-azure-sdk-helper/placeholder.js
Referenced from: /home/codespace/workspace/sdk/.eslintrc.json
at tryPackage (node:internal/modules/cjs/loader:364:19)
at Function.Module._findPath (node:internal/modules/cjs/loader:577:18)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:942:27)
at Function.resolve (node:internal/modules/cjs/helpers:108:19)
at Object.resolve (/home/codespace/workspace/common/temp/node_modules/.pnpm/@eslint+eslintrc@2.1.1/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:2337:46)
at ConfigArrayFactory._loadPlugin (/home/codespace/workspace/common/temp/node_modules/.pnpm/@eslint+eslintrc@2.1.1/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3404:33)
at ConfigArrayFactory._loadExtendedPluginConfig (/home/codespace/workspace/common/temp/node_modules/.pnpm/@eslint+eslintrc@2.1.1/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3224:29)
at ConfigArrayFactory._loadExtends (/home/codespace/workspace/common/temp/node_modules/.pnpm/@eslint+eslintrc@2.1.1/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3145:29)
at ConfigArrayFactory._normalizeObjectConfigDataBody (/home/codespace/workspace/common/temp/node_modules/.pnpm/@eslint+eslintrc@2.1.1/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3086:25)
at _normalizeObjectConfigDataBody.next ()

@deyaaeldeen thanks for trying out!

<EMAIL_ADDRESS>
This is interesting. I would expect @azure/eslint-plugin-azure-sdk to be linked to the project folder in our repo but it is not somehow.

Reloading vscode loaded the plugin correctly

probably when the workspace is opened and eslint extension first loaded, our eslint-plugin has not been built yet, thus the error.  bummer...yeah will need to build then reload the workspace.

@jeremymeng thank you so much for this early holiday gift. 😄


⚠ Bofrost.lu has degraded performance

In 68c6b71, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1730 ms

Resolved: Bofrost.lu performance has improved in 89b9a19 after 34 minutes.


[Workspaces] Empty workspaces result in internal server error response when using design transfer window

Current Behavior

[Remote Provider]: Server isn't able to fetch designs for workspace. Interval Server Error in browser console after clicking on Designs in Workspace card. Empty Available Designs list in Assign Design modal.

Expected Behavior
An empty state in the transfer design modal, but without the internal server error.
Screenshots/Logs
See this chat transcript.
Environment

Meshery Server Version: stable-v0.7.133

Contributor Guides and Handbook

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation

Meshery documentation site and source

🎨 Wireframes and designs for Meshery UI in Figma (open invite)
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

I would like to work on this issue, assign it to me


"$value", Is it the current value?

alert rules:

alert: UnusualNetworkThroughputIn
expr: instance:node_network_receive_mbits_excluding_lo:rate1m > 100
for: 10s
labels:
severity: warning
annotations:
summary: "Incoming network bandwidth > 100 Mb/s ({{ $labels.instance }})"
description: "Current value: {{ printf "%.2f" $value }}"

alert: UnusualNetworkThroughputOut
expr: instance:node_network_transmit_mbits_excluding_lo:rate1m > 100
for: 10s
labels:
severity: warning
annotations:
summary: "Outgoing network bandwidth > 100 Mb/s ({{ $labels.instance }})"
description: "Current value: {{ printf "%.2f" $value }}"

alerts:
FIRING:

[FIRING:2]
[0]: Outgoing network bandwidth > 100 Mb/s (<IP_ADDRESS>:9105)
Current value: 177.83
[1]: Incoming network bandwidth > 100 Mb/s (<IP_ADDRESS>:9100)
Current value: 184.07

RESOLVED:
value > 100 Mb/s

[RESOLVED]
[0]: Outgoing network bandwidth > 100 Mb/s (<IP_ADDRESS>:9105)
Current value: 183.01
[1]: Incoming network bandwidth > 100 Mb/s (<IP_ADDRESS>:9100)
Current value: 189.47

$value is the value of the last firing alert. I'm closing it for now. If you have further questions, please use our user mailing list, which you can also search.


How can i exttract features from vision?

i need to extract features from vision transformer . How can i start ?

Start with one of these:

https://github.com/facebookresearch/dino/blob/main/eval_linear.py
https://github.com/facebookresearch/dino/blob/main/eval_knn.py

Hi @mathshangw
You can take a look at https://github.com/facebookresearch/dino/blob/ba9edd18db78a99193005ef991e04d63984b25a8/eval_knn.py#L94-L138
Let me know if you have any questions

Also:

https://github.com/facebookresearch/dino/blob/main/eval_copy_detection.py
https://github.com/facebookresearch/dino/blob/main/eval_image_retrieval.py

@mathshangw have you been able to extract features as you wanted ? If yes, I let you close the issue. Otherwise, feel free to ask more questions and I will try to help.

sorry for the late reply . I tried the code but are these features for images before classifiying it .. I mean if I need to remove the output or classification layer to get the features . does it will be the same

sorry for the late reply . I tried the code but are these features for images before classifiying it .. I mean if I need to remove the output or classification layer to get the features . does it will be the same

In the case of DINO, contrary to Microsoft's BEiT, yes.

Thanks  a lot for replying .. so excuse me
does that right ?
PATH = 'dino_resnet50_pretrain.pth'
model = dino_resnet50(pretrained=True)
model.load_state_dict(torch.load(PATH),strict=True)

then i can use model for the images i have to extract the features ?

It is possible that your code is equivalent, but I would follow the README and use this:
import torch
resnet50 = torch.hub.load('facebookresearch/dino:main', 'dino_resnet50')

i tried your code but got
ImportError: cannot import name 'ViTFeatureExtractor'

That is because you would need to install transformers first.

That is because you would need to install transformers first.

i installed it using pip3 install transformers

If you want a minimal example without HuggingFace:
from PIL import Image
import requests

def get_image(url):
  return Image.open(requests.get(url, stream=True).raw)

from torchvision import transforms as pth_transforms

preprocess = pth_transforms.Compose([
        pth_transforms.Resize(256, interpolation=3),
        pth_transforms.CenterCrop(224),
        pth_transforms.ToTensor(),
        pth_transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)),
    ])

def get_features(model, img):
  return model(preprocess(image).unsqueeze(0))

import torch

resnet50 = torch.hub.load('facebookresearch/dino:main', 'dino_resnet50')

url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
features = get_features(resnet50, get_image(url))

Thanks a lot .. excuse my last question at this point .. I'm trying to extract features for the images in a folder and save it as a list of arrays like this
model = torch.hub.load('facebookresearch/dino:main', 'dino_resnet50')
for name in listdir(directory):

        filename=directory + '/' + name
        pil_img= load_img(filename, target_size=(224, 224,3))
        image=img_to_array(pil_img)
        img1 = torch.from_numpy(image).float()
        images = img1.reshape((1, img1.shape[0], img1.shape[1], img1.shape[2]))
        vectors =model(images.permute(0,3,1,2))
        vec=vectors.detach().numpy()
        for ind in range(1):
            results.append(vec[ind])
    return results

does this the same as what you did ?

thanks a lot but excuse me how can i get the details about preprocess(image) method

The details are in my code snippet: resize, center-crop, normalization. Very simple pre-processing.

The details are in my code snippet: resize, center-crop, normalization. This is a very simple pre-processing.

oh i didn't take my attention .. thanks a lot .. appreciating your help

excuse me if I did this line
results=[ ]
 vec=model(preprocess(image).unsqueeze(0))
 vec1=vec.detach().cpu().numpy()
for ind in range(1):
           results.append(vec1[ind])
           print(results)
   return results

does that will be right if I want to save it in the list of arrays. cause i tried to remove this line   vec1=vec.detach().cpu().numpy() but got problem in Cuda and when i use CPU i got killed after some images

excuse me if I need the results like this
[array([0.08252265, 0.03474489, 0.16312598, ..., 0.00343753, 1.8329982 ,
       0.18630761], dtype=float32), array([0.13601835, 0.54774034, 0.4879991 , ..., 0.42392948, 0.73435366,
       2.046327  ], dtype=float32), array([0.37708312, 1.1497548 , 0.7367149 , ..., 1.0371637 , 0.8308265 ,
       0.06164827], dtype=float32), array([0.32374394, 1.0856272 , 0.00293694, ..., 0.25312978, 0.23081133,
       2.281322  ], dtype=float32), array([0.05174663, 1.2037114 , 0.        , ..., 2.4387941 , 0.10406396,
       0.29335037], dtype=float32), .... , dtype=float32)]

did those lines
results=[ ]
 vec=model(preprocess(image).unsqueeze(0))
 vec1=vec.detach().cpu().numpy()
for ind in range(1):
           results.append(vec1[ind])
           print(results)
   return results

does that will be right if I want to save it in the list of arrays. cause i tried to remove this line vec1=vec.detach().cpu().numpy() but got problem in Cuda and when i use CPU i got killed after some images

excuse me I'm back to your reply again .. what I got is, if I want to extract the features for the images before classifying it, removing the classification layer or not removing it , will not affect or change the features right ?

sorry for the late reply . I tried the code but are these features for images before classifiying it .. I mean if I need to remove the output or classification layer to get the features . does it will be the same

In the case of Facebook's DINO (hugs's documentation), contrary to Microsoft's BEiT (hugs's documentation), yes.
As I understood it, Mathilde froze the features and added a linear classification layer on top. This is visible in the way the weights for the linear classifier are shared independently from the rest of the network. This is also hinted by the good results obtained with k-NN classification.
However, if you look at other works, e.g. BEiT:
1. the architecture is slightly different (for layer normalization) for Classification compared to Masked Image Modelling,

2. the **whole** network is fine-tuned, so that the whole weights have to be shared again!

I think it is better to see the performance of the network with frozen features, because fine-tuning hides the effect of the pre-training. I hope Mathilde keeps this approach in the future, or at least offers both perspectives, and I wish others would as well.
In a nutshell, if you want to use DINO, you can use the official implementation without worrying about a classification layer.
Or you can use hugs's implementation, and just extract the [CLS] token as your feature. I have checked in a Github Gist, and you should get similar results with both methods. The only thing which you have to be wary of is the pre-processing, which hugs modified, without giving a reason.

excuse me I'm back to your reply again .. what I got is, if I want to extract the features for the images before classifying it, removing the classification layer or not removing it , will not affect or change the features right ?

Hi, I reopen this topic because I am a bit lost in which are the best features to extract for comparing images (looking for similar images, independet of view point)
def load_dino_vit_model(weights_path):
    # Load a pre-trained DINO ViT model
    # Specify the appropriate model name and path as needed
    model_name = 'vit_small_patch16_224'  # Example model name, adjust based on actual use
    model = timm.create_model(model_name, pretrained=False, num_classes=0)  # num_classes=0 for feature extraction
    checkpoint = torch.load(weights_path, map_location='cpu')

    # Extract the 'teacher' state dictionary and remove the 'backbone.' prefix from each key
    state_dict = checkpoint['teacher']
    adapted_state_dict = {key.replace('backbone.', ''): value for key, value in state_dict.items()}

    model.load_state_dict(adapted_state_dict, strict=False)

    #model = torch.hub.load('facebookresearch/dino:main', 'dino_vitb8')
    model.eval()  # Set the model to evaluation mode
    if torch.cuda.is_available():
        model.cuda()
    return model

I am loading this model and then just do
output = model(image)
this returns a 384 (or 768) dimensial feature. Is this feature the class tokens activations? or it comes from other place?
I think if this is the case it would not be ideal as in contains positional informations, which is not the best for comparing images from different viewpoints.
Also I see that from the teacher model I an not using the mlp head that is used for training and it outputs 60k+ dim for trainingand comparing to the student branch.
So, If I would like to have an image feature (with pseudo-semantinc info, nos positional) in the order of 2..3k dimansional, which would be the best place to get it from
Thanks


publication MQTT

Bonjour,
est il possible de rajouter une publication MQTT pour l'activer à distance.
merci pour votre projet, je l'utilise avec un shelly EM3 avec le cumul des 3 PH. ( url: /status  , et json: "total_power" ).
est ce normal que sur HA l'integration ne marche pas ?, car j'aime l'idée que ca fonctionne en direct sans système domotique.

I am not quite sure to understand. integrate with Home Assistant, or not?
with this project, the idea was to use a minimum of infrastructure. No MQTT, no extra CPU. I have the impression that the ESP8266 already has quite some work to do, and did not want to push it further. I also compliled the project for a ESP32-C3 but before publishing it, I wanted to make it work in real life, which I did not so far (coming soon).
I published another project (https://github.com/frtz13/EnergyRouter/) which integrates with Home Assistant and works via MQTT.

Hello

je l'utilise avec un shelly EM3 avec le cumul des 3 PH. ( url: /status , et json: "total_power" )

What a good lead! I'm also with three-phase, EM3 and I was looking to do the sum of each phase. So thank you so much for opening my eyes with this url /status
For HA integration, do you add api: in the yaml ?


Cannot drag the path control nodes when the path segment is direct line.

OS: Windows 10
Browser: Chrome 49
example svg:
<svg width="580" height="400" xmlns="http://www.w3.org/2000/svg">
  <path id="svg_2" d="m262.5,178l0,-58l45.5,-20l94.5,-18l39,72l-181,24l2,0z"
      stroke-width="1.5" stroke="#A0D58A" fill="#FFAAB8"/>
</svg>

Same on Mac. Chrome 54, and Safari 9.1.3...
SVG-EDIT does the same thing on their demo, but works well if git cloned...
Method-Draw has this bug both on the demo and on cloned version. Too bad

Same on Mac. Chrome 54, and Safari 9.1.3...
SVG-EDIT does the same thing on their demo, but works well if git cloned...
Method-Draw has this bug both on the demo and on cloned version. Too bad

Just compare two files:
svgedit\editor\path.js from https://github.com/SVG-Edit/svgedit - line 478
svgedit.path.Segment.prototype.move = function(dx, dy) {
	var cur_pts, item = this.item;

	if (this.ctrlpts) {
		cur_pts = [item.x += dx, item.y += dy,
			item.x1, item.y1, item.x2 += dx, item.y2 += dy];
	} else {
		cur_pts = [item.x += dx, item.y += dy];
	}
...

Method-Draw\editor\src\path.js - line 434
svgedit.path.Segment.prototype.move = function(dx, dy) {
  var item = this.item;
  // fix for path tool dom breakage, amending item does bad things now, so we take a copy and use that. Can probably improve to just take a shallow copy of object
  var cloneItem = $.extend({}, item);
  var cur_pts = (this.ctrlpts)
    ? [cloneItem.x += dx,  cloneItem.y += dy,
       cloneItem.x1,       cloneItem.y1,
       cloneItem.x2 += dx, cloneItem.y2 += dy]
    : [cloneItem.x += dx, cloneItem.y += dy];
...

You can see the difference.
Replacing the code, we get the correct result. But of course this is a wrong way, I suppose.


Slicer

This PR includes Slicer  updated to be compatible with the new flexible geometry. I also included a number of unit tests.

I haven't checked functionality, but looking through the code I have a few suggestions that should help simplify it to read and maintain.
I would suggest starting by copying the geometry and editing the values in there directly. It should automatically update the labels if the parameter = 1.
The only slightly complex situation is when that's going to take you to 3D from 2D. But if you test on the output number pixels vertical first you should catch this and then on the  AcquisitionGeometry use .subset(vertical='centre') which will return you the geometry for the centre-slice already configured.
if pix_v_out >1:
    ag_out = ag.copy()
else:
    ag_out = ag.subset('vertical'=centre)  #returns a 2D geometry

On the new geometry you can then set panel.num_pixels, channels.num_channels and the angles.angle_data directly without having to have local references to the variables, and with no need to check whether it's parallel or cone.
with ImageGeomtry it should be similar (but vertical='centre doesn't exisit, just create a 2D one by hand first) here I think you have to set the parameter to variable = 0 to remove the data label. Let me know if that doesn't work!
I don't think it should change the code too much, but it will simplify it a lot to read and maintain. Copy() means you are always starting from the same base rather than creating a new object from scratch, And saw we add any member variables in the future using copy means it's already configured correctly.

In terms of slicing the data, it's pretty hard to follow what's happening, I know that's because there's a lot going on with the roi and the binning in each dimension. Could you add comments above the calculation just to explain what it's calculating.
I haven't looked in to slicing with variable inputs but I think numpy has slice() and Ellipses defined, which might make it more readable as it's the way we are used to slicing and indexing when we manually manipulate arrays. But I don't know whether that's better. I've not looked too much at the data slicing part yet :)

I think the checks on the roi being sane (within the volume, positive step) should be in check_input which will simplify the process code.

In the unittests you can use assertTrue(Ag1==AG2) as geometries can be directly compared. It's simpler to read if you set up the input and output manually, then check the computed output matches rather than checking each member of the geometry independently. This is also more maintainable if we change the member names, or add more in the future.

I suppose the code between these lines could be in a function called convert_roi_input_to_slice adding lots in readability

Changes included in PR #784


Question: Passing annotations to Neo4j standalone chart

After downloading the neo4j standalone chart for the first time I attempted to put it in my CircleCI build. I'm using...

CircleCI
The CircleCI Helm Orb
Neo4j Standalone helm chart v4.4.6

I pass the following into the set command as recommended here:
analysis.neo4j.services.neo4j.annotations.service.beta.kubernetes.io/do-loadbalancer-certificate-id=<cert id>

as it appears that the services.neo4j.annotations field value is an object. However, I get the following error:
Error: UPGRADE FAILED: YAML parse error on thinkdeep/charts/analysis/charts/neo4j/templates/neo4j-loadbalancer.yaml: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal object into Go struct field .metadata.annotations of type string

Is there something obvious that I'm doing wrong here? Can you provide an example helm set operation usable with the services.neo4j.annotations field? What is it that's expected by the services.neo4j.annotations field? Thanks for your time and help in this matter! :-)

Pod annotations feature will be release with 4.4.9 version.
Probably end of next week

Okay, that's cool. It turns out that the issue I saw was due to the use of helm's set command. Use of special characters caused issues. A workaround that someone mentioned is hard-coding the annotation values in the values.yaml file which worked. It doesn't allow for new helm deployments because you can't set a new cert ID meaning running instances of the deployment in two different environments (i.e, development and production) isn't possible. But as a temporary work-around it's okay. Thanks for the response! Once a new release comes out I'll test it again and see if that makes a difference.

@haydenmcp
Pod annotations and statefulset annotations support is released with 4.4.9
https://github.com/neo4j/helm-charts/releases/tag/4.4.9


Fix couple of bugs from the Haxe port

This fixes a couple of bugs that I noticed carried over from my Haxe port.

Hi, thanks for this! I've merged yonsunCN's changes into master so you are welcome to send pull requests there now.
What does this fix exactly? Can you provide a test case that fails that this then fixes?

Will do. yonsunCN fixed the Row.java bug, so that change may be redundant. I'll open another PR for the other two bugs.

I went with your implementation.

:+1:


feat(): Password 组件新增 publicKey,customEncryption 用以支持密码加密

Task Description
对Password 密码组件进行加密功能扩展
Solution Description
新增 publicKey 支持 RSA 加密
新增 customEncryption 支持自定义加密

Passed Regressions

Upgrade Compatibility

Other Information

Release Note

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.郝建国 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

这是来自QQ邮箱的假期自动回复邮件。你好，我最近正在休假中，无法亲自回复你的邮件。我将在假期结束后，尽快给你回复。

需要合并下 master 分支，解决代码冲突

需要合并下master分支，解决代码冲突

该PR暂不合并吧，待将 Password 改造为 Input.Password  再重新提PR

@Vanleehao

合并下 master 分支，解决代码冲突
更新下最新代码，我来看下国际化的问题


CanvasItem shows despite not visible in tree

Godot version
3.x 4e44a151767b4ec512550a073eb24368c1b964bb / 4.0 adf10902c94cf259ce2cbd56d2835a70ee0d86b1
System information
W10
Issue description
When you have any CanvasItem directly under CanvasLayer, make the layer invisible and then toggle that item's visibility twice, it will appear and also makes the whole branch appear:

What's weird about this is that _update_callback() is not called and the visibility isn't propagated in any way, so this is something related to CanvasLayers and directly to RenderingServer. It doesn't happen for nodes under other CanvasItem.
Steps to reproduce

Add CanvasLayer
Add Sprite2D under the layer
Make layer invisible
Toggle Sprite2D visibility twice

Minimal reproduction project
No response

Is this not intended? I suspect there might be a use case where you might want to make all the nodes of a canvas layer invisible and then just make some of its nodes visible by double toggling them.

No, it's not intended. If something is hidden, it should be hidden. Also the "visible" state is glitchy, as the node might disappear on another refresh.


implement ext image capture source

Describe your PR, what does it fix/add?
implements new ext-image-capture-source-v1 protocol
this is the easy half next will be ext-image-copy-capture
I'll prob end up editing this proto when doing above but I didn't want 1 giant pr
Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
could the multiple listeners in CImageCaptureSource cause a race for its dtor and the event it emits? nvm lol
Is it ready for merging, or does it need work?
probably yes
edit: works good 👍
just tested and this pr doesn't break toplevel export or hyprland in general

nix build failed cause of outdated wayland-protocols, needs to be 1.36 -> 1.37
its currently in nix staging but idk what the means, prob just wait

generally I don't want this implemented yet tbh. Some reasons:

I haven't seen a single client
I want to implement a verification framework (akin to xdph where it prompts you) since this is a general protocol

some clients (wl-screenrec, wayvnc) have the code in master, just not released yet
also a guy made a test client
however, looking at some recent issues (212, 220-223 in wl protos issue tracker) with the image-copy-capture, its probably best to wait to implement it
as for a verification framework, id be willing to write it, but

would this consist a yes/no qt app that's called when a source is created? or something like hyprerrors with a button
would xdph, when using this protocol, end up having 2 prompts (1st -> choose, 2nd -> yes/no allow)
^ if not, would we keep track of xdph wl client id to not ask? or maybe some special token, but how would this proto get the token
would screencopy and toplevel export also use verification, or we just deprecate them once this becomes more popular

as for a verification framework, id be willing to write it, but

don't. I'm waiting for @outfoxxed to finish at least the first parts of shared qml. I'll write the prompt, feel free to improve it later, but I have a baseline decided and it needs to be done according to it.

would xdph, when using this protocol, end up having 2 prompts (1st -> choose, 2nd -> yes/no allow)

No. On linux, we can track it easily with /proc.
Obviously verification will be allowed to be disabled for specific binaries in the config, e.g. grim.


✨ Mobile | Camera on the latest iPhone doesn't focus and freezes on the next attempt to open

Cc: @camillars
Pain

Suggested Solution

Tasks

[ ] ...
[ ] ...

Acceptance Criteria

[ ] Meets Definition of Done - https://github.com/SSWConsulting/SSW.Rewards.Mobile/blob/main/_docs/Definition-of-Done.md
[ ] ...

More Information

Screenshots

Thanks!

Hi @AntPolkanov
adding context:
at the last few Tina conferences, Levi and I couldn't use the QR code scanner functionality - it would not focus on the image properly to be able to scan the code.
I am on an iPhone 15 pro max - Levi uses an iPhone 15 Pro afaik.
Thanks.

FYI this is not unique to SSW Rewards - it happens everywhere there is a built-in code scanner in an app. It effects all iPhone 15s - the new main camera cannot focus on things up close.
https://discussions.apple.com/thread/255148370?sortBy=best
There are a bunch of discussions like above where other people have the same problem.

The focus issue on newer iPhones should be improved after #953 which will improve the zoom depending on the device used.
That said, due to the increased minimum focus distance on newer iPhones, these devices will still need to maintain more of a distance from the QR code in order to focus - if it's not in focus, keep moving back. The increased zoom should allow it to be scanned once it's moved back enough to focus.
A better solution would be allow adjusting lenses but the current code scanning library doesn't allow this. We'll need to research something better.

Done - this should be much improved now.
We've moved to a new scanning library which works better out of the box, and allows us better control over things like zooming which can switch between lenses.

Figure: New zoom buttons


feat(protocol): simplify protocol and remove prover pool from core protocol

Inspired by Brecht's feature request, this PR aims to separate the current prover (pool) contract from the core protocol, allowing various prover contract designs. Taiko will act as the "glue" between the core protocol and different prover contracts.
Changes introduced in this PR:

Block Proposal: Blocks must assign a non-zero prover address, and proposers will pay a non-refundable Ether fee to the prover. The prover will burn Taiko tokens as a bond, returned if proof is submitted within 90 minutes; otherwise, the block opens, and half the bond goes to the actual prover.
Prover Authorization: If an EOA, must authorize the proposer with a valid ECDSA signature; if a contract, must have a onBlockAssigned function that doesn't revert.
Notification Calls: Removed on-chain notification calls to prover (pool) contract to prevent malicious exploitation.
Prover (Pool) Contract and API: Deleted IProverPool. Taiko and partners will create a Pool API server for proposers to access proving services.
Token and Configuration: Taiko token supply won't increase; decimals are set to 18. TaikoConfig is simplified, loaded from a Library for testing.

Taiko Token functions as a bond token for provers.

[ ] @davidtaikocha @smtmfft I added two TODOs for you in this PR.

This doesn't yet contain any anti-centralization measures so potentially the current system could turn into something that is fully centralized. I proposed some possible measurements in my initial post, I think the burn one is pretty nice and simple but does depend on some kind of sybil resistance mechanism (which could just be the bond, but that would be inefficient). But also seems okay to me to just not implement any of them for now and see what happens on mainnet or explore other possible solutions before committing to any specific solution because it will increase the complexity a bit (not too much though).

I still have questions regarding the burn. I'll set up a call to talk about it with you and Dani.


Wrong order in styles inserted inline

Type
- [ X ] bug report -> please search issues before submitting
- [ ] feature request

Versions
Angular CLI: 1.5.0
Node: 7.10.0
OS: win32 x64
Angular: 5.0.0
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.5.0
@angular-devkit/build-optimizer: 0.0.36
@angular-devkit/core: 0.0.22
@angular-devkit/schematics: 0.0.42
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.8.0
@schematics/angular: 0.1.11
@schematics/schematics: 0.0.11
typescript: 2.4.2
webpack: 3.8.1

Windows 10

Repro steps

External library with scss files and components with ViewEncapsulation.None
custom override in style.scss of a variable used in the library at prev step, reevaluation of the full Scss stack in style.scss ( as in the css generated locally overrides the rule in the external library)

Observed behavior
The new generated css is inserted before the external library one so all the overrides were ignored
Desired behavior
The new generated css style should be inserted always as last
Mention any other details that might be useful (optional)

Hi @ZIOLele
Could you provide a git repo that we can clone for reproducing this error?

I'm sorry, but we can't reproduce the problem following the instructions you provided.
Remember that we have a large number of issues to resolve, and have only a limited amount of time to reproduce your issue.
Short, explicit instructions make it much more likely we'll be able to reproduce the problem so we can fix it.
If the problem persists, please open a new issue following our submission guidelines.
A good way to make a minimal repro is to create a new app via ng new repro-app and adding the minimum possible code to show the problem. Then you can push this repository to github and link it here.


Entity persistence

We inherently create a conflict in the Android client across plans if a task has been generated server side and the Android client hasn’t synced. This is the case when we have multiple plans working in the same operational area and a new plan is created in that same operational area. Additionally,  The current process requires a duplicate registration of that family in the second plan.
Below is a list of entities that must persist across plans:
Jurisdiction Location (We may need to edit jurisdiction locations at some time in the future in the Android client)
Non-Jurisdiction Location
Family
Family Member
Documentation found on Reveal Jira
How to create a CarePlan for a location without a patient discussion. No timelines, ending discussion - RESOLVED.

@ekigamba what do you mean by "workflow" in this context? a workflow is defined by one or more plan and activity definitions

@pld This refers to the workflow api being implemented on the SDK

K cool, thanks, so that's not really a FHIR thing but the Android FHIR SDK Workflow API.
Reading through the issue, the way we're structuring the FHIR resource graph might also address these issues


Return / Exchange error thrown ( negative amount value in first position JSON )

Hi guys,
the situation occurs if we have an item return and exchange.
Real world example : You get a L size shirt, but you need to exchange for XXL size shirt.
The operator does not first Storno the old receipt, but issue an 'return/exchange' receipt where one item is negative ( returned ) and one positive ( exchanged ). In the protocols ( Datecs, Tremol etc... ) it is the negative value in the sell article commands.
The JSON will be :
{
  "uniqueSaleNumber": "DT000000-0001-0000001",

  "items": [
    {
      "text": "Shirt L",
      "quantity": 1,
      "unitPrice": -10,
      "taxGroup": 2
    },

    {
      "text": "Shirt XXL",
      "quantity": 1,
      "unitPrice": 10,
      "taxGroup": 2,
    }
  ],
  "payments": []
}

When issued with equal amount values than 'Payment' must be empty or it will fail with 'positive value needed' ( This is another thing as sometimes we may have a 0 amount value as a total, but it can be 'mitigated' by not sending the payments at all and leave them to be auto-calculated  )..
The issue is when we have the negative value in first position, then we'll get an error :
{
    "receiptNumber": "",
    "receiptDateTime": "0001-01-01T00:00:00",
    "receiptAmount": 0,
    "fiscalMemorySerialNumber": "02830967",
    "ok": false,
    "messages": [
        {
            "type": "error",
            "code": "E199",
            "text": "General error"
        },
        {
            "type": "error",
            "code": "E404",
            "text": "The command is not allowed in the current fiscal mode"
        }
...

Test unit : Datecs DP-150
Test version : v.1.0.1010.1440
Thank you.
debug.log

Unit price cannot be negative. Your version of ErpNet.FP is way to old and accepts negative unitPrice. In newer versions we dissallow this, because is not supported by all fiscal devices.

The way to do this is to make an reversalReceipt for the first unit (reason: refund) and create new receipt for the second unit.


Slayer: Slayer task name blank when completing task

When completing a slayer task that gives no slayer points (haven't tried slayer tasks that gives points), the plugin puts out the slayer task name as blank. I got this with multiple tasks that gives no points.

Universal Discord version: 8eebad1d
Enable Slayer: On
Send Image: On
Notification Image: %USERNAME% has completed a slayer task: %TASK%, getting %POINTS% points and making that %TASKCOUNT% tasks completed

The problem also exists on tasks with slayer points.

Just updated the plugin and it didn't post the slayer notification on Discord. I had this issue before the update as well but once which i thought if could be a conflict with the loot logger, but it was not.
The plugin was enabled during the Slayer task, I'm not sure if that could trigger this issue.

Just done a quick that, the task name string does now work!

There's a little bug though, might've cause by not posting the previous task completion: The completed task counter is off minus 1. Meaning the plugin posts 265 tasks done, while I've done 266.


Server crashes on starting

Environment Versions

OS Type Windows
Node version: $ node --version 12.14.0
http-server version: $ http-server --version 14.1.1

Steps to reproduce
http-server
Expected result
Server starting successfully
Actual result
$ http-server
Starting up http-server, serving ./

http-server version: 14.1.1

http-server settings:
CORS: disabled
Cache: 3600 seconds
Connection Timeout: 120 seconds
Directory Listings: visible
AutoIndex: visible
Serve GZIP Files: false
Serve Brotli Files: false
Default File Extension: none

Available on:
  http://<IP_ADDRESS>:8080
  http://<IP_ADDRESS>:8080
  http://<IP_ADDRESS>:8080
Hit CTRL-C to stop the server

events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: read EBADF
    at Pipe.onStreamRead (internal/stream_base_commons.js:201:27)
Emitted 'error' event on Socket instance at:
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: 'EBADF',
  code: 'EBADF',
  syscall: 'read'
}

Have tried versions 13.0.2 and older ones like 0.12.3 (was working with 12.14.0 in my previous laptop). Also have tried changing port, same result either way.
I finally got it to work with node version 17.0.0 but my app does not support that version. Is there something I can change to get it to work with node version 12.14.0?

Does updating Node to anything lower than 17 help? Recent versions of http-server suffer from a bug with 12.15  that's not reproducible with Node 12.16

Thanks for your reply. Got it working with node 12.17.0 (12.6.* not working either). Thankfully my app supports that version. Thanks again.


⚠ Fortnite has degraded performance

In 574d70f, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1518 ms

Resolved: Fortnite performance has improved in 3161c4b.


Add provenance step to release

Signed-off-by: Juan Antonio Osorio<EMAIL_ADDRESS>

Codecov Report

Merging #21 (6875af8) into main (5db4c0e) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #21   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            7         7
  Lines          153       153
=========================================
  Hits           153       153

Flag
Coverage Δ

unittests
100.00% <ø> (ø)

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

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5db4c0e...6875af8. Read the comment docs.


bcm283x: Do not use dmaWaitcyclesMax.

It looks like dmaWaitCycles is a count for bus clock rather than DREQ which is our DMA clock.

Non-zero waits in initBlock for DMA CB does not work as a divisor of the DMA clock and we should remove the argument.
dmaWaitcyclesMax is not meaningful for upper bound of the divisor. We want to replace it with 0 in most cases.

Merged to https://github.com/periph/host/issues/44.


AppImage publishing relies on script hosted on another web site

Merged https://github.com/PowerShell/PowerShell/pull/2082 prematurely.  @lzybkr brought to my attention that his concern wasn't addressed.
https://github.com/PowerShell/PowerShell/blob/master/tools/appimage.sh#L41
Relies on
https://github.com/probonopd/AppImages/raw/e05cbebc62c86f8c602d74d9050bbfbf10df1c69/functions.sh

which internally gets and executes other scripts.
If any of these scripts are compromised, we'll run arbitrary code as part of our publishing pipeline.
We need to resolve this vulnerability before we start publishing appimages.
 The only way to compromise it would be to create a hash collision, and overwrite that on the repo, or compromise GitHub. But if GitHub is compromised, or a hash collision is made, then the game's up anyway.

I think @SteveL-MSFT is concerned with the files that the script mentioned above downloads (search for "wget"). I think the (only?) solution is to mirror the script and the files it downloads, and change the links in the script to your mirror.

That's exactly what @SteveL-MSFT and I are concerned about.
Another concern is brittleness and being able to reproduce issues.  There is no coherent package or set of packages, pieces are pulled from releases, master, and latest successful build in CI.
If AppImage were accepted into a trusted repository - then I think we could happily use these tools.

A trusted repository would be ideal.  Caching local copies may be a viable short term solution.

Hm... I mean we currently download wget and lots of other packages from each distro's repository already (outside of this script). What exactly are we concerned about here?

I think the key phrase there is "each distro's repository" which I would equivocate with "trusted repository".

If your definition of a "trusted repository" only covers distribution repositories, then it it unlikely to happen soon. Even though someone has filed an intent to package for debian, it will be quite some time until it lands in mature distributions that are suitable for building on.
So I see two ways:

You mirror appimagetool, and we rewrite the script that generates the AppImage to use it (no other things downloaded via wget)
You build at least runtime.c as part of your builds, and we rewrite the script that generates the AppImage to use it, mksquashfs (from the distribution repository) and a even more bash scripting (no other things downloaded via wget)

2 is significantly more work than 1. Which route do you want to go?

The first option seems acceptable to me.  Thanks!

@SteveL-MSFT implemented here. Travis CI build running.

This can't get compromised, it's pinned to a commit hash. The only way to compromise it would be to create a hash collision, and overwrite that on the repo, or compromise GitHub. But if GitHub is compromised, or a hash collision is made, then the game's up anyway.

@andschwa the timing of this statement is pretty hilarious given the SHA-1 news. Linus wrote an interesting piece on why it's not a big deal for Git given that hashes aren't being used for security, but I guess he wasn't thinking of our particular scenario. ;)

@joeyaiello I like to think that I jinxed that!


Add copy fallback for reflink-based linker

See: https://twitter.com/mpr0010/status/1758299951254388875.

Same issue here, and it's on a mac.
I have my python package in case-sensitive volume e.g. /Volumnes/casesensitive and when I try to uv pip install -e '.[dev,testing]', I get an errors along the lines of
error: Failed to build editables
  Caused by: Failed to build editable: file:///Volumes/casesensitive/MyTestPackage
  Caused by: Failed to install requirements from build-system.requires (install)
  Caused by: Failed to install build dependencies
  Caused by: Failed to install: setuptools-69.1.0-py3-none-any.whl (setuptools==69.1.0)
  Caused by: Failed to reflink /Volumes/casesensitive/uvc/archive-v0/Zgihw_1YQkIZZNdz81Rtf/setuptools-69.1.0.dist-info to /private/var/folders/43/29_b2rv50rj6c9t29s0t5w5whc959c/T/.tmpYrzRHM/.venv/lib/python3.10/site-packages/setuptools-69.1.0.dist-info
  Caused by: Cross-device link (os error 18)

Thanks! This one should be straightforward to fix. (In the interim, I might suggest setting UV_CACHE_DIR to something in the same volume as your projects, it will also speed up installation.)

No worries, I'm still testing this out. I had tried UV_CACHE_DIR to be on the same volume as my projects, but as can be seen in the earlier logs, there's a /private/var... path that popped up, that I don't think I have control over.

I looked again into it, and tried out with the newer 0.1.4 version.
Setting the cache dir to be on the same volume

Succeeds if I install normally uv pip install MyTestPackage[dev,testing]
Fails if I install in editable mode  uv pip install -e '.[dev,testing]' and the failure shows /private/var/....

And in (2), it fails with the cross-device link error seen above?

Yes. I edited the message to add more verbose output

Hm so in pip install we create a temporary directory in the current virtual environment
https://github.com/astral-sh/uv/blob/b5617198f35c89a33f073c677ed9164bb661509c/crates/uv/src/commands/pip_install.rs#L188
https://github.com/astral-sh/uv/blob/b5617198f35c89a33f073c677ed9164bb661509c/crates/uv/src/commands/pip_install.rs#L360
but eventually we get to
https://github.com/astral-sh/uv/blob/12fea1d058083a4f8a032ca8295a7d95a776292e/crates/uv-build/src/lib.rs#L286
via
https://github.com/astral-sh/uv/blob/2586f655bbf650a9797c8f88b6d9066eefe7a3dc/crates/uv-dispatch/src/lib.rs#L274
https://github.com/astral-sh/uv/blob/340cb67a8b2a708996bd87369d2cadf48ef9df63/crates/uv-distribution/src/source/mod.rs#L954
where we create a temporary directory to actually perform the build but it is not scoped to the current virtual environment or our cache (hence your issue)

I've just tried the 0.1.5 release and it finally works :)
I haven't said it earlier in my comments here, and on other issues, but I have to say it now, Thank you for your awesome work... this is great ⚡ 🚀

I've just tried the 0.1.5 release and it finally works :)
I haven't said it earlier in my comments here, and on other issues, but I have to say it now, Thank you for your awesome work... this is great ⚡ 🚀

I run uv in an additional APFS (Case-sensitive) volume, but it does not work.

Thank you!
@ifplusor we still need to add a fallback copy as described in this issue, but until then you should be able to set UV_CACHE_DIR to avoid copying across volumes.

Should be fixed in v0.1.7 (out now).


[Form Input Custom Classes] [data-te-class-notch-leading-valid, middle and trailing not working in Nuxt 3]

Describe the bug
I try to follow the docs regarding applying a custom class when the field is in valid state with vee-validate, yum and implementing custom validation with those said packages. But it seems that it doesn't override the default valid classes on the input field/s.
To Reproduce
Steps to reproduce the behavior:

Copying the login form component from docs
Applying validation with vee-validate and yum, then integrate my way to create custom validation
Since I want to apply the normal state of the field when the value is valid, I try to implement the data-te-class-notch-leading, middle, and trailing-valid attributes to input wrapper
When I try it to Edge browser(Incognito), I test the fields for valid inputs but it doesn't override the default valid TW classes

Expected behavior
It should be able to override the input valid state when validation is passed with data-te-class-notch-leading-valid, data-te-class-notch-middle-valid, and data-te-class-notch-trailing-valid.
Actual behavior
It doesn't override the default input valid state classes from tw-elements.
Show your code
<script setup>
import { onMounted } from 'vue'
import { useForm } from 'vee-validate';
import * as yup from 'yup';

const emit = defineEmits(['login', 'clearLoginError'])
const props = defineProps({
  formErrors: {
    type: Object,
    default: null
  }
})
const { meta, errors, handleSubmit, defineField } = useForm({
  validationSchema: yup.object({
    email: yup.string().email().required(),
    password: yup.string().min(6).required(),
  })
})
const [email, emailAttrs] = defineField('email');
const [password, passwordAttrs] = defineField('password');
const onSubmit = handleSubmit(values => {
  console.log('onSubmit')
  emit('login', JSON.parse(values))
})

function handleClearError(field) {
  emit('clearLoginError', field)
}

onMounted(async () => {
  const {
    Input,
    Ripple,
    Validation,
    initTE,
  } = await import('tw-elements')

  initTE({ Input, Ripple, Validation }, { allowReinits: true })
})
</script>

<template>
  <form
    data-te-validation-init
    data-te-active-validation="false"
    :data-te-validated="meta.valid || !!props.value?.formErrors"
    @submit.prevent="onSubmit"
  >
    <div
      class="relative mb-6"
      data-te-input-wrapper-init
      data-te-class-notch-leading-valid="border-[#e5e5e5] dark:border-[#e5e5e5] group-data-[te-input-focused]:shadow-[-1px_0_0_#e5e5e5,_0_1px_0_0_#e5e5e5,_0_-1px_0_0_#e5e5e5] group-data-[te-input-focused]:border-[#e5e5e5]"
      data-te-class-notch-middle-valid="border-[#e5e5e5] dark:border-[#e5e5e5] group-data-[te-input-focused]:shadow-[0_1px_0_0_#e5e5e5] group-data-[te-input-focused]:border-[#e5e5e5]"
      data-te-class-notch-trailing-valid="border-[#e5e5e5] dark:border-[#e5e5e5] group-data-[te-input-focused]:shadow-[1px_0_0_#e5e5e5,_0_-1px_0_0_#e5e5e5,_0_1px_0_0_#e5e5e5] group-data-[te-input-focused]:border-[#e5e5e5]"
      data-te-validate="input"
      data-te-valid-feedback=" "
      :data-te-invalid-feedback="errors?.email || props.value?.formErrors?.email"
      :data-te-validation-state="errors?.email || props.value?.formErrors?.email ? 'invalid' : 'valid'"
    >
      <input
        v-model="email"
        v-bind="emailAttrs"
        type="text"
        class="peer block min-h-[auto] w-full rounded border-0 bg-transparent px-3 py-[0.32rem] leading-[2.15] outline-none transition-all duration-200 ease-linear focus:placeholder:opacity-100 data-[te-input-state-active]:placeholder:opacity-100 motion-reduce:transition-none dark:text-neutral-200 dark:placeholder:text-neutral-200 [&:not([data-te-input-placeholder-active])]:placeholder:opacity-0"
        name="email"
        placeholder="Email Address"
        @input.once="handleClearError('email')"
      />
      <label
        for="email"
        class="pointer-events-none absolute left-3 top-0 mb-0 max-w-[90%] origin-[0_0] truncate pt-[0.37rem] leading-[2.15] text-neutral-500 transition-all duration-200 ease-out peer-focus:-translate-y-[1.15rem] peer-focus:scale-[0.8] peer-focus:text-primary peer-data-[te-input-state-active]:-translate-y-[1.15rem] peer-data-[te-input-state-active]:scale-[0.8] motion-reduce:transition-none dark:text-neutral-200 dark:peer-focus:text-primary"
      >
        Email Address
      </label>
    </div>

    <div class="relative mb-6"
      data-te-input-wrapper-init
      data-te-validate="input"
      data-te-valid-feedback=" "
      data-te-class-notch-leading-valid="border-[#e5e5e5] dark:border-[#e5e5e5] group-data-[te-input-focused]:shadow-[-1px_0_0_#e5e5e5,_0_1px_0_0_#e5e5e5,_0_-1px_0_0_#e5e5e5] group-data-[te-input-focused]:border-[#e5e5e5]"
      data-te-class-notch-middle-valid="border-[#e5e5e5] dark:border-[#e5e5e5] group-data-[te-input-focused]:shadow-[0_1px_0_0_#e5e5e5] group-data-[te-input-focused]:border-[#e5e5e5]"
      data-te-class-notch-trailing-valid="border-[#e5e5e5] dark:border-[#e5e5e5] group-data-[te-input-focused]:shadow-[1px_0_0_#e5e5e5,_0_-1px_0_0_#e5e5e5,_0_1px_0_0_#e5e5e5] group-data-[te-input-focused]:border-[#e5e5e5]"
      :data-te-invalid-feedback="errors?.password || props.value?.formErrors?.password"
      :data-te-validation-state="errors?.password || props.value?.formErrors?.password ? 'invalid' : 'valid'"
    >
      <input
        v-model="password"
        v-bind="passwordAttrs"
        type="password"
        class="peer block min-h-[auto] w-full rounded border-0 bg-transparent px-3 py-[0.32rem] leading-[2.15] outline-none transition-all duration-200 ease-linear focus:placeholder:opacity-100 data-[te-input-state-active]:placeholder:opacity-100 motion-reduce:transition-none dark:text-neutral-200 dark:placeholder:text-neutral-200 [&:not([data-te-input-placeholder-active])]:placeholder:opacity-0"
        name="password"
        placeholder="Password"
        @input.once="handleClearError('password')"
      />
      <label
        for="password"
        class="pointer-events-none absolute left-3 top-0 mb-0 max-w-[90%] origin-[0_0] truncate pt-[0.37rem] leading-[2.15] text-neutral-500 transition-all duration-200 ease-out peer-focus:-translate-y-[1.15rem] peer-focus:scale-[0.8] peer-focus:text-primary peer-data-[te-input-state-active]:-translate-y-[1.15rem] peer-data-[te-input-state-active]:scale-[0.8] motion-reduce:transition-none dark:text-neutral-200 dark:peer-focus:text-primary"
      >
        Password
      </label>
    </div>

    <button
      type="submit"
      class="inline-block w-full rounded bg-primary px-7 pb-2.5 pt-3 text-sm font-medium uppercase leading-normal text-white shadow-[0_4px_9px_-4px_#3b71ca] transition duration-150 ease-in-out hover:bg-primary-600 hover:shadow-[0_8px_9px_-4px_rgba(59,113,202,0.3),0_4px_18px_0_rgba(59,113,202,0.2)] focus:bg-primary-600 focus:shadow-[0_8px_9px_-4px_rgba(59,113,202,0.3),0_4px_18px_0_rgba(59,113,202,0.2)] focus:outline-none focus:ring-0 active:bg-primary-700 active:shadow-[0_8px_9px_-4px_rgba(59,113,202,0.3),0_4px_18px_0_rgba(59,113,202,0.2)] dark:shadow-[0_4px_9px_-4px_rgba(59,113,202,0.5)] dark:hover:shadow-[0_8px_9px_-4px_rgba(59,113,202,0.2),0_4px_18px_0_rgba(59,113,202,0.1)] dark:focus:shadow-[0_8px_9px_-4px_rgba(59,113,202,0.2),0_4px_18px_0_rgba(59,113,202,0.1)] dark:active:shadow-[0_8px_9px_-4px_rgba(59,113,202,0.2),0_4px_18px_0_rgba(59,113,202,0.1)]"
      data-te-submit-btn-ref
      :class="!meta.valid || !!props.value?.formErrors ? 'pointer-events-none disabled:opacity-70' : ''"
      :disabled="!meta.valid || !!props.value?.formErrors"
    >
      Log in {{ meta.valid }} {{ !!props.value?.formErrors }} {{ !meta.valid && !!props.value?.formErrors }}
    </button>
  </form>
</template>

Desktop (please complete the following information):

Device: Macbook Pro M2 Max
OS: macOS 14.2.1 23C71 arm64
Browser: Edge Browser
Version: 121.0.2277.112

Hoping for the response, help and guidance for this since it is one of the great UI Kit I use since Vuetify.
Thanks.

Hi @noelc10, remove data-te-class attributes from input wrappers and add them to the form element. Then it should change your valid styles correctly.

@iprzybysz thank you so much for your response. I appreciate it a lot.
It looks like it's working now, hopefully they update the docs about how to properly implement these attributes so that a new user like me will be guided and most of the users will find it friendly when skimming on the docs.
Thank you so much 🙇


Integrate Lightmaps into Game

Define binary format that gets output by the offline lightmapping tool.
Modify polysoup and map_parser to get relevant data such as textures per face easier for using it in the lightmapping-tool.
Read that binary and apply lightmaps to static level geometry.

@hm-de-paoli You can now outpout the polygons to a binary format that contains all of the information you need:
struct PolySoupDataHeader {
    uint8_t     magic[4];   // must be PLYS
    uint8_t     version[4];
    uint64_t    numPolys;   // num of MapPolygons
    uint64_t    polySize; // sizeof(MapPolygon)
};

#pragma pack(push,1)
struct PolySoupData {
    PolySoupDataHeader  header;
    MapPolygon*         polys;
};
#pragma pack(pop)

As a reminder, a MapPolygon consists of:
struct QuakeMapVertex {
    glm::f64vec3  pos;
    glm::vec2     uv;
};

struct MapPolygon
{
    std::vector<QuakeMapVertex> vertices;
    glm::f64vec3                normal;
    // NOTE: (Michael): A single, solid color would be good for testing
    // the lightmapper. Thus, define a few solid color textures
    // to use in TrenchBroom.
    std::string                 textureName;  // located in /game/textures/<*.png>
    uint64_t                    surfaceFlags; // eg. transparency, emissiveness, ...
    uint64_t                    contentFlags; // eg. water, slime, lava, ...
};

Also there is a new function:
void                    writePolySoupBinary(std::string fileName, const std::vector<MapPolygon>& polys);

That writes out a file containing one PolySoupData struct (see above). That should be everything you need.
The texturefiles are not included as actual pixel data. We can actually do this in the future if we think
this makes sense but it would mean that if we replace a texture in GIMP (or whatever) the whole file
has to be rewritten, making it slightly inconvenient for the artist who maybe doesn't bake a new lightmap all the time.
So for now, you have to load the textures yourself by looking in the textureName field of a MapPolygon.
Cheers, Michael.


Update Logger singleton creation, add test and docstring

What has been done
With this PR, just made a few tweaks to the way we create the singleton instance of the Logger class.

The check for the existence of the class instance has been moved from the global dictionary to the Logger's __new__ method.
The function get_singletonish_logger() has been replaced with a simple instantiation by calling Logger().
A test (in the file test_singleton.py) has been added to verify that the created instances have the same memory address.
A brief docstring has been added to the Logger class.
.vscode folder has been added to .gitignore.

How to test
make lint && make test

or if you want to test singleton creation only:
python -m pytest tests/test_singleton.py -s --disable-warnings

In previous design, we can either create a singleton logger and standalone logger. in case of creating standalone one, module is being set and this can be printed in the log messages. With this design, logger must be singleton. How can be highlighted the triggered module?

I haven't seen the Logger being used as a non-singleton in the current design, but it's possible I may have missed it. If having a standalone Logger with module-specific messages is needed, I can add argument checking when the Logger is instantiated using __new__ method. If it includes a "module" parameter, it creates a new standalone Logger instead of a singleton.
Let me know if this approach works for you!

@kremnik never mind the stand alone thing. That feature is available but not being used at all.
It is good to go if you restore vscode folder.

Thank you for your contribution


options json encode use options

add json_encode options like JSON_UNESCAPED_UNICODE

Thank you for this PR.
I dont know why this is needed. I am also missing a test.

Thank you for this PR.
I dont know why this is needed. I am also missing a test.

Closing due to inactivity.

Thank you for this PR.
I dont know why this is needed. I am also missing a test.

use Chinese or other language

use Chinese or other language


Error message- Simulating Can and flexray Examples

Hi guys,
I am new to this environment, and I tried to run your example tests for CAN and FlexRay in OMNeT++ 6.0pre13. I am facing errors while running Can and FlexRay example codes. Could you please give me a solution?.Thank you.

Hi,
currently FiCo4OMNeT is build and tested against OMNeT++ 5.5.1. We will probably adapt FiCo4OMNeT for OMNeT++ 6 when its final version is released.
Best regards

Thank you:)


dist folder missing

Had to npm-install to grab justified-layout.js since it isn't in the source tree on github.

where is the dist folder to make the demo.html works?

You can find dist directory in gh-pages branch.
https://github.com/flickr/justified-layout/tree/gh-pages/dist

We don’t check in the dist folder, but it is included when you do an npm install. Check node_modules/justified-layout/dist/justified-layout.js. There’s also a minified file alongside it.


How to deploy a completion api instead of a chat completion api

Reminder

[X] I have read the README and searched the existing issues.

System Info

llamafactory version: 0.9.1.dev0
Platform: Linux-3.10.0-1160.el7.x86_64-x86_64-with-glibc2.17
Python version: 3.11.9
PyTorch version: 2.4.0 (GPU)
Transformers version: 4.43.4
Datasets version: 2.19.2
Accelerate version: 0.30.1
PEFT version: 0.11.1
TRL version: 0.9.4
GPU type: NVIDIA A800-SXM4-80GB
DeepSpeed version: 0.14.5
vLLM version: 0.6.1.post2

Reproduction
"POST /v1/chat/completions HTTP/1.1" 200 OK
"POST /v1/completions HTTP/1.1" 404 Not Found

Expected behavior
I want to deploy a completion-only API on a continue-pretrained model. Now the default deployment is using the chat/completion endpoint.
Others
No response

use empty template and the chat completion api

Thank you！


runtests not validating all bash scripts

I was looking for prior art for the testing of Terraform configs, which led to me borrowing parts of the runtests script in this repo for mozilla-platform-ops/devservices-aws/pull/55.
However whilst working on that I noticed that the current implementation only searches for scripts with the shebang #!/usr/bin/env bash - and whilst that's the best practice shebang, it's not unknown for people to use #!/bin/bash, #!/usr/bin/bash or variants with sh instead of bash.
And in fact, there are scripts in this repo that use these alternative shebangs:
https://github.com/travis-infrastructure/terraform-config/search?q="%2Fbin%2Fbash"
I'd recommend using this instead:
git grep -El '^#!/.+\b(bash|sh)\b'
(note the extended regex param)
Testing briefly against this repo using the new regex results in failures in the previously unchecked files - which I was going to open a PR to resolve, but some of the failures are due to variables set by Terraform that shellcheck can't see - so not sure how you'd want to handle that.
Note also that newer versions of shellcheck appears to find more issues in the rest of the repo too (initially I was testing locally with a newer version than that used in the current Travis run) - might be worth updating at some point.

Ah I forgot to paste an example failing job:
https://travis-ci.org/edmorley/terraform-config/builds/251412172

Note also that newer versions of shellcheck appears to find more issues in the rest of the repo too  ... - might be worth updating at some point.

In case it saves anyone time in the future (since it confused me for a bit this morning for mozilla-platform-ops/devservices-aws#55)...
If switching from the custom built binaries in the travis-blue-public S3 bucket to the ones produced upstream (such as https://storage.googleapis.com/shellcheck/shellcheck-v0.4.6.linux.x86_64.tar.xz), make sure to add --strip-components=1 to the tar invocation, otherwise the shellcheck binary ends up in a subdirectory and so not on PATH, which is easy to miss since then the older preinstalled shellcheck binary in /usr/bin/local is silently used instead.

Resolved via #209


Optimizes normalize_headers for performance

Optimizes the WebMock::Util::Headers.normalize_headers method to:

Create less objects
Avoid using Regexp where possible
Hoists constants

More details can be found in the related issue, including performance benchmarks:
https://github.com/bblimke/webmock/issues/1027

Is there anything that can be done to help this along? I've been profiling our app's system specs (same one as @baweaver), and this is one I keep coming back to.

Thank you for merging 🙇🏻  Any chance we can get a release with it and https://github.com/bblimke/webmock/pull/1033 🙏🏻

@technicalpickles 3.19.0 is now released. thank you!


Braces highlighting does not work in python

This issue has been moved from a ticket on Developer Community.

[severity:It's more difficult to complete my work]
When I position the cursor on a brace, the matching left or right brace is not highlighted. I have attached the screenshot.

Original Comments
Feedback Bot on 7/21/2022, 06:51 PM:
(private comment, text removed)

Original Solutions
(no solutions)

Hi there, if you move the cursor to the right side of the close bracket you're trying to highlight, do you see the highlighting?

Going to close this out. If the issue still persists, please reopen with the information requested. Thanks.😊


Missing Example in C Naming Conventions

The second-to-last paragraph in the C Style Guide Naming Conventions refers to missing examples of why loop variables shouldn't always be one letter. An adaptation of the Python examples might be:
No:
for {int x = 0; x < data_len; x++) {
    // ...
    // 10 lines of code
    // ...
    float y = m / 60;
    // ...
    // 50 lines of code
    // ...
    data[x] += y
}

Yes:
for {int student_index = 0; x < data_len; x++) {
    // ...
    // 10 lines of code
    // ...
    float hours_worked = m / 60;
    // ...
    // 50 lines of code
    // ...
    data[student_index] += hours_worked;
}

Thanks, I've added the missing example (largely the one above, with some minor tweaks). I've also reformatted that section, as it was hard to tell that the section includes a list of (not entirely related) naming conventions.


supply init returns that client_email is missing.

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

Issue Description
Complete output when running fastlane, including the stack trace and command used
> $ supply init                                                                                [±feature-2.3.x ●]
-------------------------------------------------------------------------------------------
😨  An error occured. Please enable crash reports using `fastlane enable_crash_reporting`.
👍  This makes resolving issues much easier and helps improve fastlane.
🔒  The reports will be stored securely on getsentry.com.
🙊  More information about privacy: https://github.com/fastlane/fastlane/releases/tag/1.33.3
-------------------------------------------------------------------------------------------
/Library/Ruby/Gems/2.0.0/gems/googleauth-0.5.1/lib/googleauth/service_account.rb:76:in `read_json_key': [!] missing client_email (RuntimeError)
	from /Library/Ruby/Gems/2.0.0/gems/googleauth-0.5.1/lib/googleauth/service_account.rb:59:in `make_creds'
	from /Library/Ruby/Gems/2.0.0/gems/supply-0.7.0/lib/supply/client.rb:53:in `initialize'
	from /Library/Ruby/Gems/2.0.0/gems/supply-0.7.0/lib/supply/client.rb:29:in `new'
	from /Library/Ruby/Gems/2.0.0/gems/supply-0.7.0/lib/supply/client.rb:29:in `make_from_config'
	from /Library/Ruby/Gems/2.0.0/gems/supply-0.7.0/lib/supply/setup.rb:99:in `client'
	from /Library/Ruby/Gems/2.0.0/gems/supply-0.7.0/lib/supply/setup.rb:9:in `perform_download'
	from /Library/Ruby/Gems/2.0.0/gems/supply-0.7.0/lib/supply/commands_generator.rb:51:in `block (2 levels) in run'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
	from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.43.5/lib/fastlane_core/ui/fastlane_runner.rb:26:in `run!'
	from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
	from /Library/Ruby/Gems/2.0.0/gems/supply-0.7.0/lib/supply/commands_generator.rb:57:in `run'
	from /Library/Ruby/Gems/2.0.0/gems/supply-0.7.0/lib/supply/commands_generator.rb:15:in `start'
	from /Library/Ruby/Gems/2.0.0/gems/supply-0.7.0/bin/supply:6:in `<top (required)>'
	from /usr/local/bin/supply:23:in `load'
	from /usr/local/bin/supply:23:in `<main>'

Configuration Files
Please copy the complete content of your Fastfile and any other configuration files you use below:
Fastfile:
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "1.89.0"

default_platform :android

platform :android do
  before_all do
    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
  end

  desc "Runs all the tests"
  lane :test do
    gradle(task: "test")
  end

  desc "Submit a new Beta Build to Crashlytics Beta"
  lane :beta do
    gradle(task: "assembleRelease")
    crashlytics

    # sh "your_script.sh"
    # You can also use other beta testing services here
  end

  desc "Deploy a new version to the Google Play"
  lane :deploy do
    gradle(task: "assembleRelease")
    supply
  end

  # You can define as many lanes as you want

  after_all do |lane|
    # This block is called, only if the executed lane was successful

    # slack(
    #   message: "Successfully deployed new App Update."
    # )
  end

  error do |lane, exception|
    # slack(
    #   message: exception.message,
    #   success: false
    # )
  end
end

# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md

# fastlane reports which actions are used
# No personal data is sent or shared. Learn more at https://github.com/fastlane/enhancer

Environment
fastlane version (run fastlane -v): 1.89.0
supply version: 0.7.0
Do you use bundler to execute fastlane (i.e. bundle exec fastlane)?
Do you use a Ruby environment manager (e.g. chruby, rbenv, rvm)?

my bad, i didn't create a correct json file!.