flutter pub get fails on Flutter plugins supporting only v2 Android Embedding API

This is a very specific bug that only occurs in certain circumstances.
You have a Flutter plugin that supports Android Embedding API v2 but not v1
You have deleted the "example" directory that is generated by the "flutter create --template=plugin" command
When executing "flutter pub get" you will always get the following output:
$ flutter pub get
Running "flutter pub get" in Embedding... 0,4s
The plugin Embedding requires your app to be migrated to the Android embedding v2. Follow the steps on
https://flutter.dev/go/android-project-migration and re-run this command.
Unfortunately, this message is incorrect and quite misleading.
I dug into the source code and it turns out that when pub get is running, it searches for the plugin implementation, which will be in a file something like:
android/src/main/kotlin/com/my_company/my_plugin/MyPlugin.kt
It loads the text for the plugin and scans it for the word "registerWith". If it finds it, it assumes that the plugin supports the Android Embedding v1 API. If not then it assumes that it only supports the v2 API.
Then it tries to look for the following file:
example/android/src/main/AndroidManifest.xml
It then checks in this file to see what the flutterEmbedding value is. If it is not "2" then it displays the message above about needing to migrate the app.
The problem is that if you have a plugin that does not contain the example directory and the AndroidManifest.xml file then you will always get the error above. But it cannot be fixed - you can't upgrade the app to the version 2 API because the app doesn't exist...
This was causing us problems in our CI system when we tried to run dartdoc to generate documentation. dartdoc executes "flutter pub get", which fails and then dartdoc bombs out.
The workaround was to put the keyword "registerWith" somewhere in the plugin's source code.
I have attached a zip file that contains an example that shows this problem. Simple unzip it, cd into the "Embedding" directory and type "dartdoc".
I would like to get involved with Flutter and volunteer to fix this bug myself. I have already extensively investigated it as you can see, so the main thing to do now is to decide the best way to implement the bug fix. Perhaps only check the AndroidManifext.xml file if the example directory exists?
Embedding.zip

Hi @hitman-codehq
I am guessing you mean flutter pub get, I did execute I am getting same error
Running "flutter pub get" in Embedding...                           1.3s
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Warning
──────────────────────────────────────────────────────────────────────────────
Your Flutter application is created using an older version of the Android
embedding. It's being deprecated in favor of Android embedding v2. Follow the
steps at

https://flutter.dev/go/android-project-migration

to migrate your project.
━━━━━━━━━━━━━━━━━━━━━━━━━━━

flutter doctor -v
[✓] Flutter (Channel master, 1.22.0-10.0.pre.341, on Mac OS X 10.15.6 19G2021
    x86_64, locale en-GB)
    • Flutter version 1.22.0-10.0.pre.341 at
      /Users/tahatesser/Code/flutter_master
    • Framework revision 67f51e8ec2 (82 minutes ago), 2020-09-24 10:02:03 -0400
    • Engine revision dd35b5b659
    • Dart version 2.10.0 (build 2.10.0-156.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0, Build version 12A7209
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.49.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.14.1

[✓] Connected device (4 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 10 (API 29)
    • macOS (desktop)  • macos            • darwin-x64     • Mac OS X 10.15.6
      19G2021 x86_64
    • Web Server (web) • web-server       • web-javascript • Flutter Tools
    • Chrome (web)     • chrome           • web-javascript • Google Chrome
      85.0.4183.121

• No issues found!

Can you please provide your flutter doctor -v
Thank you

$ flutter doctor -v
[✓] Flutter (Channel stable, 1.20.4, on Mac OS X 10.15.6 19G2021, locale de-DE)
• Flutter version 1.20.4 at /Users/cward/flutter
• Framework revision fba99f6cf9 (vor 10 Tagen), 2020-09-14 15:32:52 -0700
• Engine revision d1bc06f032
• Dart version 2.9.2
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at /Users/cward/Library/Android/sdk
• Platform android-29, build-tools 29.0.3
• ANDROID_HOME = /Users/cward/Library/Android/sdk
• ANDROID_SDK_ROOT = /Users/cward/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.0, Build version 12A7209
• CocoaPods version 1.9.1
[✓] Android Studio (version 4.0)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 49.0.2
• Dart plugin version 193.7547
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[✓] VS Code (version 1.49.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.14.1
[✓] Connected device (1 available)
• SM G960F (mobile) • 1c614f653c047ece • android-arm64 • Android 10 (API 29)

Even I am running into the above issue when trying to run pub get in my flutter project.

I would like to get involved with Flutter and volunteer to fix this bug myself. I have already extensively investigated it as you can see, so the main thing to do now is to decide the best way to implement the bug fix. Perhaps only check the AndroidManifext.xml file if the example directory exists?

You certainly have extensively investigated!  We always welcome pull requests.  Check out https://github.com/flutter/flutter/blob/master/CONTRIBUTING.md and https://github.com/flutter/flutter/wiki/The-flutter-tool.
Please also consider writing a unit test similar to https://github.com/flutter/flutter/blob/bcd0959ac3dfe7740e0d9ba246d195fd04039977/packages/flutter_tools/test/general.shard/plugins_test.dart#L634 to test the new behavior.

@xster @blasten I just ran into this issue.
Repro steps:

Create a new Flutter plugin
flutter create --template=plugin --platforms=android .
Delete the /example directory
Run flutter pub get

Temporary workaround:
Put an /example app project into the plugin directory.
BTW - it looks like the concept of /example is hard-coded into the Flutter tool. Do you know the rationale behind that? I'm not sure that we should hard-code a singular acceptable name for an example project. Could we add that as a configuration to the pubspec instead?

Trying to clarify what the request is.
1- it sounds like you guys are saying pub get fails. Though I'm not clear on what the failure message is. Is it the v1 usage warning seen in the screenshots above? Are those blocking failures or just warnings?
2- Are those warning themselves incorrect as well? i.e. you're actually using v2 embeddings in the plugins but once you delete the example, it incorrectly thinks you're using v1 embeddings?

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.

this bug is still happening in the latest stable build and very easy to reproduce, why you guys closing the bug ?

@mrifni This bug was closed because the Flutter team was waiting on the response to this question:

Trying to clarify what the request is.
1- it sounds like you guys are saying pub get fails. Though I'm not clear on what the failure message is. Is it the v1 usage warning seen in the screenshots above? Are those blocking failures or just warnings?
2- Are those warning themselves incorrect as well? i.e. you're actually using v2 embeddings in the plugins but once you delete the example, it incorrectly thinks you're using v1 embeddings?

it shouldn't get closed if it's possible to reproduce @jmagman

Trying to clarify what the request is.
1- it sounds like you guys are saying pub get fails. Though I'm not clear on what the failure message is. Is it the v1 usage warning seen in the screenshots above? Are those blocking failures or just warnings?
2- Are those warning themselves incorrect as well? i.e. you're actually using v2 embeddings in the plugins but once you delete the example, it incorrectly thinks you're using v1 embeddings?

@mrifni  you can help by answering those questions if you are facing this same issue.

@pedromassangocode answers based on my try
1- it sounds like you guys are saying pub get fails. Though I'm not clear on what the failure message is. Is it the v1 usage warning seen in the screenshots above? Are those blocking failures or just warnings?
blocking failures
2- Are those warning themselves incorrect as well? i.e. you're actually using v2 embeddings in the plugins but once you delete the example, it incorrectly thinks you're using v1 embeddings?
you're actually using v2 embeddings in the plugins but once you delete the example, it incorrectly thinks you're using v1 embeddings? YES and YES

as I said again its pretty easy to reproduce this error if @pedromassangocode want to really see.

flutter create --template=plugin
Run the existing platform version check unit test and it works.
Delete the example folder and run the existing platform version check unit test and it fails.
Put an empty example folder and run the same unit test again it passes.

pretty simple steps to follow.
thanks

I am quite surprised that this was closed as I thought I was very clear in my initial (very long) description and supplied example.
The problem, as Mohamed says, is that Flutter assumes that you have an example directory in your plugin and if you don't then pub get fails and a completely bogus message is printed.  The message is misleading as it says to upgrade an application that doesn't exist to v2 (i.e. what is usually in the example directory) and the pub get failing causes your build to fail, which is a particular problem if you are building in Jenkins.
So the solution would be simply to check for the existence of the example directory and skip the check if it doesn't exist.

I am quite surprised that this was closed as I thought I was very clear in my initial (very long) description and supplied example.

You were clear, and it shouldn't have been closed.  More information was requested and the waiting for customer response label was applied, which indicates the bug should be closed if the author doesn't update in 21 days.  In this case that label was overkill since your description included a retailed reproduction case.  Sorry about that.

i am also facing same problem , what i the soluion?

I'm getting this error when trying to use AudioCache in my project.
The plugin audioplayers requires your app to be migrated to the Android embedding v2


Images overlap randomly in ListView on Android 7.1

Description
Images from Uri are rendered over each other in a ListView in Xamarin Forms Android 7.1 only
if you set DownsampleToViewSize   to true
Steps to Reproduce
creat listview with cachedImage in it
set DownsampleToViewSize  = true
then you should see images over each other
Expected Behavior
Images should not overlap
Actual Behavior
Some Images overlap
Basic Information

Version with issue: 2.3.3 (Xamarin.FFImageLoading and Xamarin.FFImageLoading.Forms)
Platform: Android 7.1 only

Screenshots

I can't reproduce it. Could you make a repo project?


Fix flaky test in ClientMap Internal Suite

How to categorize this PR?

/area testing
/kind flake
What this PR does / why we need it:
Fixes flaky tests in ClientMap Internal suite. It uses clock.Clock structure in the GenericClientMap, so that we can fake time during unit tests.
Before:
$ ginkgo build ./pkg/client/kubernetes/clientmap/internal
$ stress -p 50 ./pkg/client/kubernetes/clientmap/internal/internal.test
...
3641 runs so far, 2 failures (0.05%)

After:
$ ginkgo build ./pkg/client/kubernetes/clientmap/internal
$ stress -p 50 ./pkg/client/kubernetes/clientmap/internal/internal.test
...
9158 runs so far, 0 failures

Which issue(s) this PR fixes:
Fixes #5410
Special notes for your reviewer:
Release note:

NONE

@shafeeqes can you take a look in this also https://prow.gardener.cloud/view/gs/gardener-prow/pr-logs/pull/gardener_gardener/5687/pull-gardener-unit/1509170313273806848.

/approve

@rfranzke can we fix the other flaky test in this PR only?


A missing ")"

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

congrats on the first PR 🎉


Fill checkbox  delete link

Issue tracker is ONLY used for reporting bugs. New feature ideas should be discussed in the ideas section. Please use the Q&A section for supporting issues. Please use the search function.
If you encountered the issue after you installed, updated, or reloaded the tasks plugin, please try restarting obsidian before reporting the bug.
If you want to report a bug, please follow the guide lines below to help me resolve it.
Expected Behavior

If you mark check box in task line with block link ^, plugin should add close data but doesn't delete block link.
- [ ] #task some my task ^13d821 -> - [x] #task some my task ✅ 2021-09-17
Current Behavior

If you mark check box in task line with block link ^, plugin should add close data between text and block link.
- [ ] #task some my task ^13d821 -> - [x] #task some my task ✅ 2021-09-17 ^13d821
Steps to Reproduce

create task in note - [ ] #task some task
create link to this task in ther same note [[#^8c6091]], your task will become - [ ] #task some task ^8c6091
click on check box in view mode - [ ] #task some task ^8c6091 -> - [x] #task some task ✅ 2021-09-17
link [[#^8c6091]] stops working

expect (from step 3):
3. click on check box in view mode - [ ] #task some task ^8c6091 -> - [x] #task some task ✅ 2021-09-17 ^8c6091
4. link [[#^8c6091]] is still working
Context (Environment)
Obsidian version: 0.12.15
Tasks version: 1.3.0
[x] I have tried it with all other plugins disabled and the error still occurs
Possible Solution

Thank you for the report @InsonusK. I’ll look into it when I have some time. Possibly October.

I keep forgetting this issue and loosing embedded tasks 😢


Evaluate with denotation accuracy and changed to latest dynet

This is still WIP. I want to do two more things in this PR:

Get rid of dependency on CoreNLP by running it offline and making a new format for training data with all that information.
Modify entity linking to store multiple spans for the same entity when it is multi-linked.

@jayantk, if you want to run this now, feel free to merge this. I can start a new PR for those.


Added configuration object support for autocomplete plugin

What ?
Kindly provide feedback as necessary 💃

[FORMS] Enhances the autocomplete plugin usage API with an optional configuration object

From:
data: {
  Google: null,
  Apple: 'apple.com/logo.png'
}

To:
data: {
  Google: null,
  Apple: 'apple.com/logo.png',
  Github: {
    url: 'github.com/logo.png',
    id: 1
  }
}

Why?
This makes it easier for developers to provide a configuration object for the autocomplete plugin. In this PR, an id field is introduced, so that when we catch the change event in our apps, we can easily and accurately map a clicked <li> to our corresponding internal data model without parsing or matching a bunch of text 👍
Example: My autocomplete has options compromised as firstName lastName (dateOfBirth). However, both firstName and lastName can have spaces, so parsing and mapping back to my data model gets messy and unreliable.
My 2 cents is, there should be a better way to map user selections to the source data.
Testing done:

Verified the id field is catchable in the change event handler, eg:

onAutocompleteItemSelected(evt, evtData) {
  const id = evtData.option.data('id');
  console.log(id); // Logs whatever was passed in the source data initialization (eg 1 for 'Github' above)
}

Verified PR changes are backwards-compatible
All unit tests pass

@acburst @Dogfalo Please look into it and do the needful


Add X509CertificateAuthenticationValve into Dropins

Purpose

$Subject

Additional Context

This x509 authentication valve is needed for x509 Certification based authentication to pass when a load balancer is configured with SSL-termination (when the x509 authenticator is proxied through 443 port) [1].

Related Issues

https://github.com/wso2/product-is/pull/4829
https://github.com/wso2/product-is/issues/18437

[1] - https://github.com/wso2-extensions/identity-x509-commons/pull/6

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/7406606391

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/7406606391
Status: success


Azure Quantum Jobs Readme issues

Section link:

Suggestion:  Update t to to:

Section link:

Suggestion: Add [nuget]: https://www.nuget.org/

Section link:

Suggestion:
1.Update to https://cla.microsoft.com
2.Add  [coc]: https://opensource.microsoft.com/codeofconduct/
3.Add [coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/
4.Update to<EMAIL_ADDRESS>@jongio for notification.

Close this issue, due to PR https://github.com/Azure/azure-sdk-for-net/pull/21133 merged.


[Sticky] Simple sticky won't work without an anchor

How can we reproduce this bug?

Step one - follow instructions for basic sticky

Unless you set a data-anchor, the sticky won't work and will just be fixed to the window.

Here's a codepen of it working as expected. What version of Foundation are you on?

In your codepen you are showing a sticky that starts and stick to the top. I guess that for that you don't need an anchor at all.
But take a look at the code example in the doc and try it out and you'll see it doesn't work as it should. The docs are missing the instruction to add an anchor (as the code itself below the instructions actually does).
In any case there is no explanation of the data-anchor on the docs. It jumps from no anchor at all to having two anchors.
Amos

Ahh, true. That line was removed at some point, and probably by me. Apologies.
If you just want to anchor to a single element, say a main-content div, you would just pass it data-anchor="id-of-main-content" or data-options="anchor: id-of-main-content;"

Yeah, I figured it out by looking at the source code of the doc page itself, to see what is the difference between the instructions and the demo :-)

I'll add that back into the docs before the next deploy.

Looks like this was added to the documentation. Closing.


Failed to aquire kernel access

are you on 11.0? you can't use FBI on that right now.

Is there going to be an update soon?

Not unless there's a new kernel exploit.


Microsoft Edge Addon downloads like Chrome webstore

:clipboard: Description
I noticed that there are badges to see the amount of viewers of an extension for Chrome webstore and Firefox. And the new Microsoft Edge has it's own Addons store too. So I wanted to have this badge also.

:link: Data
A badge that shows how many users are using an extension on MS Edge Addons

Like this 👆

:microphone: Motivation
I think there is no public API for this thing.

Duplicate of #4690


[LAB] Week 3_Problem 1_노영래

Problem
Week 3_Problem 1
Source Code
import torch
import torch.nn.functional as F
from random import random
from typing import Callable

##                         Problem 1                          ##
##                                                            ##
##            Arbitary x_train, y_train are given.            ##
##          In function predict(), you should return          ##
##            list y_test corresponding to x_test.            ##
##               y_train only contains 0 and 1.               ##
##             Therefore, use logstic regression.             ##
##                  Made by @jangyoujin0917                   ##
##                                                            ##

# NOTE : 1. Feel free to use torch.optim and tensor.
#        2. In this problem, we will only grade 'predict' function.
#           Function 'training' is only for modularization.

def training(x_train: list[list[float]], y_train: list[float]) -> tuple[list[float], float]:
    x_train_tensor = torch.tensor(x_train, dtype=torch.float32)
    y_train_tensor = torch.tensor(y_train, dtype=torch.float32).view(-1, 1)

    w = torch.randn(1, x_train_tensor.shape[1], requires_grad=True)
    b = torch.randn(1, 1, requires_grad=True)
    learning_rate = 0.01
    epochs = 50000

    for _ in range(epochs):
        logits = torch.matmul(x_train_tensor, w.t()) + b
        y_pred = torch.sigmoid(logits)
        loss = F.binary_cross_entropy(y_pred, y_train_tensor)

        loss.backward()

        with torch.no_grad():
            w -= learning_rate * w.grad
            b -= learning_rate * b.grad

            w.grad.zero_()
            b.grad.zero_()

    return w.tolist(), b.item()

def predict(x_train : list[list[float]], y_train : list[float], x_test : list[list[float]]) -> list[float]: # DO NOT MODIFY FUNCTION NAME
    w, b = training(x_train, y_train)
    ### IMPLEMENT FROM HERE
    w_tensor = torch.tensor(w, dtype=torch.float32)
    b_tensor = torch.tensor(b, dtype=torch.float32)
    x_test_tensor = torch.tensor(x_test, dtype=torch.float32)

    logits = torch.matmul(x_test_tensor, w_tensor.t()) + b_tensor
    y_pred = torch.sigmoid(logits)

    return y_pred.squeeze().tolist()

if __name__ == "__main__":
    # This is very simple case. Passing this testcase do not mean that the code is perfect.
    # Please consider for the practial problems when score is not high.
    x_train = [[0., 1.], [1., 0.], [2., 5.], [3., 1.], [4., 2.]]
    y_train = [0., 0., 1., 0., 1.]
    x_test = [[7., 2.], [1.5, 1.], [2.5, 0.5]]

    y_test = predict(x_train, y_train, x_test)

    print(y_test)

Description
test
Output (Optional)
No response

Good!


[IMPROVEMENT] Merge conversion/admission webhook and recovery backend services into longhorn-manager

Is your improvement request related to a feature? Please describe (👍 if you like this request)
The conversion/admission webhook and recovery backend services are deployed as Deployment. Despite the anti-affinity for these services, there's still a chance that these deployments' replicas are on the same worker node. In the event that a worker node fails due to a network partition or a power outage, the services will be irresponsive until their pods are recreated on different worker nodes. The single node failure will result in the whole Longhorn cluster getting stuck. To achieve high availability, it is better to deploy these three services by DaemonSet rather than Deployment, as they are critical components for resource operation (conversion/admission webhooks) and RWX volume operation (recovery backend).
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

cc @shuo-wu @PhanLe1010 @c3y1huang
This needs to discuss. Is it possible to just leverage longhorn-manager for those purpose?

cc @shuo-wu @PhanLe1010 @c3y1huang
This needs to discuss. Is it possible to just leverage longhorn-manager for those purpose?

These services are actually creating servers and then receiving/handling the requests. I think merging them into longhorn-manager is a good idea.

I see. Btw do we use requiredDuringSchedulingIgnoredDuringExecution or prefer instead for these deployments? If the former， it should be able to ensure availability.

Agree that we should move the webhook into Longhorn manager because Longhorn manager cannot function without these webhook anyways. And Longhorn manager is already a daemonset

Sounds good to me. For drain story, it will be more simplified than now.

requiredDuringSchedulingIgnoredDuringExecution

We usepreferredDuringSchedulingIgnoredDuringExecution currently for best effort.

Yeah, just noticed that it's preferred, so best efforts. Thanks @derekbit raised this, this improvement will make our services more stable. 👍

@ChanYiLin Please help with this and check with @derekbit if having any questions. Thanks.

Update Scope:

[ ] longhorn/manager: make conversion/admission webhook use different port
[ ] longhorn/longhorn/chart: put webhook/recovery container into manager daemonset
[ ] longhorn/manager: uninstall controller doesn't have to uninstall conversion/admission webhook and recovery deployment (ref: code)

@ChanYiLin we need to ensure webhook and recover backend will continue serving during and after the upgrade.

Do we have ref or doc for this part
Like how to test if is still serving during upgrading
Does our e2e cover this part?

Do we have ref or doc for this part Like how to test if is still serving during upgrading Does our e2e cover this part?

Fresh installation: all pods are created and running successfull
Install v1.4.1 and then upgrade to patched version: all pods are created and running successfully. Old webhook pods should be terminated. The old webhook should keep running until there is no RWX volume using it.

Do we have ref or doc for this part Like how to test it is still serving during upgrading Does our e2e cover this part?

Fresh installation: all pods are created and running successfuly
Install v1.4.1 and then upgrade to patched version: all pods are created and running successfully. Old webhook and recovery-backend pods should be terminated.

Thanks!

An issue come up on top of my head: how do we make sure that the webhook containers are running before longhorn-manager container?
In the current implementation, we use init containers inside Longhorn manager pod to wait for webhook services to start before starting the longhorn-manager containers.
However, when we decided to put webhook containers inside longhorn-manager pod, the init containers mechanism might not work anymore because webhook services will not be available at the time when the init containers run.
One of the alternate solutions I am thinking about is directly doing the webhook service check inside the longhorn-manager container code (i.e., ping and wait for webhook service at here before the upgrade logic)
What do you think @innobead  @derekbit @shuo-wu @ChanYiLin

Also related to this topic, I am wondering if we should put all the csi-xxx pods into the longhorn-csi-plugin daemonset for the same HA reason. longhorn-csi-plugin cannot function without these csi-xxx pods anyways so I am thinking why not combine them into the same daemonset.

An issue come up on the top of my head: how do we make sure that the webhook containers are running before longhorn-manager container?
In the current implementation, we use init containers inside Longhorn manager pod to wait for webhook services to start before starting the longhorn-manager container.
However, once we decide to put webhook containers inside longhorn-manager pod, the init containers mechanism might not work anymore because webhook services will not be available at the time when the init containers run.
One of the alternate solutions I am thinking about is directly doing the webhook service check inside the longhorn-manager container code (i.e., ping and wait for webhook service at here before the upgrade logic)
What do you think @innobead @derekbit @shuo-wu @ChanYiLin

Thanks for the reminder, it is indeed a problem!
I just did some research and found there is a feature in K8s which can force the containers in the pod to be created in order.
ref: attach-handler-lifecycle-event
in this way we only need to add some code or new command in webhook to return true to lifecycle hook when the webhook is ready
So the Pod can create next container to achieve creating containers in order.
What do you think?

Or even easier, put init container command to lifecycle.poststart.exec.command
example: (assume conversion is on port 9443 and admission is on port 8443)
spec:
  containers:
  - name: longhorn-conversion-webhook
    lifecycle:
      postStart:
        exec:
          command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" -k https://localhost:9443/v1/healthz) != "200" ]; do echo waiting; sleep 2; done']
    ...
  - name: longhorn-admission-webhook
    lifecycle:
      postStart:
        exec:
          command: ['sh', '-c', 'while [ $(curl -m 1 -s -o /dev/null -w "%{http_code}" -k https://localhost:8443/v1/healthz) != "200" ]; do echo waiting; sleep 2; done']
    ...
  - name: longhorn-recovery-backend
    ...
  - name: longhorn-manager
    ...

Great quick finding @ChanYiLin 👍
From a quick reading, I am afraid that we have some issues with the approach:

The official doc doesn't make this guarantee but it turns out that the Kubelet code that starts the container blocks the start of the next container until the post-start handler terminates. We would have to dig into the K8s code to figureout
Even if the above statement is true, K8s starts containers inside pod in parallel so it could be like: longhorn-manager container start -> it has no postStart -> webhook container start -> it has postStart but doesn't have any effect now that longhorn-manager container already started

What do you think?

Another thought, why not just create go routines for the webhook and recovery-backend servers inside the longhorn-manager daemon?

I have done some research and verify that the kubelet start the container in order (container list in pod)
For every container start, it will exec the postStart command.
So if the postStart command need to wait, then the kubelet will block until the postStart command return successfully then create next container
code ref: pkg/kubelet/kuberuntime/kuberuntime_manager.go#L1247
quick example: can verify that container-b start after 10sec
apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: container-a
    image: nginx:1.14.2
    lifecycle:
      postStart:
        exec:
          command: ['sh', '-c', 'sleep 10']
    ports:
    - name: nginxa
      containerPort: 80
  - name: container-b
    image: nginx:1.14.2
    command: ["/bin/sh","-c"]
    args: ["sed -i 's/listen  .*/listen 81;/g' /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"]
    ports:
    - name: nginxb
      containerPort: 81

Another thought, why not just create go routines for the webhook and recovery-backend servers inside the longhorn-manager daemon? Then, the startup order can be easily controlled.

Yes, that is best way to do it so we can have fully controlled the behavior.
I am just finding if there is any way that we don't need to modify the code but just merge template yaml together.

I will go with @derekbit way which just make webhook and recovery service as another goroutines inside the manager.

I think we can add fields to the logger of webhook and recovery backend
for example,
logger.WithFields(
      logrus.Fields{
        "service": "conversion_webhook/admission_webhook/recovery_backend",
    },
)

Hi @PhanLe1010 @derekbit, I have tested the goroutine method, there is one thing need to discuss:
We put admission/conversion webhook into longhorn-manager, but the readiness port of longhorn-manager daemonset is 9500 which is longhorn-manager api itself
Thus, before starting the longhorn-manager api, the pods will not become ready and the service of admission/conversion webhook will not do the routing.
However, we do upgrade() function before starting longhorn-manager api and it sends requests to admission/conversion webhook service which is still not working at the moment. This fails the whole starting process.
To solve the issue, I changed the readiness port to 9443 which is conversion webhook service to make pods become ready after conversion webhook started.
That means the pod become ready before longhorn-manager controller and api even started.
I have tested it, Longhorn still works fine, but would like to have your comments.

@innobead
startProbe cannot solve the issue here.
The purpose of startProbe is to have a more flexible liveness/readiness detection at the beginning
Sometimes it is hard to know the start time of the pod
The pod might end up keep failing and restarting if we use short period time livenessProbe.
But we also don't won't to increase the period time of livenessProbe only because of the start time.
In this case, we can use startProbe together with livenessProbe, so startProbe is only used in the start period and than k8s use livenessProbe for the rest serving period.

I think it is still okay for the longhorn-manager pod to be ready before api starts
Before

user send requests when longhorn-manager pod is not ready -> failed since service is not running + pod is not ready
After
user send requests when longhorn-manager pod is ready but api is not running yet -> failed since service is not running

From users perspective, both requests fail because of service is not running, the only change is pod status.

@ChanYiLin I think probably this should be fine because our CSI plugin supports the liveness probe to ensure it will be ready until the longhorn manager is able to reach out first before serving any CSI requests. Also, IIRC, all our components use rolling upgrade strategy, so the old service should be still serving until new components get ready.
/csi/deployment.go#L428-L449
							LivenessProbe: &v1.Probe{
								ProbeHandler: v1.ProbeHandler{
									HTTPGet: &v1.HTTPGetAction{
										Path: "/healthz",
										Port: intstr.FromInt(DefaultCSILivenessProbePort),
									},
								},
								InitialDelaySeconds: datastore.PodProbeInitialDelay,
								TimeoutSeconds:      datastore.PodProbeTimeoutSeconds,
								PeriodSeconds:       datastore.PodProbePeriodSeconds,
								FailureThreshold:    datastore.PodLivenessProbeFailureThreshold,
							},
							Lifecycle: &v1.Lifecycle{
								PreStop: &v1.LifecycleHandler{
									Exec: &v1.ExecAction{
										Command: []string{
											"/bin/sh", "-c",
											fmt.Sprintf("rm -f %s/*", GetInContainerCSISocketDir()),
										},
									},
								},
							},

@innobead startProbe cannot solve the issue here. The purpose of startProbe is to have a more flexible liveness/readiness detection at the beginning Sometimes it is hard to know the start time of the pod The pod might end up keep failing and restarting if we use short period time livenessProbe. But we also don't won't to increase the period time of livenessProbe only because of the start time. In this case, we can use startProbe together with livenessProbe, so startProbe is only used in the start period and than k8s use livenessProbe for the rest serving period.

This is good to know, just summarized below. ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#types-of-probe

startup Probe
check if the service is live for the first start-up liveness (the same as liveness but only applied during the start time)
readiness Probe
check if the service is ready to serve or not
liveness Probe
check if the service is live or not. If not, restart the pod.

The upgrade is tested
Version: 1.4.1 -> master-head with my own manager image

new manager will start the admission and conversion webhook first
new manager will delete the old webhook and recovery service deployment in the upgrade function
all components work fine during the upgrade.

cc @innobead @derekbit

Even though this is an improvement, it's actually a breaking change. Let's do this for 1.5 only. Removed the backport to 1.4.

@ChanYiLin If ready, let's move this to ready-for-testing.

Verified in longhorn master 3f1636
Result Pass

Upgrade from v1.4.1 to master head, old webhook and recovery-backend pods terminated.
Continue from step 1, running e2e core tests, did not see outstanding error.


Mouseover new migration owner glitch

Can't choose other owner item most of the time when Hover the mouse over the default owner.I don't know if this is happening to anyone else.
Gogs Version: <IP_ADDRESS>5 Beta Go1.4.2

I am so glad that the issue got response finally :)

Hmm, hmm, :stuck_out_tongue_closed_eyes: thanks for your patient, now it's on the v0.6.7 todo list.

Things are better now: https://try.gogs.io/repo/migrate

OK, the css looks better as well :)

Close as implemented. :blush:


Should there be one local git repo, or one per url, or one per id?

Right now, we create git repo in ~/.config/crev/proofs/ and it's shared between all ids, which might be inconvenient, if they want to use different url, etc.
It could be changed to ~/.config/crev/proofs/<id> but I wanted to be able to eventually store even proofs from other people in your own repository (for redundancy, and in organizations). So then the total path to actually proofs would change from:
~/.config/crev/proofs/_xQgkbDAQx3nSV5SMfdEeQBSYiPwSI32wnMxnjExk24=/reviews/2018-12-packages.proof.crev

to
~/.config/crev/proofs/_xQgkbDAQx3nSV5SMfdEeQBSYiPwSI32wnMxnjExk24=/_xQgkbDAQx3nSV5SMfdEeQBSYiPwSI32wnMxnjExk24=/reviews/2018-12-packages.proof.crev

which is getting long ...
Maybe it's not a problem. Or maybe there could be a convenient symlink ...

I'm tempted to do something similar to fetch command, that just uses a digest of the url...

I've implemented it, and it seems to work OK.


Introduce node.js built-in modules and third-party libraries

Can it support the introduction of built-in modules? What if it can be done? Because I tried it, it doesn’t seem to work

See (goja_nodejs)[https://github.com/dop251/goja_nodejs]


Cannot Reproduce RE Results of XFUND-zh

Hi，I am trying to Reproduce Results of LayoutXLM on XFUND-zh(RE task).
But The result is quite different, my f1-score is 0.073(vs 0.707 as you posed).
I am wondering why this case happen, I did some changes of code and model:
1. I downloaded layoutxlm-base model offline cause My work-env do not support Internet connection.
And Waring shows some params(in extractor, and not BN params) is not Initialized
2. I just test layoutxlm model with params from huggingface directly (Without Finetune) , is that the reason why the F1-score such low?

@davidz123 of coursce you need to fine-tune the model, otherwise you only got the pre-trained model which has never seen the xfund labels.


Autocatcher not working.

Title: Autocatcher not working.
Body: ?
Problem:
When I run the run.bat file, the pokemon aren't being auto caught.
Steps to Reproduce:
List out the steps you took to come upon the error.
config.json:
"token": "not giving away that",
   "command_prefix": "P^",
   "priority": [

   ],
   "avoid": [],
   "catch_rate": 100,
   "delay": 0,
   "delay_on_priority": false,
   "restrict_duplicates": false,
   "max_duplicates": 100,
   "blacklists": [],
   "whitelists": [492328842254614537],
   "blacklist_guilds": [382316968394620938],
   "whitelist_guilds": [492328842254614533],
   "autolog": true,
   "update_checker": true,
   "auto_update": true,
   "autocatcher": true,
   "priority_only": false
}

Traceback and Screenshots:
No screenshots really, just not working.
Specs.
OS: Windows 10
Bot Version: 3.3.2
Python Version: 3.7

No clue how you missed it but it's clearly mentioned in the readme in bold
that Autocatcher is Premium Version only.

Well what is the point in someone using the selfbot anymore then e.e

This is a just a demo version with auto-trade, mass-release, etc. and also
serves as a portal for the future Premium Version interested people.
Morever, this version isn't maintained anymore.
On Fri, Sep 21, 2018 11:24 PM, realtirey<EMAIL_ADDRESS>wrote:
Well what is the point in someone using the selfbot anymore then e.e
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.


fix/Authorisation was not working on windows

fix/Authorisation was not working on windows due to a known bug in safe_app_nodejs.
fix/README was updated.
fix/email addresses are now being returned as array so they are now serialised to store them in the inbox.

Thanks for the pull request, and welcome! The MaidSafe team is excited to review your changes, and you should hear from @ustulation (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. The way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see CONTRIBUTOR.md for more information.


RefResolver export function for resolving references

I had a use-case to take a schema with references and create a ref-resovled version.
I figured this maybe useful for other users to have the ability to export a reference resolved version of a schema.
Additions

RefResolver export function
unittests to cover use case

Testcase Example
Before
{
  "$id": "tree",
  "type": "object",
  "$schema": "http://json-schema.org/draft-06/schema#",
  "properties": {
    "name": {
      "type": "string"
    },
    "fruits": {
      "type": "object",
      "properties": {
        "apples": {
          "$ref": "apples"
        },
        "oranges": {
          "$ref": "oranges"
        }
      }
    }
  }
}

after
{
  "$id": "tree",
  "type": "object",
  "$schema": "http://json-schema.org/draft-06/schema#",
  "properties": {
    "name": {
      "type": "string"
    },
    "fruits": {
      "type": "object",
      "properties": {
        "apples": {
          "$id": "apples",
          "type": "object",
          "$schema": "http://json-schema.org/draft-06/schema#",
          "properties": {
            "name": {
              "type": "string"
            },
            "quantity": {
              "type": "integer"
            },
            "types": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "oranges": {
          "$id": "oranges",
          "type": "object",
          "$schema": "http://json-schema.org/draft-06/schema#",
          "properties": {
            "name": {
              "type": "string"
            },
            "quantity": {
              "type": "integer"
            },
            "types": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}

@Julian hey not entirely sure why some of these Draft6 tests are failing only added a new function and test. the test i wrote for this passes so was curious if you could help me debug?

Hey!
Going to likely be due to the combination of the draft 6 tests hitting the
network at the minute (because of an unfinished part of its implementation)

the json-schema.org site being down at the minute.

Would ignore it, I can have a look!
(Haven't reviewed this yet)
On Mon, Jun 4, 2018, 00:14 Emmanuel<EMAIL_ADDRESS>wrote:

@Julian https://github.com/Julian hey not entirely sure why some of
these Draft6 tests are failing only added a new function and test. the test
i wrote for this passes so was curious if you could help me debug?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Julian/jsonschema/pull/419#issuecomment-394229797,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAUIXh8TkOKHGlquVUsMnR0gg1lvjD1jks5t5LQqgaJpZM4UYaYh
.

How would this behave, or expected to behave, with recursive references? I guess it can only give up, right?

How would this behave, or expected to behave, with recursive references? I guess it can only give up, right?

I'm not fully sure the consequences, but python is fine with recursive data structures, so I don't think that should be a problem.

Hmm, true, guess one would have to be quite careful though not to try and perform any kind of tree-like traversal though :)

So, sorry for letting this sit around for so long, but I think this should really live externally to jsonschema as a small library on top.
(It even might want to have a CLI that takes a file with refs and resolves them).
But yeah as-is, other than that there's the known bug that jsonschema has with location-independent references, I don't think there's a good enough reason to require that this lives in the library itself.
Happy to hear further thoughts, but for now going to close. Of course much appreciated, and apologies again that I couldn't make my mind up sooner.


weex 自带组件slider组件的scrollable="false"属性有问题，在安卓上没法禁止滑动切换

This issue is outdated for a long time and will be closed now. You can create a new one if you still have questions.


[ALLUXIO-2647] Remove delegation required dependencies.

https://alluxio.atlassian.net/browse/ALLUXIO-2647
A subset of #4976 which removes unnecessary dependencies from the client.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/14083/
Test PASSed.

Merged build finished. Test PASSed.


Newtonsoft needs to be updated to version 8.00

Currently Google APIs only works with Newtonsoft 7.00. This is causing issues as I have other projects that are dependent on the newer version which is 8.00.

For reference, it looks like version 8 NuGet package was released just a couple weeks ago, while the code was shipped in late December 2015.
Assigning to @mmdriley who can make the call wrt when/how/if to make the change to the Google libraries.
As for your specific problem, if you are deploying a desktop application, you should be able to work around this via an assembly redirect in the app.config. (Assuming the 7.0 and 8.0 versions of JSON.NET are compatible, which given there is a major version bump is not guaranteed.)

My bad I didn't even realize how new 8.00 was. I have reverted to a lower version so I can use 7.00. This has solved my issues for the time being

No worries @LiquidSean. There are plenty of reasons to use the bleeding edge of a library. The question is how quickly do we want to incorporate updates in the Google API client. I'll close this out for now, but I imagine we will revisit this again in a few weeks/months.

+1

Note that now the latest version is 9.0.1, which is what is used by various MS packages.
Binding redirects can help with this, but I think it's a potentially wider issue - the community is "getting away" with using different versions of JSON.NET at the moment because despite the major version number changing a lot, the backwards compatibility level is high. If each major version really broke things, binding redirects wouldn't help and we'd have significant problems. I'm not sure how the ecosystem is going to handle this.

@jskeet we seem to be having the issue that version 7 is required when we are using version 8 in our project with a binding redirect. Seems like the binding redirect isent being taken in to account for some reason. Any ideas?

@Jetski5822: It's hard to tell without knowing anything about your project, I'm afraid. It might be worth creating a new issue with appropriate details.


setCurrentLanguage concatenates, instead of replacing

Hi,
When I want to change language and run setCurrentLanguage() on runtime, instead of replacing strings, it just concatenates new language.
What's the proper way to update language on the fly ?
Thanks.

I have no idea what you mean with concatenate, it should just set the new language:
https://github.com/rubenv/angular-gettext/blob/7f5fd0ab1b8aaac626aefd7bef44fbd1249f6af8/src/catalog.js#L43-L46
Do you have an example of what you are seeing?

@morfin Feel free to keep commenting on this issue, but I'm closing it for now.

What I mean is that it ends up showing both languages, one string next to the other.
For instance, if current language is english, the word "Nothing" is shown. If I set spanish, it shows: "NothingNada"
That happens to all the words.

Have you tried wrapping the call in
$scope.$apply(function () {
   // code here
}):

?
Setting the language needs to happen in the digest loop.

If I include "element.empty();" before $animate.enter (and even remove $animate.leave) in angular-gettext.js, all the duplicate problems seem to go away.
Is it possible to include this (or similar) fix in your great project?.
Thanks.

@carlosgalindo That completely breaks ngAnimate, so no that's not an option.

Hi, that's what I mean about using a "similar" fix, one that somehow ensures the parent element is empty before the "enter" event, and/or that "newContents" is the only element child after the $animate enter/leave calls. The duplicate issues occur not only when switching languages, but also when loading/updating async sections. Thanks!

@carlosgalindo emptying the parent first is exactly what would break animation support, so we're definitely not going to do that. Now, chances are high that this is an easy-to-fix bug in your project.
The only way for us to help fix this is if you can provide us with a piece of sample code that shows the bug. Please make an example on http://jsfiddle.net/ that demonstrates the problem.

I am having the same issue. I tried the $apply, but that has no effect. I assume it is something with the animate callback.
Quick fix was forking and removing the animate statements. Will do some more digging into what is causing the issue at a later time.
//var oldContents = element.contents();
var newContents = newWrapper.contents();
element.empty().html(newContents.html());
// $animate.enter(newContents, element);
// $animate.leave(oldContents);

@ThomasHambach Thanks

Could those of you experiencing this issue check if #187 resolves it.

This should be fixed by v2.1.0. Please test it. If it doesn't work: let us know.


Tab + Enter

If you tab through checkboxes and hit enter the checkbox won't be selected.

@apex06 as far as I know you have to hit "space", not "enter" in order to check/uncheck checkbox.
It's all working good with space button

You are right my fault :) sorry

no problem :)
closing


handleCardPayment is now called confirmCardPayment

https://stripe.com/docs/js/deprecated/handle_card_payment_element

Is version 0.3.3 available? When I installed this package I got the 0.3.2 package. I see that in the fix (0.3.3) confirmCardPayment was added.

Quick bump for release 0.3.3!

Bump to release 0.3.3 ASAP!

Bueler?

Is this project dead?

Is this project dead?

it seems

it seems

Hey folks, I get your pain. This package has been almost abandoned, but I revived it in v1.0.0.
You can use confirmCardPayment or any other stripe instance method via StripeElements vue component instance
Check the example in readme: access instance methods


feat(changelog): modify SCA changelog

Thanks, just merged it and updated the release notes accordingly.


TP2000-1103 Implement workbasket user assignment

TP2000-1103 Implement workbasket user assignment
Why
As part of the wider goal to introduce workflow management functionality, users need to be able to assign workbaskets to others.
What

Creates UserAssignment and Task models

Adds factories and fixtures for the new models
Adds unit tests for the new models

Handles user assignment

Adds new routes ( assign-users/, unassign-users/) and views (WorkBasketAssignUsersView, WorkBasketUnassignUsersView)
Adds new forms (WorkBasketAssignUsersForm, WorkBasketUnassignUsersForm)

Updates workbasket summary template

Lists users that have been assigned to work on or review the workbasket
Provides links to 'Assign' and 'Unassign' users, redirecting to the corresponding views/forms

Prevents unassigned workbaskets from being packaged

Adds a transition condition, is_fully_assigned(), for a workbasket to transition into a queued state
Disables the 'Send to packaging queue' button for workbaskets which have not been assigned
Updates old tests which involved packaging to assign the workbaskets
Adds a view and model test to confirm unassigned workbaskets cannot be queued but otherwise can

TODO

Use React to allow user assignment actions to be performed directly on the workbasket summary view (per UI design) rather than redirecting to (fallback) form views when JavaScript is enabled

Checklist

Requires migrations? Yes

Workbasket summary:

Fallback (non-JS) assign users form:

Fallback (non-JS) unassign users form:

Codecov Report
Attention: 16 lines in your changes are missing coverage. Please review.

Comparison is base (816b866) 93.08% compared to head (6991d6d) 93.10%.

Files
Patch %
Lines

workbaskets/views/ui.py
85.10%
7 Missing :warning:

tasks/models.py
91.30%
4 Missing :warning:

common/tests/factories.py
90.90%
1 Missing and 1 partial :warning:

measures/tests/test_migrations.py
50.00%
1 Missing :warning:

tasks/tests/conftest.py
93.75%
1 Missing :warning:

workbaskets/forms.py
98.21%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1145      +/-   ##
==========================================
+ Coverage   93.08%   93.10%   +0.01%
==========================================
  Files         576      580       +4
  Lines       43088    43418     +330
  Branches     3100     3112      +12
==========================================
+ Hits        40110    40424     +314
- Misses       2371     2385      +14
- Partials      607      609       +2

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


How can I load BFM_model?

I load BFM09 but I have no file bfm2009_4seg.mat, bfm2009_face_idx.mat, how can I get those file?

Face the same problem. We cannot run the code without these necessary files. Wish the author  share more information about it.

@levanpon98 Hi, before loading "bfm2009_4seg.mat" and "bfm2009_face_idx.mat", we need to load "bfm2009_face.mat" first, do you know how to get this file? Thank you.

It's a wonderful work but I face the same problem, too. I really hope to get these files or the way to generate them, thanks.

I have finded all these files from BFM09 and Deep3DFaceReconstruction.
bfm2009_4seg.mat  --> face05_4seg.mat (BFM09) bfm2009_symlist.txt --> face05_symlist.txt (BFM09) bfm2009_face_idx.mat --> select_vertex_id.mat (Deep3DFaceReconstruction) bfm2009_face.mat --> BFM_model_front.mat (Deep3DFaceReconstruction)

I have finded all these files from BFM09 and Deep3DFaceReconstruction.
bfm2009_4seg.mat --> face05_4seg.mat (BFM09)
bfm2009_symlist.txt --> face05_symlist.txt (BFM09)
bfm2009_face_idx.mat --> select_vertex_id.mat (Deep3DFaceReconstruction)
bfm2009_face.mat --> BFM_model_front.mat (Deep3DFaceReconstruction)

Hi Langyuan , Thank you so much for sharing what you found! Just wondering could you train their model? Does it converge?

@HOMGH Hi, I trained the model, but can't converge...... The result is not as good as they show in the paper.  What about you?

@HOMGH Hi, I trained the model, but can't converge...... The result is not as good as they show in the paper. What about you?
Hi, I trained the model with 30,000 images and 20 epochs and the figure of total loss is as follows:

Also I'm getting almost similar 3D mesh (geometry) for every input image I feed in the network. Attached are some 3D mesh examples (even with distortion, the base of 3D mesh looks the same). I'm considering the (output of shape decoder)*std + mean, as the final vertices to make 3D mesh. Do you think its correct?

@HOMGH Hi, I trained the model, but can't converge...... The result is not as good as they show in the paper. What about you?

Not yet. Do you mind share some of the results here?
Thanks

@HOMGH Hi, I trained the model, but can't converge...... The result is not as good as they show in the paper. What about you?

Hi @deepmo24 , By not converging, you mean the model is not able to  reconstruct 3D face? or just the results are not the same with the papers figures?

Hi, I mean the reconstructed texture is not that high fidelity as the paper showed.

Hi, I mean the reconstructed texture is not that high fidelity as the paper showed.

Thanks, But at least you are getting roughly correct reconstructed texture and 3D mesh, right? coz in Nonlinear Face 3DMM model https://github.com/tranluan/Nonlinear_Face_3DMM, by training the model, I'm getting the same 3D meshes and textures for every input I feed in the model!

Hi, I mean the reconstructed texture is not that high fidelity as the paper showed.

Hi @deepmo24 , do you mind sharing your test code you used for testing this model please?
Thanks.

@HOMGH Hi, I just runned the training code.

@HOMGH Hi, I only runned the training code.
Aha, so you got the results by validation, right? would you please share some of the reconstructed faces with me? I'm actually going to run the training code, but before that, I just wanted to make sure it would result in at least some reasonable outputs!
Thanks.

I have finded all these files from BFM09 and Deep3DFaceReconstruction.
bfm2009_4seg.mat --> face05_4seg.mat (BFM09)
bfm2009_symlist.txt --> face05_symlist.txt (BFM09)
bfm2009_face_idx.mat --> select_vertex_id.mat (Deep3DFaceReconstruction)
bfm2009_face.mat --> BFM_model_front.mat (Deep3DFaceReconstruction)

Hi @deepmo24,  where can I find bfm2009_face.mat which is used in the following line:
self.bfm = utils.BFM_model(self.root_dir, 'data/bfm2009_face.mat')
I couldn't find in BFM09 repository!

Hi, @HOMGH
BFM09 is not a repository, it is from BFM09.
One result is showed below:

Hi, @HOMGH
BFM09 is not a repository, it is from BFM09.
One result is showed below:

Yeah, I see, but I can't find this bfm2009_face.mat there.
And regarding the results, is it the final output of 3D-face_GCN method? :O

oh.... bfm2009_face.mat is gotten from Deep3DFaceReconstruction repo, by running demo.py (refer to here).
Yes, it is the final output of 3D-face_GCN method.

oh.... bfm2009_face.mat is gotten from Deep3DFaceReconstruction repo, by running demo.py (refer to here).
Yes, it is the final output of 3D-face_GCN method.

Sorry, I didn't get you. I ran the demo code from Deep3DFaceReconstruction repo, but still dunno where to get bfm2009_face.mat?

Rename BFM_model_front.mat to bfm2009_face.mat.

Rename BFM_model_front.mat to bfm2009_face.mat. They are exactly the same file.

Aha,ok. Thanks heaps 👍 Btw, the results you shared look good but as you said not as good as the reported results in the paper!

Rename BFM_model_front.mat to bfm2009_face.mat. They are exactly the same file.

Hi @deepmo24 , while running the main.py, I'm getting this error. indices[23502] = 46328 is not in [0, 35709)
[[{{node loss_1/data_loss/GatherV2_2}}]].  Do you think something is wrong with bfm2009_symlist.txt or other files?

Hi, @HOMGH
BFM09 is not a repository, it is from BFM09.
One result is showed below:

Hi @deepmo24 , I'm just wondering, for training, should we use aligned celebA dataset as the input of the model or the original celebA images? Attached are aligned and unaligned samples.

Actually I'm getting the following results after a couple of iterations, which I think are not correct and there should be sth wrong.

Hey, as we mentioned in our paper, the input images should be aligned based on the facial landmarks. Since our method is based on the Deep3DFaceReconstruction, we adopt their alignment method https://github.com/microsoft/Deep3DFaceReconstruction/blob/master/preprocess_img.py in our codes.

Thanks @FuxiCV , but the process of preparing training set is still vague. Based on what you mentioned in your "ReadMe" file,

I segmented the celebA dataset (img_align_celebA_png.7z),
Stored the RGBA images as .png file.
For efficiency, wrote all .png images into a binary file (using creat_bin),
So is it what should be done or I need to add that https://github.com/microsoft/Deep3DFaceReconstruction/blob/master/preprocess_img.py to the procedure?

Thanks @FuxiCV , but the process of preparing training set is still vague. Based on what you mentioned in your "ReadMe" file,

I segmented the celebA dataset (img_align_celebA_png.7z),
Stored the RGBA images as .png file.
For efficiency, wrote all .png images into a binary file (using creat_bin),
So is it what should be done or I need to add that https://github.com/microsoft/Deep3DFaceReconstruction/blob/master/preprocess_img.py to the procedure?

@deepmo24  Hi Langyuan, Any idea about this issue?

Yes, I use this method to align the dataset.  I suggest that before segmenting the datasetset, you can align the dataset first.

Yes, I use this method to align the dataset. I suggest that before segmenting the datasetset, you can align the dataset first.

Thanks @deepmo24 , So you mean you used celebA_img.7z (NOT img_align_celebA_png.7z? coz there are two types of data in celebA dataset) and then used https://github.com/microsoft/Deep3DFaceReconstruction/blob/master/preprocess_img.py to align the dataset?
Would you please share that part of code you used for alignment, as I'm not sure about the inputs of that function? https://github.com/microsoft/Deep3DFaceReconstruction/blob/4b27ddf4227c687b953caa7aa3f3e7acf87cc786/preprocess_img.py#L6
https://github.com/microsoft/Deep3DFaceReconstruction/blob/4b27ddf4227c687b953caa7aa3f3e7acf87cc786/preprocess_img.py#L30
https://github.com/microsoft/Deep3DFaceReconstruction/blob/4b27ddf4227c687b953caa7aa3f3e7acf87cc786/preprocess_img.py#L52
Thanks.

Just use  img_align_celebA_png.7z I think.
I suggest you read  this part of code carefully (containing the aligning code)  https://github.com/FuxiCV/3D-Face-GCNs/blob/2c4459cfa05faaf82ef85994a696e79d2993d650/utils.py#L217

Just use img_align_celebA_png.7z I think.
I suggest you read this part of code carefully (containing the aligning code)
https://github.com/FuxiCV/3D-Face-GCNs/blob/2c4459cfa05faaf82ef85994a696e79d2993d650/utils.py#L217

Thanks @deepmo24 , Should we use groundtruth landmarks as well as face images?

We don't need to provide landmarks. The landmarks can be  detected by the landmark detector.

I have finded all these files from BFM09 and Deep3DFaceReconstruction.
bfm2009_4seg.mat --> face05_4seg.mat (BFM09)
bfm2009_symlist.txt --> face05_symlist.txt (BFM09)
bfm2009_face_idx.mat --> select_vertex_id.mat (Deep3DFaceReconstruction)
bfm2009_face.mat --> BFM_model_front.mat (Deep3DFaceReconstruction)

Hi @deepmo24, where can I find bfm2009_face.mat which is used in the following line:
self.bfm = utils.BFM_model(self.root_dir, 'data/bfm2009_face.mat')
I couldn't find in BFM09 repository!

Hi, Do you madify name of the right file to name of the left file?I couldn't find the BFM_model_front.mat  in BFM09 repository but find the BFM_front_idx? Is it?

I have finded all these files from BFM09 and Deep3DFaceReconstruction.
bfm2009_4seg.mat --> face05_4seg.mat (BFM09)
bfm2009_symlist.txt --> face05_symlist.txt (BFM09)
bfm2009_face_idx.mat --> select_vertex_id.mat (Deep3DFaceReconstruction)
bfm2009_face.mat --> BFM_model_front.mat (Deep3DFaceReconstruction)

Hi @deepmo24, where can I find bfm2009_face.mat which is used in the following line:
self.bfm = utils.BFM_model(self.root_dir, 'data/bfm2009_face.mat')
I couldn't find in BFM09 repository!

Hi, Do you madify name of the right file to name of the left file?I couldn't find the BFM_model_front.mat  in BFM09 repository but find the BFM_front_idx? Is it?

We don't need to provide landmarks. The landmarks can be detected by the landmark detector.

Hi Langyuan @deepmo24 ,
I had a question, Do you know how to quantitatively evaluate the geometry reconstruction ability of this method? For CelebA we don't have any 3D ground truth. But for AFLW2000 that has 3D groundtruth, how can we do this? coz by this method we have 35,709 vertices. but for AFLW2000 the number of vertices is 53k (or 39k for reduced version). Any idea about that?
Thanks :)

Hi,do you successfully prepear for the datasets?Counld you share the code?

We don't need to provide landmarks. The landmarks can be detected by the landmark detector.

Hi Langyuan @deepmo24 ,
I had a question, Do you know how to quantitatively evaluate the geometry reconstruction ability of this method? For CelebA we don't have any 3D ground truth. But for AFLW2000 that has 3D groundtruth, how can we do this? coz by this method we have 35,709 vertices. but for AFLW2000 the number of vertices is 53k (or 39k for reduced version). Any idea about that?
Thanks :)

Hi,do you successfully prepear for the datasets?Counld you share the code?

We don't need to provide landmarks. The landmarks can be detected by the landmark detector.

Hi Langyuan @deepmo24 ,
I had a question, Do you know how to quantitatively evaluate the geometry reconstruction ability of this method? For CelebA we don't have any 3D ground truth. But for AFLW2000 that has 3D groundtruth, how can we do this? coz by this method we have 35,709 vertices. but for AFLW2000 the number of vertices is 53k (or 39k for reduced version). Any idea about that?
Thanks :)

Hi,do you successfully prepear for the datasets?Counld you share the code?

Hi, please refer to https://github.com/FuxiCV/3D-Face-GCNs/issues/19#issue-707509376

We don't need to provide landmarks. The landmarks can be detected by the landmark detector.

Hi Langyuan @deepmo24 ,
I had a question, Do you know how to quantitatively evaluate the geometry reconstruction ability of this method? For CelebA we don't have any 3D ground truth. But for AFLW2000 that has 3D groundtruth, how can we do this? coz by this method we have 35,709 vertices. but for AFLW2000 the number of vertices is 53k (or 39k for reduced version). Any idea about that?
Thanks :)

Hi,do you successfully prepear for the datasets?Counld you share the code?

Hi, please refer to https://github.com/FuxiCV/3D-Face-GCNs/issues/19#issue-707509376

We don't need to provide landmarks. The landmarks can be detected by the landmark detector.

Hi Langyuan @deepmo24 ,
I had a question, Do you know how to quantitatively evaluate the geometry reconstruction ability of this method? For CelebA we don't have any 3D ground truth. But for AFLW2000 that has 3D groundtruth, how can we do this? coz by this method we have 35,709 vertices. but for AFLW2000 the number of vertices is 53k (or 39k for reduced version). Any idea about that?
Thanks :)

Hi,do you successfully prepear for the datasets?Counld you share the code?

Hi, please refer to #19 (comment)

how do you obtain the the fllowing three data?hicaicaihi for my wechat,Can you share the experiments for testing the model.
train_txt = '{}_train.txt'.format(prefix)
val_txt = '{}_val.txt'.format(prefix)
test_txt = '{}

We don't need to provide landmarks. The landmarks can be detected by the landmark detector.

Hi Langyuan @deepmo24 ,
I had a question, Do you know how to quantitatively evaluate the geometry reconstruction ability of this method? For CelebA we don't have any 3D ground truth. But for AFLW2000 that has 3D groundtruth, how can we do this? coz by this method we have 35,709 vertices. but for AFLW2000 the number of vertices is 53k (or 39k for reduced version). Any idea about that?
Thanks :)

Hi,do you successfully prepear for the datasets?Counld you share the code?

Hi, please refer to #19 (comment)

how do you obtain the the fllowing three data?hicaicaihi for my wechat,Can you share the experiments for testing the model.
train_txt = '{}_train.txt'.format(prefix)
val_txt = '{}_val.txt'.format(prefix)
test_txt = '{}

We don't need to provide landmarks. The landmarks can be detected by the landmark detector.

Hi Langyuan @deepmo24 ,
I had a question, Do you know how to quantitatively evaluate the geometry reconstruction ability of this method? For CelebA we don't have any 3D ground truth. But for AFLW2000 that has 3D groundtruth, how can we do this? coz by this method we have 35,709 vertices. but for AFLW2000 the number of vertices is 53k (or 39k for reduced version). Any idea about that?
Thanks :)

Hi Pingu @HOMGH,
I do not know if you managed to solve your problem, but my initial guess would be to apply this downsampling function to AFLW2000
https://github.com/FuxiCV/3D-Face-GCNs/blob/2c4459cfa05faaf82ef85994a696e79d2993d650/lib/mesh_sampling.py#L97

Did you train with main.py? Did you suffer out of memory?Could you share your train.py with me?plz reply to<EMAIL_ADDRESS>thx. @deepmo24

Hi, @HOMGH
BFM09 is not a repository, it is from BFM09.
One result is showed below:

Hello, DeepMo! I'm glad you've succeeded to train and test the 3D face GCN method. Could you please share your pretrained model please? Thank you!

Hello, DeepMo! I'm glad you've succeeded to train and test the 3D face GCN method. Could you please share your pretrained model please? Thank you!

Hello, DeepMo! Could you please share your pretrained model please? Thank you very much!

We don't need to provide landmarks. The landmarks can be detected by the landmark detector.

Hello, DeepMo!  Could you please share your pretrained model please? Thank you very much!

We don't need to provide landmarks. The landmarks can be detected by the landmark detector.

Hello, DeepMo! Could you please share your pretrained model please? Thank you very much<EMAIL_ADDRESS>

@deepmo24 Thank you for sharing your results. Did your model converge finally?

@deepmo24 Thank you for sharing your results. Did your model converge finally?  Btw, how did install spatialsearch?

将 BFM_model_front.mat 重命名为 bfm2009_face.mat。它们是完全相同的文件。

嗨@deepmo24，在运行 main.py 时，我收到此错误。索引 [23502] = 46328 不在 [0， 35709）[[{{node loss_1/data_loss/GatherV2_2}}]] 中。您认为bfm2009_symlist.txt或其他文件有问题吗？

想请问一下，您是如何解决的呢 ，针对对称索引，不在 [0， 35709]中

Hi, where can I get the torch_FaceSegment_300.pkl？Can you share the torch_FaceSegment_300.pkl with me?


Configure math.js so that metric prefixes can be used.

If possible? Mentioned in changelog here.

No longer relevant as math.js is not used anymore.


Add pre-check for active server connection

hey!

If you try to click 'validate workflow' or 'submit workflow' BEFORE you've done 'Connect to server'  (yes, I know I shouldn't do that but sometimes I forget I restarted my web browser, or maybe the connection times out), you get a very mysterious error:  "Error: An error has occurred. Check your logs or contact the app author for clarification".
Is there a way to check whether the connection is active upon 'validate' or 'submit' and give a more informative error?
And maybe, (this would be really nice), while a connection is active and alive, display something on the left toolbar that tells us we're actually connected (maybe display the connection name, e.g. gizmot32:8000)
thanks!
Janet

(handled in dev branch)


Update swagger-initializer.js

updating initializer
https://github.com/agstack/agstack-website/issues/15

Stack overflow article used to make update: https://stackoverflow.com/questions/44816594/swagger-ui-with-multiple-urls


pinBuilder puts low-alpha values inside the pin

Noticed in #5066.
Our pinBuilder helper produces pins that can have low-alpha "fringes" on the interior of the pin.  For example, here's the Maki shopping cart on a pin, shown alongside a greyscale version of its alpha map:

Here's a question mark on a pin, alongside its alpha map:

In the alpha map images above, the white pin body should NOT have any black pixels floating around in it.  Both of them do, although the shopping cart one is much more subtle, the question mark one is more obvious.
I've tested as far back as Cesium 1.20 and the pinBuilder appears to have this problem even back then.  It wasn't much of an issue until now, with the billboard blending fixes coming in, the low alpha values are actually leaking other billboards through them.
The inset image written onto the pin should of course use the alpha values for proper blending, but it should use those values to blend against the pin's background color, not against a transparent background.  The resulting pixels should always have exactly the pin background's opacity.

Reproduce steps:

Load Sandcastle Hello World and add these lines:

var pinBuilder = new Cesium.PinBuilder();
window.foo = pinBuilder.fromText('?', Cesium.Color.STEELBLUE, 48).toDataURL();

Click "open in new window" (on Sandcastle toolbar) and wait for the globe to appear.
Hit F12 and on the JS console type:  copy(foo).  This will return undefined.
Open a new tab and hit "Paste & Go".
Right-click on the image and hit "Save image as...".
Examine the image in a paint program (I've been using Gimp) that can inspect the alpha channel.

@emackey this is probably a one line change in PinBuilder's drawIcon function.  I assume we are putting the canvas in an incorrect compositing mode or something.  Might be a super easy fix if you want to take a look.


Attempt to fix unzip action failures

Because of the way workflow dispatch works, apparently this can't be tested in the PR and only once it is in main.


How we can combine multiple transaction in single transaction?

I want to merge / combine multiple transaction like split coin, move coin in single transaction. So how can i do using this sdk?

@0xmove okay, when can i expect this one in future release?

@dsk7990 You can submit a PR.

@0xmove not able to solve it, can you please share reference if you have any.

PTB has merged the main branch, please refer to test case for usage.


Webpack plugin fails to build in Debian Docker (non-root)

[x] I have read the contribution documentation for this project.
[x] I agree to follow the code of conduct that this project follows, as appropriate.
[x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

Please describe your issue:
I'm trying to get electron-forge 6 working in a Docker environment. When I attempt to run the following minimal example, electron-forge start fails with error
Cannot read property 'toString' of null
TypeError: Cannot read property 'toString' of null
    at Watching.toString [as handler] (/usr/src/webpack-demo/node_modules/@electron-forge/plugin-webpack/src/WebpackPlugin.ts:363:27)

Dockerfile:
FROM node:8.16.0-stretch

RUN npm install -g npx

WORKDIR /usr/src
RUN npx create-electron-app webpack-demo --template=webpack
WORKDIR /usr/src/webpack-demo

RUN apt-get update
RUN apt-get install libnss3 libgtk-3-0 libxss1 libasound2 -y

ENV DEBUG electron-forge:*

USER node

CMD ["npm", "start"]

Console output when you run electron-forge with the environment variable DEBUG=electron-forge:*. (Instructions on how to do so here). Please include the stack trace if one exists.
Output from running docker build -t webpack-template . && docker run webpack-template  with the above Dockerfile
><EMAIL_ADDRESS>start /usr/src/webpack-demo
> electron-forge start

WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
2019-07-12T18:30:55.453Z electron-forge:async-ora Process Started: Checking your system
2019-07-12T18:30:55.461Z electron-forge:check-system checking system, create ~/.skip-forge-system-check to stop doing this
2019-07-12T18:30:56.445Z electron-forge:async-ora Process Succeeded: Checking your system -- after 993ms
WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
2019-07-12T18:30:57.412Z electron-forge:async-ora Process Started: Locating Application
2019-07-12T18:30:57.415Z electron-forge:project-resolver searching for project in: /usr/src/webpack-demo
2019-07-12T18:30:57.422Z electron-forge:project-resolver electron-forge compatible package.json found in /usr/src/webpack-demo/package.json
2019-07-12T18:30:57.424Z electron-forge:async-ora Process Succeeded: Locating Application -- after 12ms
2019-07-12T18:30:57.437Z electron-forge:require-search searching [ '@electron-forge/plugin-webpack',
  '/usr/src/webpack-demo/@electron-forge/plugin-webpack',
  '/usr/src/webpack-demo/node_modules/@electron-forge/plugin-webpack' ] relative to /usr/src/webpack-demo
2019-07-12T18:30:57.441Z electron-forge:require-search testing @electron-forge/plugin-webpack
2019-07-12T18:30:58.190Z electron-forge:plugin:webpack hooking process events
2019-07-12T18:30:58.243Z electron-forge:async-ora Process Started: Preparing native dependencies
2019-07-12T18:30:58.814Z electron-forge:async-ora Process Succeeded: Preparing native dependencies -- after 571ms
2019-07-12T18:30:58.819Z electron-forge:plugins plugin: "webpack" has taken control of the start command
2019-07-12T18:30:58.838Z electron-forge:async-ora Process Started: Compiling Main Process Code

An unhandled exception has occurred inside Forge:
Cannot read property 'toString' of null
TypeError: Cannot read property 'toString' of null
    at Watching.toString [as handler] (/usr/src/webpack-demo/node_modules/@electron-forge/plugin-webpack/src/WebpackPlugin.ts:363:27)
    at Watching._done (/usr/src/webpack-demo/node_modules/webpack/lib/Watching.js:95:9)
    at compiler.emitAssets.err (/usr/src/webpack-demo/node_modules/webpack/lib/Watching.js:52:27)
    at emitFiles (/usr/src/webpack-demo/node_modules/webpack/lib/Compiler.js:319:20)
    at /usr/src/webpack-demo/node_modules/mkdirp/index.js:35:29
    at /usr/src/webpack-demo/node_modules/mkdirp/index.js:47:53
    at FSReqWrap.oncomplete (fs.js:152:21)
2019-07-12T18:30:59.732Z electron-forge:plugin:webpack handling process exit with: { cleanup: true }
2019-07-12T18:30:59.733Z electron-forge:plugin:webpack cleaning webpack watcher
2019-07-12T18:30:59.734Z electron-forge:plugin:webpack stopping logger
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: `electron-forge start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!
None
What does your config.forge data in package.json look like?
I'm using the webpack template from npx create-electron-app webpack-demo --template=webpack as is with no modifications.
Please provide either a failing minimal testcase (with a link to the code) or detailed steps to
reproduce your problem. Using electron-forge init is a good starting point, if that is not the
source of your problem.

Have Docker installed
Copy minimal Dockerfile above to a new dir
In the dir, run docker build -t webpack-template . && docker run webpack-template

Have you tried outside of a Docker container?

Not yet, I don't have a non-Docker Debian instance right now. Can try and get back to you

I can't reproduce this on Debian Stretch, in a non-Docker environment.


Support for Spring transaction management

I don't think the commit 8e04e462c1c7d8b617e3f81257dd6adf7b2ab702 should be merged: it is inconsistent with the issue #146 to allow array parameters.

Will this just permit usage of Spring transactions, or require it when Spring is also present?  We are using sql2o in places where we specifically need to avoid Spring's transaction management.  We do this to avoid Spring holding open connections for the lifetime of the request resulting in resource exhaustion issues.

I think that after merging of #264 there is no sense in this pull request anymore.
If someone wants to use Spring transactions management - it 's a question of one class with few lines of code. But I don't think that there is much sense to ship such Spring related class with Sql2o.


Wrong password when init repo on VirtualHosted S3 bucket

Output of restic version
restic 0.16.4 compiled with go1.21.6 on linux/amd64
What backend/service did you use to store the repository?
S3 Scaleway Object Storage - https://www.scaleway.com/en/object-storage/
Problem description / Steps to reproduce
get 'Wrong password' error when try to access VirtualHosted-name s3 backet
export AWS_ACCESS_KEY_ID="xxxxxxxxxx"
export AWS_SECRET_ACCESS_KEY="yyyyyyyyyy"
export AWS_DEFAULT_REGION="fr-par"
export RESTIC_REPOSITORY="s3:bucket-name.s3.fr-par.scw.cloud/restic"

restic -p ~/.restic-repo-password init
created restic repository f02eff4faa at s3:bucket-name.s3.fr-par.scw.cloud/restic

restic -p ~/.restic-repo-password backup data/
Fatal: wrong password or no key found

but when change  RESTIC_REPOSITORY to
export RESTIC_REPOSITORY="s3:s3.fr-par.scw.cloud/bucket-name/restic"

remove all files from bucket and init repo again - all works fine
Expected behavior
Get error Fatal: wrong password or no key found
Actual behavior
Do backup
Do you have any idea what may have caused this?
Restic do not work with Virtual Hosted-Style S3 bucket name
previos issue is https://github.com/restic/restic/issues/2971

export RESTIC_REPOSITORY="s3:bucket-name.s3.fr-par.scw.cloud/restic"

Restic defaults to path-style bucket access for non-AWS S3 backends. That is to use a virtual-hosted style URL, you must set -o s3.bucket-lookup=dns as documented at https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#s3-compatible-storage .
I don't really know why S3 semi silently breaks when a virtual-hosted style URL is treated as path-style URL. That unfortunately means that we likely can't provide a more helpful error message.


News section - Level 5 heading (h5) style is inconsistent with other headings

Level 5 heading is navy and center-aligned. The other headings are left-aligned and are black.

I can work with it.

Hi @codewithdev, Have you started working on this? If not I can take it up

started working on this

How to reproduce this issue ?


Disable fade to black

Is there anyway to disable the fade to black between press log in and the desktop? I have the same background set for the greeter and for my desktop, so I would like to have a seamless fade. I'd be fine with editing the files just for myself, but I don't know a whole ton about dart.

I'll define an option to disable it if you want, but i don't think it's really possible for your desktop and lightdm to not have at least 1s of black screen when launching your desktop, this is also why i at first put that fade !

I believe that because it's just an X server, if you set a wallpaper
beforehand with a tool like feh it will continue to display while loading
your desktop environment (although this may be different if you use a full
desktop environment, I personally use i3)

Fixed in 3.0 (option to disable fade in setup screen)

Just tested myself, works good but i may consider fading just the login form and the blur while keeping the background, as currently when desktop launches blur and login form just dissapear.

thanks :)


[Bug] [UI] blue frame missing at /issue /pulls and /milestones

caused by #9374
blue frame missing at /issue /pulls and /milestones
before:

now:

box-shadow: 0 0 0 1px #2185d0 inset !important; fix it if I add it manualy to <a> container

Note: I dont wok on it  - so feel free to take it @silverwind, @kolaente (noticed you know JS), others ...

@6543 This should be done using border rather than box-shadow. Or is there a specific reason to use box-shadow instead?

I have no idear ... I'm a JS/CSS noob

There's also a spacing issue I've just noticed on the admin pages - UI attached sections seem to be very close to each other


Cryptsy - Issue with getting fees

I have an issue getting the correct value for the trade fees in cryptsy. From what I understand these fees are per account and can be accessed with "/api/v2/markets/:id/fees" which works in a web browser as long as you are logged in. So I tried to do this:
system.out.println("\nCalculateFees:\n"
+ ((CryptsyTradeServiceRaw) TradeService).calculateCryptsyFees(CryptsyOrderType.Buy, new BigDecimal("1"), new BigDecimal("288.63643561")));
I get this:
CalculateFees:
CryptsyReturn[OK: CryptsyOpenOrder[Fee='0.95250024',Net Amount='289.58893585']]
But on cryptsys website I get a different value

Why is this different? can I just get the percentage?

It may be an issue on cryptsys side:
https://github.com/wishhhmaster/CoinTNet/issues/6

I figured it out, here is my solution:
if(VolumeInBTC < 0.5){
PairFee = 0.0033; //0.33%
}
else if(VolumeInBTC >= 0.5 && VolumeInBTC < 1.0){
PairFee = 0.0031; //0.31%
}
else if(VolumeInBTC >= 1.0 && VolumeInBTC < 5.0){
PairFee = 0.0029; //0.29%
}
else if(VolumeInBTC >= 5 && VolumeInBTC < 20){
PairFee = 0.0027; //0.27%
}
else if(VolumeInBTC >= 20){
PairFee = 0.0025; //0.25%
}
else{
System.exit(1);//something went wrong
}
return PairFee;
}
How silly of me to not see this. Just get the volume in btc and run the switch statement.

Thanks for posting the solution!


RPi firmware and Uboot missing from esp partition on aarch64 iot disk images

Describe the bug
The RPi firmware and Uboot need to be copied to the esp partition on aarch64 Fedora IoT disk images in Fedora 38. Currently the files are on the disk image but not yet copied to the correct location.
Environment

Fedora 38
Koji

To Reproduce
Steps to reproduce the behavior:
Create an aarch64 Fedora IoT disk image in F38.
Expected behavior
Resulting image should be bootable on the RPi family of SBC's
Additional context
Snippet from the Fedora IoT kickstart that copies Uboot:

# Setup Raspberry Pi uboot
if [[ $arch == "aarch64" ]]; then
cp -P /usr/share/uboot/rpi_3/u-boot.bin /boot/efi/rpi3-u-boot.bin
cp -P /usr/share/uboot/rpi_4/u-boot.bin /boot/efi/rpi4-u-boot.bin
cp -P /usr/share/uboot/rpi_arm64/u-boot.bin /boot/efi/rpi-u-boot.bin
fi

The RPi firmware files are on the disk image in '/usr/lib/ostree-boot/efi/'  but should also be copied to '/boot/efi/'
RPi Firmware packages:
bcm283x-overlays-20230118-1.2578acb.fc38.aarch64
bcm2835-firmware-20230118-1.2578acb.fc38.aarch64
bcm283x-firmware-20230118-1.2578acb.fc38.aarch64
bcm2711-firmware-20230118-1.2578acb.fc38.aarch64

@nullr0ute please clarify whether we can simplify the copying

So confirmed we just need to do the following to support all current generations of the RPi on aarch64:
cp -P /usr/share/uboot/rpi_arm64/u-boot.bin /boot/efi/rpi-u-boot.bin

The firmware files also need to end up there as well, currently they are installed to '/usr/lib/ostree-boot/efi/'

I'm implementing this at the moment but had a thought (that might be entirely wrong), why don't the RPMs for these files place them in /boot/efi? @paulwhalen, @nullr0ute.