HBaseResultCoder fails to serialize KeyValue instances

HBaseResultCoder (in bigtable-hbase-dataflow) works well for Result instances that use the RowKey implementation of hbase's Cell interface, but when given a Result with hbase's KeyValue instead of Bigtable's RowKey it corrupts the output Result.
I couldn't find where exactly the breakdown occurs, but it seems related to the fact that a call to RowCell.toString() causes an ArrayIndexOutOfBoundsException.
A simple test for RowCell.toString():
import com.google.bigtable.repackaged.com.google.cloud.hbase.adapters.read.RowCell;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.KeyValue;

@Test
public void testStringifyRowCell() throws Exception {
    Cell keyValue = CellUtil.createCell("key".getBytes(), "family".getBytes(), "value".getBytes());
    Cell rowCell = new RowCell("key".getBytes(), "family".getBytes(), "qualifier".getBytes(), System.currentTimeMillis(), "value".getBytes());

    keyValue.toString();
    rowCell.toString();  // ArrayIndexOutOfBoundsException
}

Stack trace from test failure:
java.lang.ArrayIndexOutOfBoundsException: 27495

	at org.apache.hadoop.hbase.KeyValue.keyToString(KeyValue.java:1231)
	at org.apache.hadoop.hbase.KeyValue.keyToString(KeyValue.java:1190)
	at com.google.bigtable.repackaged.com.google.cloud.hbase.adapters.read.RowCell.toString(RowCell.java:234)

Another test illustrating HBaseCoder's incompatibility with KeyValue
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellComparator;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Result;
import com.google.cloud.bigtable.dataflow.coders.HBaseResultCoder;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import static org.junit.Assert.assertTrue;

@Test
public void testHBaseResultCoderWithKeyValue() throws Exception {
    // Given
    // -----
    Cell inputKeyValue = CellUtil.createCell("key".getBytes(), "family".getBytes(), "value".getBytes());
    Result inputResult = Result.create(new Cell[]{inputKeyValue});

    HBaseResultCoder coder = HBaseResultCoder.getInstance();

    // When
    // -----
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    coder.encode(inputResult, outputStream, null);
    ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
    Result outputResult = coder.decode(inputStream, null);
    Cell outputRowCell = outputResult.listCells().get(0);

    // Constructor for KeyValue(Cell c) located here https://hbase.apache.org/1.2/xref/org/apache/hadoop/hbase/KeyValue.html#747
    Cell keyValueFromOutputRowCell = new KeyValue(outputRowCell);

    // Then
    // -----
    // Print statements to show unusual byte string in the decoded Cell
    System.out.println(inputKeyValue.toString());              // prints: key/family:value/LATEST_TIMESTAMP/Maximum/vlen=0/seqid=0
    System.out.println(keyValueFromOutputRowCell.toString());  // prints: key/\x00\x00\x00\x1A\x00\x00\x00\x00\x00\x03key\x06familyvalue\x7F\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD:\x00\x00\x00\x1A\x00\x00\x00\x00\x00\x03key\x06familyvalue\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF/-1/Put/vlen=34/seqid=0

    // Output doesn't equal the input, regardless of whether output and input are the same Cell implementation
    assertTrue(CellComparator.equals(inputKeyValue, outputRowCell));  // AssertionError
    assertTrue(CellComparator.equals(inputKeyValue, keyValueFromOutputRowCell));  // AssertionError

    // Input and output RowArrays are unequal
    assertTrue(Arrays.areEqual(inputKeyValue.getRowArray(), outputRowCell.getRowArray()));  // AssertionError

    // Input and output Result instances are unequal
    Result.compareResults(inputResult, outputResult);   // ArrayIndexOutOfBoundsException caused by attempt to call RowCell.toString()
}

The relevant dependencies in our pom.xml:
        <dependency>
            <groupId>com.google.cloud.dataflow</groupId>
            <artifactId>google-cloud-dataflow-java-sdk-all</artifactId>
            <version>1.9.0</version>
        </dependency>

        <dependency>
            <groupId>com.google.api-client</groupId>
            <artifactId>google-api-client</artifactId>
            <version>1.22.0</version>
            <exclusions>
                <!-- Exclude an old version of guava that is being pulled
                     in by a transitive dependency of google-api-client -->
                <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava-jdk5</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- This must be at least v0.9.3, due to a bug in the HBaseMutationCoder that
             breaks serialization of Put objects -->
        <dependency>
            <groupId>com.google.cloud.bigtable</groupId>
            <artifactId>bigtable-hbase-dataflow</artifactId>
            <version>0.9.6-SNAPSHOT</version>
        </dependency>

        <!-- bigtable-hbase-dataflow and bigtable-hbase-1.2 are incompatible-->
        <dependency>
            <groupId>com.google.cloud.bigtable</groupId>
            <artifactId>bigtable-hbase-shaded-for-dataflow</artifactId>
            <version>[<IP_ADDRESS>, 1.0.0)</version>
        </dependency>

I've got the same problem here

Thanks for finding the problems.  We'll take a look at this.  FWIW, Pull Requests are heartily welcome.

RowCell.toString() turns out easy to fix.  I'll get a new -SNAPSHOT out today with the fix.
HBaseResultCoder has 2 problems.

It's fundamentally broken when converting a KeyValue to a FlatRow.Cell in HBaseResultCoder.encode().
Even if a KeyValue value is translated to a FlatRow.Cell, HBaseResultCoder.decode() will create a RowCell instead of a KeyValue.  That will still result in "// Input and output Result instances are unequal"

I use a Bigtable FlatRow to encode/decode HBase Results, which might be the wrong approach.  We'll fix FlatRowAdapter for case 1), but that won't fix 2).  I'm going to have to mull over these two issues.

Here is a fix for 1:
https://github.com/GoogleCloudPlatform/cloud-bigtable-client/pull/1232

@gsgalloway and @plelevier, I'm curious about why you need this.  The Cloud Bigtable version of HBaseResultCoder was intended to be used with CloudBigtableIO, which will create RowCells.  I'm curious about your use case.  Can you please elaborate on why you need this?
FWIW, There's a new HBase apache beam connector, that pretty much copied what we did.  Here's there version of HBaseResultCoder.

Sure thing. In short, we were attempting to unit test a DoFn that operates on Result instances and found our tooling for generating Results for testing uses KeyValue and not RowCell.
In more detail: we ran into this issue while unit testing a DoFn that computes on Result instances fetched from CloudBigtableIO and uses the library hbase-object-mapper to map from hbase Results to POJOs.
This library readily converts Results using both RowCells and KeyValues to POJOs, but when converting from POJOs to Results it only uses the KeyValue implementation.
The test that highlighted this issue:
@Test
public void testDoFn() throws Exception {
    // Given
    // -----
    HBaseObjectMapper objectMapper = new HBaseObjectMapper();
    OurPOJO givenPojo = new OurPOJO(. . .);

    // This Result is created using `KeyValue` and not `RowCell`
    Result inputResult = objectMapper.writeValueAsResult(givenPojo);

    Pipeline p = TestPipeline.create();

    PCollection<Result> inputPCollection = p.apply(Create.of(inputResult).withCoder(HBaseResultCoder.getInstance()));

    // When
    // -----
    PCollection<OurPOJO> output = input.apply(ParDo.of(new ConvertFromHBaseResultToOurPOJO()));

    // Then
    // -----
    DataflowAssert.thatSingleton(output).isEqualTo(givenPojo);
    p.run();
}

We were able to work around this issue by coercing the KeyValues into RowCells:
@Test
public void testDoFn() throws Exception {
    // Given
    // -----
    HBaseObjectMapper objectMapper = new HBaseObjectMapper();
    OurPOJO givenPojo = new OurPOJO(. . .);

    // Coerce KeyValues into RowCells for compatibility with HBaseResultCoder
    Result inputResult = objectMapper.writeValueAsResult(givenPojo);
    Cell inputKeyValue = bannerAsHbaseResult.listCells().get(0);
    Cell convertedToRowCell = new RowCell(CellUtil.cloneRow(inputKeyValue), CellUtil.cloneFamily(inputKeyValue), CellUtil.cloneQualifier(inputKeyValue), inputKeyValue.getTimestamp(), CellUtil.cloneValue(inputKeyValue));
    Result inputResultUsingRowCells = Result.create(new Cell[]{convertedToRowCell});

    Pipeline p = TestPipeline.create();

    PCollection<Result> inputPCollection = p.apply(Create.of(inputResult).withCoder(HBaseResultCoder.getInstance()));

    // When
    // -----
    PCollection<OurPOJO> output = input.apply(ParDo.of(new ConvertFromHBaseResultToOurPOJO()));

    // Then
    // -----
    DataflowAssert.thatSingleton(output).isEqualTo(givenPojo);
    p.run();
}

To clarify, HBaseResultCoder works just fine in production when it is encoding Results that come from CloudBigtableIO, but fails when we attempt to run unit tests with Results created otherwise.
While it makes sense that this issue should never affect individuals using the CloudBigtableIO connector, its name and the fact that it only works for certain Result implementations is a bit surprising. Especially if anyone attempts to run Dataflow jobs against true hbase (and not cloud BigTable) instances.
At the least, it might warrant mention in the HBaseResultCoder documentation that it is only compatible with Results generated by the CloudBigtableIO connector

Thanks for the tip about Beam's HBaseResultCoder, that certainly removes the need for that kludgy Cell conversion code

The next release will have this fix.


perf: fast findIndexStartingFrom

What's the difference?

I have made a bench, and the pr is faster, but now I have repeted the bench and is slower... maybe, no real changes


Display Nested content numbering in title field

We will need to display the nested numbering values (n_1, n_2, n_3) in the title field above each work.  The numbers circled in red in this screencap do not yet exist in the templates but should.

This field should be flexible based on the parameters that are set on the Text objects.  If only n_1 is set, only display one field in the title like "#.". If n_1 and n_2 are set, display two fields in the title as "#.#". If n_1, n_2, and n_3 are all set, display them as "#.#.#".

Do we want something like this?

We want to add the title every time the second-to-last most deeply nested number is incremented.  So for instance, if the text objects for this work had n_1, n_2, and n_3 values, we would want to add the title every time n_1 and n_2 changed.
If the text objects had n_1 and n_2 values set, we would want to add the title every time the n_1 value changed.
If the text objects only had the n_1 value set, we would want to omit adding the title.
This is a complicated issue but I think necessary for the flexible layout to render our recursive nesting.  This may add some complex code, but I think it is still more simple than the alternative.

But the fonts look good! The placement should be slightly to the left.


Support calls to GPT-4o

Please add support to the framework so that the newly released GPT4o model can be called. Initially, just being able to use GPT4o for chat requests would be a benefit due to its 2x performance and 0.5x price compared to GPT4 Turbo.

You can already use the model for ChatRequests. Assistant support will come in 8.0.0

You can already use the model for ChatRequests

https://github.com/AIStoryBuilders/AIStoryBuildersOnline/commit/072bf4cb09be56d21234c716e3b55f8382e6476e


undefined method `close_write'

$ buncker authn
/Users/kgilpin/.rvm/gems/ruby-2.0.0-p598@conjur-authn/gems/docker-api-1.17.0/lib/docker/util.rb:64:in `block (2 levels) in hijack_for': undefined method `close_write' for #<OpenSSL::SSL::SSLSocket:0x007fa901304fd8> (NoMethodError) (Excon::Errors::SocketError)

Damn you OSX ;)
This seems to be upstream bug somewhere: https://github.com/swipely/docker-api/issues/214

@kgilpin , can you please try with 0.0.2?


Move PodStatus->TaskRunStatus code to pkg/pod

This allows us to unexport more helper functions, and centralizes the other half of Pod<->TaskRun conversion into pkg/pod.
Some consts are still exported, but I think those might be useful to
some callers anyway.
#1605
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[y] Includes tests (if functionality changed/added)
[n] Includes docs (if user facing)
[y] Commit messages follow commit message best practices

/test pull-tekton-pipeline-integration-tests

/test pull-tekton-pipeline-integration-tests

LGTM :)

not sure if ironic or waiting to be picked up by cool new tekton dogfooding automation

/lgtm
/meow
:stuck_out_tongue_closed_eyes:


Increment version for contentsafety releases

Increment package version after release of azure-ai-contentsafety

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


504 Gateway Timeout

i have tried clearing my cache, but i still get the timeout. not sure if i am the only one.
~Travis

as i am not well-liked, perhaps i am just no longer welcome on the forum...

never mind, i guess


Why register a blueprint in case of conflic?

I'm having a hard time trying to understand why quokka/quokka/ext/blueprints.py will register a duplicated  Blueprint? This could be hell in case circular imports.
if blueprint.name not in app.blueprints:
    app.register_blueprint(blueprint)
else:
    blueprint.name += str(random.getrandbits(8))
    app.register_blueprint(blueprint)
    logger.warning("CONFLICT:%s already registered, using %s",fname,blueprint.name)

Why the second register "app.register_blueprint(blueprint)" in the else block? Shouldn't be nothing since Blueprint is already registered?

This was done because of a problem in flask-admin, once we move to the new Flask_admin this can be removed.  also there will be #151

Fixed!!! implemented namespaces for blueprints and urls. no more conflicts


[#1811] feat(relation-entity-store): Add the relation entity store interface

What changes were proposed in this pull request?
The purpose of this PR is to add the interface of relational entity store, and the Mysql backend will be implemented in the next PR.
Why are the changes needed?
Fix: #1811

@jerryshao @yuqi1129 @coolderli Please take a look when you have time, thanks!

@yuqi1129 Fixed as per comments, please take a look again when you have time, thanks!

@xloya I understand #1811 is an epic issue. Could you create some subtask issues for it? It will be more clear to track the progress.

@xloya I understand #1811 is an epic issue. Could you create some subtask issues for it? It will be more clear to track the progress.

@xloya I understand #1811 is an epic issue. Could you create some subtask issues for it? It will be more clear to track the progress.

Great idea, I will add to the task lists

@jerryshao @qqqttt123 @yuqi1129 @coolderli  The comment has been fixed. Please help to review again when you have time, thanks

LGTM, @yuqi1129 @jerryshao Could you give further suggestion?


Third party Android camera interface

A thought. 💭
Seeing the many tickets related to rotation and memory issues on Android, did you consider leveraging libraries like https://github.com/google/cameraview or https://github.com/gogopop/CameraKit-Android as a base implementation for Android?
PRO: Ease the work of maintaining this library and would make this work here more focused around nice React Native packaging.
CONS: Another layer of abstraction (but seems like a fairly solid one, also supporting Camera2 API).

Find me some alternatives which has the same feature set for IOS and I will write you a package in  the weekend :)

I think he means use one of these as the basis for the android implementation in place of one of the editing android code

Well with all cross cutting concerns the api surfaces starts to become quite hard to maintain, yes def harder on Android.
Bar code scanning for instance, who of the maintainers use that in their production apps these days? We dont, hard to support, there's a lot of issues concerning those as well.
Video, people expect mirroring, encoding, ect think we def need to nail out a larger roadmap in order to settle and expose a better package with less problems for the end users.
And yes, rotation mirroring ect should be a solved problem already I agree.

This only means using an Android lib as basis for the implementation. The iOS version of this library seems more stable.
But yes. Wanting to do video and bar code scanning might complicate things...

A friend of mine wrote a camera app called NovaCamera for both iOS and android, it's excellent I have to admit - worth checking out.  Not as fully featured maybe (no bar code scanning, no video) but lots of stuff around exposure, focus and iso control.  But maybe we could learn from some of the stuff he did:
https://github.com/novaphotos/nova-ios-app/blob/develop/NovaCamera/Services/SSCaptureSessionManager.m#L280
https://github.com/novaphotos/nova-android-opencamera/blob/master/src/com/almalence/opencam/cameracontroller/CameraController.java#L3282

This issue is closed because of inactivity.
Furthermore RCTCamera is deprecated now, use RNCamera instead. If this issue is also related to RNCamera, please open a new one.


The latest ESLint config with @next/eslint-plugin-next doesn't lint dependency arrays

Provide environment information
System:
OS: Windows 11 10.0.22631
CPU: (8) x64 Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz
Memory: 9.41 GB / 19.84 GB
Binaries:
Node: 20.9.0 - C:\Program Files\nodejs\node.EXE
npm: 10.2.4 - C:\Program Files\nodejs\npm.CMD
pnpm: 8.10.5 - C:\Program Files\nodejs\pnpm.CMD
Describe the bug
I upgraded an existing T3 repo from v7.20.2 to v7.24.0 and realized the ESLint not warning about dependency arrays anymore. I started a clean project and confirmed that this is true. I then removed @next/eslint-plugin-next and installed eslint-config-next, then replaced plugin:@next/next/recommended extension with the old next/core-web-vitals (not sure if it's necessary for this case) and it worked as intended.
Are you aware of this? Is this intentional?
Reproduction repo

To reproduce
I'll provide if necessary.
Additional information
TypeScript 5.3.2

Has this been solved yet?

thanks for reporting and sorry for the delay :)


[AutoRelease] t2-sql-2022-10-26-59802(Do not merge)

https://github.com/Azure/sdk-release-request/issues/3281
Live test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=1034
BuildTargetingString
azure-mgmt-sql
Skip.CreateApiReview
true

issue link:https://github.com/Azure/sdk-release-request/issues/3281


Routing to the same data center by environment variable configuration

What is the purpose of the change
Routing to the same data center by environment variable configuration
Brief changelog
1.Add environment variable configuration (default DUBBO_ROUTER_ENV) .
2.The provider appends the environment variable to the url when it exposes the service.
3.The consumer calls the provider with the same environment variable first in the route.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@ec16ba4). Click here to learn what that means.
The diff coverage is 47.91%.

@@            Coverage Diff            @@
##             master    #5348   +/-   ##
=========================================
  Coverage          ?   61.22%
  Complexity        ?      422
=========================================
  Files             ?      922
  Lines             ?    37436
  Branches          ?     5436
=========================================
  Hits              ?    22922
  Misses            ?    11997
  Partials          ?     2517

Impacted Files
Coverage Δ
Complexity Δ

...apache/dubbo/common/constants/CommonConstants.java
100% <ø> (ø)
0 <0> (?)

...g/apache/dubbo/config/AbstractInterfaceConfig.java
77.47% <0%> (ø)
0 <0> (?)

...dubbo/rpc/cluster/router/env/EnvRouterFactory.java
100% <100%> (ø)
0 <0> (?)

...apache/dubbo/rpc/cluster/support/ClusterUtils.java
83.72% <100%> (ø)
0 <0> (?)

...apache/dubbo/rpc/cluster/router/env/EnvRouter.java
47.36% <47.36%> (ø)
0 <0> (?)

.../apache/dubbo/config/EnvRouterAppendParameter.java
47.82% <47.82%> (ø)
0 <0> (?)

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 ec16ba4...a85bd86. Read the comment docs.

使用dubbo2.7.5的多注册中心路由策略

使用dubbo2.7.5的多注册中心路由策略

有详细一点的参考配置信息吗

使用dubbo2.7.5的多注册中心路由策略

有详细一点的参考配置信息吗

使用dubbo2.7.5的多注册中心路由策略
有详细一点的参考配置信息吗

Maybe you can have a try on org.apache.dubbo.rpc.cluster.support.registry.ZoneAwareClusterInvoker.


Added Boards API

Added support for *Get all boards" and "Get board" API as per https://docs.atlassian.com/jira-software/REST/latest/#agile/1.0/board

@expobrain another heads up I just published 0.2.2 with these changes included


[7650] Address gitactions issues

Context
Address gitactions issues
Changes proposed in this pull request
Amended name as it clashes with another
Removed unneeded matrix
Amended so it can be ran on demand
Guidance to review
Should just work
Important business

[ ] Does this PR introduce any PII fields that need to be overwritten or deleted in db/scripts/sanitise.sql?
[ ] Does this PR change the database schema? If so, have you updated the config/analytics.yml file and considered whether you need to send 'import_entity' events?
[ ] Do we need to send any updates to DQT as part of the work in this PR?
[ ] Does this PR need an ADR?

NB: Please notify the #twd_data_insights team and ask for a review if new fields are being added to analytics.yml

 Fix flaky tests on code coverage full test runs


Issue 317: Use docker exec instead kubectl in test

Signed-off-by: Vratko Polak<EMAIL_ADDRESS>

Coverage remained the same at 59.104% when pulling 4b3b9026179dead6932d4f701709ad7d8cd6260a on vrpolakatcisco:contiv317_12 into f67278986f3887dc34d4816b459dc0104ff17d44 on contiv:master.

This does not work properly for 2node suites.


Remove behaviour notes page from RoSH task

…following user feedback.
Also updates applicationDocument fixture with recent changes to physical and mental health pages.
Context
Jira: https://dsdmoj.atlassian.net/jira/software/c/projects/CAS2/boards/1347?assignee=712020%3A23fbf793-ee9a-4ecd-ad4d-37beaa0edeaa&selectedIssue=CAS2-349
Changes in this PR
Screenshots of UI changes
Before
After
Release checklist
As part of our continuous deployment strategy we must ensure that this work is
ready to be released at any point. Before merging to main we must first
confirm:
Pre merge checklist

[ ] Are any changes required to the e2e tests?
[ ] If you've added a new route, have you added a new
auditEvent? (see server/routes/apply.ts for examples)
[ ] Are there environment variables or other infrastructure configuration which needs to be included in this release?
[ ] Are there any data migrations required. Automatic or manual?
[ ] Does this rely on changes being deployed to the CAS API?

Post merge checklist
Once we've merged it will be auto-deployed to the dev environment.
Find the build-and-deploy job in CircleCI.
Should a release fail at any step, you as the author should now lead the work to
fix it as soon as possible.

Hmm it looks like if I have an application in progress and already have behaviour-notes-data, then it shows this error - I guess because the answers are in the data blob?


Custom Fonts are not loaded by the time that file scope variables are initialized

Steps to Reproduce
Load a custom font in pubspec.yaml and reference this font family in a text-style declared as a file scope variable.
import 'package:flutter/material.dart':

TextStyle test = TextStyle(
  fontFamily: 'Ubuntu',
  fontSize: 16,
);

Use this TextStyle in any other widget that is created at runtime, i.e. a child of the main Scaffold.
The displayed text will be of the platform's default font family (Roboto in the case of my Android).
If I declare the above example TextStyle in a run-time created Text Widget as opposed to at the scope of a file, then the custom font family is rendered properly.
Target Platform: Pop!_OS 19.04
Target OS version/browser: Android 8.0.0
Devices: Samsung Galaxy S7
flutter doctor -v:
[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Linux, locale en_US.UTF-8)
    • Flutter version 1.9.1+hotfix.2 at /home/bayle/flutter
    • Framework revision 2d2a1ffec9 (5 weeks ago), 2019-09-06 18:39:49 -0700
    • Engine revision b863200c37
    • Dart version 2.5.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /home/bayle/Android/Sdk
    • Android NDK location not configured (optional; useful for native profiling
      support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /home/bayle/Documents/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[!] Android Studio (version 3.5)
    • Android Studio at /home/bayle/Documents/android-studio
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.38.1)
    • VS Code at /usr/share/code
    • Flutter extension version 3.5.1

[✓] Connected device (1 available)
    • SM G930P • 6337a09d • android-arm64 • Android 8.0.0 (API 26)

@baylessj I can't reproduce this on the latest master 1.22.0-10.0.pre.340.

flutter doctor -v
[√] Flutter (Channel master, 1.22.0-10.0.pre.340, on Microsoft Windows [Version 10.0.19041.508], locale en-US)
    • Flutter version 1.22.0-10.0.pre.340 at C:\Development\flutter_master
    • Framework revision 1fef5912cf (65 minutes ago), 2020-09-23 21:37:08 -0700
    • 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.1)
    • Android SDK at C:\Users\marku\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.1
    • Java binary at: C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.6.5)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.6.30320.27
    • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 4.0)
    • Android Studio at C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (6 available)
    • SM G950F (mobile)           • ce12171c51cc001c03 • android-arm64  • Android 9 (API 28)
    • sdk gphone x86 arm (mobile) • emulator-5554      • android-x86    • Android 11 (API 30) (emulator)
    • Windows (desktop)           • windows            • windows-x64    • Microsoft Windows [Version 10.0.19041.508]
    • Web Server (web)            • web-server         • web-javascript • Flutter Tools
    • Chrome (web)                • chrome             • web-javascript • Google Chrome 85.0.4183.102
    • Edge (web)                  • edge               • web-javascript • Microsoft Edge 85.0.564.51

• No issues found!

Code sample
import 'package:flutter/material.dart';

TextStyle test = TextStyle(
  fontFamily: 'Amatic SC',
  fontSize: 24,
);

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Sample',
      home: Scaffold(
        appBar: AppBar(
          title: Text(
            'File scope variable declaration',
            style: test,
          ),
        ),
        body: Center(
          child: Text(
            'Runtime declaration',
            style: TextStyle(
              fontFamily: 'Amatic SC',
              fontSize: 24,
            ),
          ),
        ),
      ),
    );
  }
}

Are you still facing this issue on the latest stable or any other branch?

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.


Grid and ImageSlider not saving properly

Create a grid or an image slider using the gui editor. Save and try loading it in a playground or the editor again.

[x] ImageSlider is not saving the images
[x] Grid is not saving row/column info
[x] Fonts on all controls

Closed by the previous PR


Speed up Winograd filter constant folding

The existing approach took on the order of minutes for filters with ~1k input and ~1k output channels. This patch reduces that to the order of seconds.
The primary change is we allocate space for a float array that contains the constant filter and convert from APFloat to float. Then, in a separate loop we perform the folding operating on floats and only
store the result as an APFloat (with appropriate
precision).

FYI, @harsh-nod , @stellaraccident has been working on enabling constant folding in a more general way. This might help here. Please reach out to her for more details. @antiagainst might be able to connect the dots for you as well.

FYI, @harsh-nod , @stellaraccident has been working on enabling constant folding in a more general way. This might help here. Please reach out to her for more details. @antiagainst might be able to connect the dots for you as well.

Makes sense. My plan was to eventually implement this filter transform as a linalg ext op (just like the input and output ops) because it will be required for training. Once we have this op, then I imagine constant folding it might be easier as opposed the C definition of the op that I have here. But would love to hear your general approach to constant folding @stellaraccident and @antiagainst .
In the meanwhile, this patch was mostly a way to make this more usable for large models with many convs where compilation was starting to take hours.

I'm trying to get generalized constant folding enabled here, and I think that might just work: https://github.com/iree-org/iree/pull/11524
There is more work to make that path the most efficient day ymmv with trying it right now. Curious though if it triggers at all for this case.

I'm trying to get generalized constant folding enabled here, and I think that might just work: #11524
There is more work to make that path the most efficient day ymmv with trying it right now. Curious though if it triggers at all for this case.

This looks really cool and would be perfect once I can represent the filter transform in the IR. Since the op only materializes in the after tiling, the folding would have to happen at that level. Let me put up a patch for the filter transform and once that lands I can try this flag and see what happens. Thanks!

I'm trying to get generalized constant folding enabled here, and I think that might just work: #11524
There is more work to make that path the most efficient day ymmv with trying it right now. Curious though if it triggers at all for this case.

This looks really cool and would be perfect once I can represent the filter transform in the IR. Since the op only materializes after tiling, the folding would have to happen at that level. Let me put up a patch for the filter transform and once that lands I can try this flag and see what happens. Thanks!

I'm interested in exploring this more - lmk.
Note that there are two levels of folding: hoisting to module init time and early evaluating at compile time. I intuitively think there may be cases of the first that make sense in isolation so keeping an eye out for that.

how do we un-stall this work ? Is there anything we can test and provide for the right solution?  @allieculp to help with prioritization

@powderluv I don't think this is in our high priority list at the moment - is this blocking Nod?

nope not blocking since we have a local patch but would be good to prioritize even if it is not P0/P1. Any guidance to unblock / land is also good and we can try to make progress when we have cycles.

I'll add some context based on my memory of this patch. I think there are two main considerations for taking the generalized approach.

There is a missing input transform op that's needed to represent the computation that needs to be evaluated in the IR.
My understanding is that current const-expr-hoisting applies before this op would even be materialized.

With that in mind, the changes here will improve the folding that's currently in-tree (45 min to 5 min on SD IIRC) and is otherwise NFC so I would think it is probably worth landing this as is while waiting on the larger body of work.
Not blocking though, just a suggestion based on my memory of things :)

Closing stale PR.


[KYUUBI #5565][AUTHZ] Support Delete/Insert/Update table command for Delta Lake

Why are the changes needed?
To close #5565.

Support Delete from table command for Delta Lake in Authz.
Support Insert table command for Delta Lake in Authz.
Support Update table command for Delta Lake in Authz.
Reduce the fields of createTableSql.

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

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

Codecov Report

Merging #5596 (8ac262b) into master (591250c) will decrease coverage by 0.09%.
Report is 2 commits behind head on master.
The diff coverage is 60.00%.

@@             Coverage Diff              @@
##             master    #5596      +/-   ##
============================================
- Coverage     61.69%   61.60%   -0.09%
  Complexity       23       23
============================================
  Files           603      603
  Lines         35670    35675       +5
  Branches       4869     4870       +1
============================================
- Hits          22005    21976      -29
- Misses        11281    11309      +28
- Partials       2384     2390       +6

Files
Coverage Δ

...ubi/plugin/spark/authz/serde/tableExtractors.scala
91.97% <60.00%> (-0.55%)
:arrow_down:

... and 12 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

cc @yaooqinn @bowenliang123

Thanks @zml1206,  merged to master

Thanks, @yaooqinn


Add CNAlifestyle handler

Tests on CNAlifestyle URLs:

https://www.reddit.com/r/rsgretrivr/comments/auaenc/sometimes_parenting_is_boring_then_you_feel/eh6r00y/
https://www.reddit.com/r/rsgretrivr/comments/au8967/as_trump_and_kim_prepare_for_summit_bars_in/eh6hpmd/
https://www.reddit.com/r/rsgretrivr/comments/auainv/roses_leopard_prints_and_lots_of_lace_at/eh6qzyg/

Tests for HandlerManager in detecting non-CNAlifestyle URLs:

https://www.reddit.com/r/rsgretrivr/comments/au8czo/huawei_chairman_says_trumps_latest_message_on_5g/eh6hpkf/
https://www.reddit.com/r/rsgretrivr/comments/au8fyt/exodus_from_last_isis_enclave_overwhelms_syria/eh6hpio/
https://www.reddit.com/r/rsgretrivr/comments/au8pf8/what_will_the_budget_package_look_like_when/eh6hpda/
https://www.reddit.com/r/rsgretrivr/comments/au8sse/8_hard_truths_about_jc_in_singapore_i_learnt/eh6hpc6/

Each domain names will have a default handler now. For instance, ArticleHandler is declared in the lambda function as the default one for channelnewsasia.com.

In the event when subdomain handler is declared
URL: _https://cnalifestyle.channelnewsasia.com/travel/trump-kim-summit-vietnam-bars-cocktails-11276220_
Since cnalifestyle subdomain has been declared, CNAlifestyleHandler will be triggered.

In the event when subdomain handler is not declared
URL: _https://www.channelnewsasia.com/news/business/huawei-chairman-says-trump-s-latest-message-on-5g--clear-and-correct--11284730_
or
_https://channelnewsasia.com/news/business/huawei-chairman-says-trump-s-latest-message-on-5g--clear-and-correct--11284730_
Since there are no declared www subdomain or that no subdomain is provided in the URL, the default handler ArticleHandler will be triggered.
Fix for #12

I think this looks good and can be merged unless anyone objects.
Extracting article body via p tags with no bad children is a great idea. I think something similar can be done to improve the other handlers that just naively use get_text()

I spoke to Fabian and he's okay with the changes.
Merging this into develop for the next release.


mobile: iOS bluetooth low energy

What's this PR do?

[x] Basic knowledge about the bluetooth low energy in iOS
[x] Demo connect the iOS device with the Bluetooth device and transfer data

@viettrungphan can you take a look too?

There are some things should not in the sample code related to security, I will discuss with him separately and guide him how to fix it. Do not merge. Thanks @zlatanpham @monotykamary.


Problem translating CullDistance to MSL

Hi, we are using DXC and SPIRV-Cross to automatically translate HLSL to MSL. So far, this is the only problem we have found, but I can't find any specific information about it or how to solve it. I've digged in both libraries searching for clues and tried different flags and extensions, but so far, I always get the exact same result.
This is probably me not using the library correctly; I am sorry if this is the case. Out of several thousand shaders, this is the only compiling issue we have. I would really appreciate any insight you may have.
HLSL repro sample:
struct VSOUT
{
    float4 Position : SV_Position;
    float CullDistance  : SV_CullDistance;
};

VSOUT VSMain()
{
    VSOUT output = (VSOUT)0;
    output.Position = float4(0.0f, 0.0f, 0.0f, 1.0f);
    output.CullDistance = 1.0f;
    return output;
}

DXC produces the following SPIRV:
; SPIR-V
; Version: 1.0
; Generator: Google spiregg; 0
; Bound: 20
; Schema: 0
               OpCapability Shader
               OpCapability CullDistance
               OpMemoryModel Logical GLSL450
               OpEntryPoint Vertex %VSMain "VSMain" %gl_CullDistance %gl_Position
               OpSource HLSL 600
               OpName %VSMain "VSMain"
               OpDecorate %gl_CullDistance BuiltIn CullDistance
               OpDecorate %gl_Position BuiltIn Position
       %uint = OpTypeInt 32 0
     %uint_0 = OpConstant %uint 0
      %float = OpTypeFloat 32
    %v4float = OpTypeVector %float 4
    %float_0 = OpConstant %float 0
    %float_1 = OpConstant %float 1
         %10 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
     %uint_1 = OpConstant %uint 1
%_arr_float_uint_1 = OpTypeArray %float %uint_1
%_ptr_Output__arr_float_uint_1 = OpTypePointer Output %_arr_float_uint_1
%_ptr_Output_v4float = OpTypePointer Output %v4float
       %void = OpTypeVoid
         %16 = OpTypeFunction %void
%_ptr_Output_float = OpTypePointer Output %float
%gl_CullDistance = OpVariable %_ptr_Output__arr_float_uint_1 Output
%gl_Position = OpVariable %_ptr_Output_v4float Output
     %VSMain = OpFunction %void None %16
         %18 = OpLabel
               OpStore %gl_Position %10
         %19 = OpAccessChain %_ptr_Output_float %gl_CullDistance %uint_0
               OpStore %19 %float_1
               OpReturn
               OpFunctionEnd

And SPIRV-Cross generates the following MSL:
#include <metal_stdlib>
#include <simd/simd.h>

using namespace metal;

struct VSMain_out
{
    float gl_CullDistance[1];
    float4 gl_Position [[position]];
};

vertex VSMain_out VSMain()
{
    VSMain_out out = {};
    out.gl_Position = float4(0.0, 0.0, 0.0, 1.0);
    out.gl_CullDistance[0u] = 1.0;
    return out;
}

The issue here is that float gl_CullDistance[1]; creates an error when compiling the shader, specifically:
./sample.metal:12:8: error: invalid return type 'VSMain_out' for vertex function
vertex VSMain_out VSMain()
       ^
./sample.metal:8:5: note: field of illegal type 'float [1]' declared here
    float gl_CullDistance[1];
    ^
1 error generated.

Manually changing the MSL source code to float gl_CullDistance; and out.gl_CullDistance = 1.0; solves the issue, however, this is only the simplest repro case. This error happens in several hundred shader variations.
Thanks!

Cull Distance is not supported on MSL, so this is somewhat expected.

Ohh.. I was so focused on the array that I completely missed that. Thank you very much!


[0.59.x] URLSearchParams 'Error: not implemented'

🐛 Bug Report
I used next code to check support URLSearchParams
if ( !global.URLSearchParams ) {
   global.URLSearchParams = require('url-search-params')
}

But now it doesn't work because you add own "implementation"
https://github.com/facebook/react-native/blob/e6057095adfdc77ccbbff1c97b1e86b06dae340b/Libraries/Blob/URL.js#L69-L71
And a can't overwrite it
To Reproduce
const a = new URLSearchParams()
a.set('1','2');
a.toString()

Expected Behavior
My code don't broken!
Remove these polyfills:
https://github.com/facebook/react-native/blob/e6057095adfdc77ccbbff1c97b1e86b06dae340b/Libraries/Core/setUpXHR.js#L31-L32
Code Example
// I try force set custom
global.URLSearchParams = require('url-search-params');

// But it works only with
import { polyfillGlobal } from 'react-native/Libraries/Utilities/PolyfillFunctions';

polyfillGlobal('URLSearchParams', () => require('url-search-params'));

Environment
  React Native Environment Info:
    System:
      OS: Linux 4.15 Linux Mint 19.1 (Tessa)
      CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
      Memory: 1.27 GB / 15.51 GB
      Shell: 2.7.1 - /usr/bin/fish
    Binaries:
      Node: 10.15.3 - /usr/bin/node
      Yarn: 1.13.0 - /usr/bin/yarn
      npm: 6.4.1 - /usr/bin/npm
    npmPackages:
      react: ^16.8.1 => 16.8.4
      react-native: ^0.59.0 => 0.59.0
    npmGlobalPackages:
      react-native-cli: 2.0.1

@matthargett could you please look into the issue

I'm also having this issue.

Can someone take me through how to setup on IOS after ejecting from expo.Facebook isn't giving me any better news on this issue.Guys how did you solve this.i always get third party error

// index.js

import { URL, URLSearchParams } from 'whatwg-url';
import { Buffer } from 'buffer';

// react-native 0.59 add own global URLSearchParams without implementation
// https://github.com/facebook/react-native/blob/e6057095adfdc77ccbbff1c97b1e86b06dae340b/Libraries/Blob/URL.js#L66
// URLSearchParams uses in @esentai/core  serializer
global.Buffer = Buffer;
global.URL = URL;
global.URLSearchParams = URLSearchParams;

Hi! Yes, we purposefully didn't bring in the full whatwg-url package because it has a major impact on the bundle size due to needing to support many unicode corner cases. I expanded our narrow implementation slightly to support apollo-server's use of URL. Is there a specific library that isn't interacting properly?
Once you narrow the use case, I can suggest what can be done. If you need the fully spec-compliant URL implementation for reasons you can't specify publicly, then the workaround in the comment above will work (at the cost of the bundle size impact).

@matthargett I think the polyfill should be removed from global because it's not standard compliant and it's not documented properly in React Native JavaScript Environment.
Even the most basic use case will result in broken URL because of this polyfill. I filed a new issue #24428 for it.
I would argue that a broken or incomplete polyfill is worse than no polyfill at all. Exposing it in global will let people assume it's safe to use it.

Hi @leethree , thanks for your comments.
Because URL needs to integrate with React Native's blob support to enable an opaque reference that avoids huge copies, the URL is customized. Many React Native applications use the included URL and URLSearchParams without issues, even via complex libraries such as apollo-server. I'm open to suggestions (and especially PRs) that are able to meet the needs.
In the meantime, I'm happy to submit a PR myself to fix specific use cases that happen via libraries (such as apollo-server, etc). If you can tell me the use case, I can create a PR with tests pretty quickly.

@matthargett - how do you suggest to proceed? is there a workaround?

im not using appolo, i just see this error and not sure what has caused it all of a sudden. I saw it since i upgraded from 0.58.5 to 0.59

@matthargett the non-standard-compliant polyfill will cause issues because many 3rd-party libraries uses the global URL. I don't think it's reasonable to expect every app developer to throughly test if this customised URL implementation is compatible with all the libraries.

Many React Native applications use the included URL and URLSearchParams without issues
As you can see from the comments above, the new version breaks people's apps with an obscure error even if it was working before. It means a breaking change was introduced without any documentation or workaround.

If this URL implementation is intended to be used by app developers, it should be standard-compliant. I think URL and URLSearchParams are included in JavaScriptCore which is already provided by React Native 0.59. If that is the case, I don't understand why we still need this customised URL implementation.

If this URL implementation is only intended to be used internally by Blob, it should not be exported to the global scope. Or it should be renamed to something like RNURL to avoid confusing. App developers can actively decide if they want to use this customised version of URL.

In any case, its behaviour should be documented in some way. And a clear workaround should be provided with the error message.

I second @leethree - basically it breaks the ability to upgrade to the new version 0.59. This is a JSC implementation of URL, it cannot assume that this will change as libraries use it

I am currently upgrading react native version from 0.57 to 0.59.5 and this issue breaks my app. I tried @retyui 's comment. It does not work. This does not work either
// But it works only with
import { polyfillGlobal } from 'react-native/Libraries/Utilities/PolyfillFunctions';

polyfillGlobal('URLSearchParams', () => require('url-search-params'));

I am using a third-party lib that uses url-search-params, which is the reason why I got this not implemented error.
Could anyone suggest any solution or workaround for this issue? This is stopping react-native being upgraded to 59.

This is what's working for me.
// index.js

import { polyfillGlobal } from 'react-native/Libraries/Utilities/PolyfillFunctions';

polyfillGlobal('URLSearchParams', () => require('whatwg-url').URLSearchParams);

The only way I can get this to work, for example with aws-amplify's oauth, is to not only polyfill URLSearchParams as mentioned above, but to also delete the global reference:
delete global.URLSearchParams;
This causes other issues, so I'd love to hear if anyone has found a more reliable solution.

Hey! I used an other npm package and had fixed it.
search-params

Why is this closed? This is still an issue in 0.61.5

+1 @florian-milky
I'm facing this issue as well.

I'm facing this issue at 0.61.5 as well

I'm facing this issue at 0.61.4 as well

Final fix:

install the polyfill yarn add react-native-url-polyfill
add this to your index.js

/* polyfills */
/** URL polyfill */
import 'react-native-url-polyfill/auto';

Solution:

install the polyfill yarn add react-native-url-polyfill
add this to your index.js

/* polyfills */
/** URL polyfill */
import 'react-native-url-polyfill/auto';

Explanation: To ensure it being light weight, react native doesn't fully support everything the web supports. That's why sometimes we need RN polyfills

Why is this issue closed without any resolution? This is still an issue in RN 0.62.2

@halileohalilei Check my comment above, it should solve your issue 👍

Thanks @A-Tokyo, that's what I went with in the end, it works like a charm. But still some recommended solution from the maintainers would be better instead of a workaround.

This seems like an excellent candidate to add to the React Native documentation.


Copy support

@cmauney brought up that there is some raw Kokkos in spiner for the GetOnDevice() call. Could that sort of copy behavior be wrapped in ports-of-call instead so that there's a Kokkos version and a Cuda version?
Tagging @Yurlungur @chadmeyer @dholladay00 as well

Connecting to https://github.com/lanl/spiner/issues/54

I agree and would prefer that to be in ports-of-call only reason it's currently in spiner is we didn't see a way to write it in a "spiner-agnostic" way when we wrote it. Very much open to suggestions. :)


v0.1.4 does not load in VSCode 1.60.1 linux

0.1.4 supports VS Code 1.61 and newer. This is by design.


Fix auth for certain types and finish adoption latest Azure SDK

Resolves dotnet/dnceng#3301
This PR has two main components:

Finish adopting the latest Azure SDK everywhere
Fix authentication for certain Secret Types (a bug introduced around dotnet/dnceng#2141)

The later change is necessary because secretless authentication configurations are now complex enough that the defaults are not good enough. It will resolve the ongoing failures we've seen lately with rotations.

I ran the daily pipeline using this branch to vet the changes. The build succeeds while the main branch fails: https://dev.azure.com/dnceng/internal/_build/results?buildId=2490918&view=results

Commit b1a6c3f2 is the auth fix. The rest are SDK updates.


Use TogetherJS for in-browser pair program.

I remember reading somewhere that freeCodeCamp wanted to eventually leave Screenhero and similar alternatives behind and create an in-browser pair programming experience. Well, I just found Mozilla's TogetherJS library, which honestly seems like a perfect fit.
It's as simple as adding <script src="https://togetherjs.com/togetherjs-min.js"></script> to the relevant pages (I assume everything in view/coursewares) and add TogetherJS(this); to the i-want-to-pair button's on-click code. When clicking "Pair", the user will get a link to send to whoever they want to pair with, and they'll open up a WebRTC connection which allows for multi-user input as well as text and audio chat.
I'm in a new environment, and I'm having trouble setting up MongoDB, so I can't test any code right now, but if no one beats me to it, I will submit a PR when my dev environment is working properly.
P.S. Mozilla made a few cute videos explaining how TogtherJS works.
P.P.S. The UI doesn't really fit with freeCodeCamp's style, but since TogetherJS is open source, we could (probably) easily rectify that.

@ahstro TogetherJS is something we evaluated early on. Unfortunately, it is no longer in active development by Mozilla. (see: http://www.i-programmer.info/news/81-web-general/7768-mozilla-labs-closed-and-nobody-noticed.html) There where other reasons that I cannot recall at the moment. It did inspire us.
We do have plans in the works that depends on other things getting implemented first. The first is fully reactifying FCC (Will happen in stages).
Then it goes > creating in browser live chat per bonfire (requires us to implement socket servers and some sort of replication algorithm to be figured out). After that we will start finding an appropriate editor that can handle live editing over the wire. There are a lot of steps but rest assured we will get there.

Oh, that's a bummer, it seemed like it was created for FCC. I guess I'll close this then.


Feature/sidebar enhancements

Related issue
https://github.com/Royal-Navy/standards-toolkit/issues/239
Overview
Adjust the styling of the sidebar based on approved high fidelity mock.
Reason
Users were getting confused the highlighted parent sidebar item that looked like an active state.
Work carried out

[x] Implement collapsable functionality for nested items.
[x] Adjust styling in line with approved mock.
[x] Add additional 'Overview' menu items
[x] Render a branch of the sidebar as open if a child has active state

Screenshot

Developer notes
I've used preset from the CSS framework for all spacing, colours and font-sizes. I think there might be a few inconsistencies between these and the font sizing in the Sketch mock.

This should be the hover state for the entire "Forms" link. We could potentially keep this state as its active state too.

Updated based on feedback - there is a misleading flash of blue in the gif that I can't recreate in the browser. Best to use the branch deploy for review.


Rework releasing new versions

Using same release schema of Connexion. No need for PRs while releasing new versions.

Coverage remained the same at 90.476% when pulling d5926d4b1cde75c24150f62d674b5aa914493514 on rafaelcaricio:rework-versioning into fb765617a2649f90f425d57e6897a8fe1bf680ee on zalando:master.

👍

👍


It is hard to see the icon of the date in the 'Shared Access Signature' dialog under the 'High Contrast - Black' theme

Storage Explorer Version: 1.18.1
Build Number: 20210306.4
Branch: main
Platform/OS: Windows 10/ Linux ubuntu 16.04/ MacOS Catalina
Architecture: ia32/x64
Regression From: Previous release(1.18.1)
Steps to Reproduce

Open Storage Explorer -> Go to the 'View' menu -> Change the theme to 'High Contrast - Black'.
Select one storage account -> Click 'Get Shared Access Signature...'.
Observe the 'Shared Access Signature' dialog -> Check whether all icons are clear.

Expected Experience
All icons are clear.

Actual Experience
It is hard to see the icon of the date.

Additional Context

This issue also reproduces in the 'Access Policies' dialog.
This issue also reproduces in the 'Undelete by Date...' dialog.

Looked into this. Appears to be a chrome change. We could do something like this to change the color, but it is pretty hacky: https://stackoverflow.com/questions/62162645/change-color-of-chromes-calendar-icon-in-html-date-input
I'm going to open a chromium bug.

https://bugs.chromium.org/p/chromium/issues/detail?id=1188389

Verified this issue on the build main/20220615.4. Fixed. so closed.


Doing a flow to home position puts ankle at 3.1 degrees

executing a flow to an offset of (0,0,0) from the home position, should put all servos to an angle of zero' hip and knee are very close to zero, but ankle is3.13 or 3.06 degrees, depending on the leg, based on debug output.
You can also see the legs (ankles only, actually) move slightly if you do a flow to the home position, and then do a SSD to 0 for all servos. These should be the same position, and there shouldn't be any movement

resolved by corrections to routing that does conversion from local coordinates to servo angles, and more accurate measurements of hexbot leg parts.


[good practises] How to retrieve the created object ID (ie. from mongoDB) when doing the .call

Hello,
I've read somewhere that when doing a call, then it's a bad practise to return a created object (with an id)? Have I misunderstand something? (I can't recall the source right now, so I am asking for double-check)
Frontend code:
    await falcorModel
    .call(
        ['restaurants', 0, 'menuItems','add'],
        XYZ_DATA,
        ["name"]
        ).
    then((result) => {
    });

Then based on the XYZ_DATA, in falcor-router I have:
  route: 'restaurants[{integers}].menuItems.add',
  call: (callPath, args) => {
      let NewMenuItemRef = $ref(['menuItemsById', MOCKitemID]);

      // var newProductRef = $ref(['productsById', randomMockedMongoId]);
      let results = [
        {
          path: ['menuItemsById', MOCKitemID],
          value: MOCKitem
        },
        {
          // path: ['restaurants', 0, 'menuItems', index],
          path: ['restaurants', 0, 'menuItems', 6],
          value: NewMenuItemRef
        }
      ];

      console.log(JSON.stringify(results, null, 5));
      return results;
    }
  },

P.S. The example above have MOCKED data (ie. objectID & "6" as a number in an array of menuItems). let's assume that MOCKitemID is an ID created by mongoDB.
QUESTION: what is good practise to return this object (altogether with an ID) so the client-side app can know the ID created by mongoDB while doing the .call on the backend (with use of ***  route: 'restaurants[{integers}].menuItems.add',  call: (callPath, args) => {***) ?
Thanks in advance for an advice :-)

This is the use case for "refPaths" in call. You can specify paths to look up on any JSON Graph references returned from call. That way you can retrieve keys from the newly-created object without knowing its ID.

thanks for your time @jhusain ... hmm I've encountered one more problem, let me share  the code:
On client-side I have:
  async onAddItemDone(newMenuItem, refMap) {
    let MOCKitem = {"title":"Test title mock","description":"1","type":"MenuItem","description2":"2","description3":"3","allergens":{"type":"Allergens","vegetarian":true,"gluten":true,"egg":true,"dairy":true,"nut":true,"soy":true,"fish":true,"showAllergens":true}};
    newMenuItem = MOCKitem;

    /*
      adding an item with .call on Model
     */
    await falcorModel
    .call(
          ['restaurants', 0, 'menuItems','add'],
          [newMenuItem],
          [
            "id"  //     refPaths that will be looked up on newly-added menuItems after successful function completion
          ],
          [
            "length"  // thisPaths that will be looked up on list after successful function completion
          ]
        ).
    then((result) => {
    });

    const menuItemsLen = await falcorModel.getValue(
      ['restaurants', 0, 'menuItems', 'length']
    );

    console.info("1) >>> menuItemsLen", menuItemsLen); // it works fine, the thisPaths does it's job

    let allCurrentMenuItems = await falcorModel.get(
      ['restaurants', 0, 'menuItems', {from: 0, to: menuItemsLen-1 }, ['id', 'title', 'description', 'picUrl']]
    );

    // HERE THE PROBLEMS BEGINS that:
    console.info("\n\n\n DEBUG MODEL IS BELOW\n\n\n ");
    /*
      1) Here I can find a new object (as on the screenshot)
     */
    console.info(falcorModel._root.cache);
    console.info("\n\n\n DEBUG MODEL IS ABOVE\n\n\n ");

    console.info("\n\n\n allCurrentMenuItems BELOW \n\n\n ");
    /*
      2) here at allCurrentMenuItems there is still old (not updated list)
     */
    console.info(allCurrentMenuItems);
    console.info("\n\n\n allCurrentMenuItems ABOVE \n\n\n ");
  }

THE PROBLEM:

when I lookup the console.info(falcorModel._root.cache), then I can find the object created on with my .call function:

But then I check this console.info(allCurrentMenuItems) (as in the above's code snippet) then I see old (not updated objects):

THIS IS MY falcor-router's code:
  {
  route: 'restaurants[{integers}].menuItems.add',
  call: (callPath, args) => {
      let NewMenuItemRef = $ref(['menuItemsById', MOCKitemID]);

      // mocking: the INDEX somehow has to be fetched from mongoDB
      MOCKitem.orderNumber = 6;

      let results = [
        {
          path: ['restaurants', 0, 'menuItems', MOCKitem.orderNumber],
          value: NewMenuItemRef
        }
      ];

      console.log(JSON.stringify(results, null, 5));
      return results;
    }
  },

P.S. please provide feedback how I can do it more professionally, I will be grateful - as you can check with your experience and help me to improve :-) when I get it, then I will pass this knowledge forward.

Can you let me know if this resolves the issue?

Yes - thank you @jhusain. I have managed make this works.


Cannot read property 'toLowerCase' of undefined

How to reproduce:
~/Desktop/temp % send-tokens 0x2e98a6804e4b6c832ed0ca876a943abd3400b224 0x1e512fc62f01b6becf955b673a72085ca0e2ec2c 1
Cannot read property 'toLowerCase' of undefined

I'm guessing the issue is that the private key is missing, and it's trying to make the private key lowercase.  If the private key is undefined, the error message should read "No private key inputted.  A private key is mandatory." or similar.

I guess I'm striving for the most user-friendly error messages possible because I will be relaying such error messages to the users of my GUI.

pull request coming soon...

Fixed in ea2c6f8
Private key is not required. It will fall back to the node's wallet.

okay


Keytrack in the mod source matrix

Just distance from 69/12

The scaling here makes it tricky hence knocking out of 1.0


Cannot approach threadfin after installation

Sorry for re-opening the issue from yesterday. But my problem hasn't been solved yet.
The threadfin instance in Docker on my NAS is working fine (as far as I can judge). The most important is that I'm using the host address (which is the same as my NAS, so <IP_ADDRESS> (port 34400). I have also tried another free IP address in the same range <IP_ADDRESS> but it doesn't make a difference. I have set the local port and container port for simple access at 34400 for both, but this settings is skipped as they are equal.
When looking into the log I see that after hours more than 540.000 streams are ok (see log below).
I have noticed at my log there are a few odd things to mention:

The log says "PROXY URL:" is empty (maybe ok?)
"DVR IP: <IP_ADDRESS>:34400" which is strange, as the docker instance is not working with bridge-mode but "host" which means it is taking over my local IP of my NAS address. The range of 172.17.x.x is typically a range determined when in bridge mode
"Threadfin is also available via the other 4 IP's.", why 4?

As said, I have been running the xTeVe docker for a few years so I can compare settings, but I'm still lost...
When I call http://<IP_ADDRESS>:34400/web or http://<IP_ADDRESS>:34400/web nothing happens. When in Plex using <IP_ADDRESS>:34400 I can see after a few hours (!) the Golan threadfin instance, 10 tuners, but a scan is required. Nothing can be clicked. So, the address is somehow <IP_ADDRESS>:34400 and this is not correct. This problem has something to do that it's not using the host IP but a bridge, however the General tab doesn't confirm this!

My settings in Docker are:

The fact it's using the network host adapter, this is confirmed here:

You will need to log into the docker instance and watch the log while you run Threadfin manually. It is probably getting stuck at your m3u. The web interface is not available during the playlist/epg download

Please re-open if this is still an issue and you have logs

Problem is still there. I'm 100% sure my settings should use "host" IP address. The general summary confirms this as well. As I have multiple dockers with "host" IP address, it has something to do within this downloadable docker...
Manual start-up is impossible as far as I know within Synology...


Setting python.experiments.optInto gives confusing hover information

Issue Type: Bug
This is a minor issue, but when opening settings.json, the "python.experiments.optInto" has the following hover text:
"List of experiment to opt into. If empty, user is assigned the default experiment groups. See https://github.com/microsoft/vscode-python/wiki/Experiments for more details."
That page (https://github.com/microsoft/vscode-python/wiki/Experiments)  has a large title indicating that it's deprecated.
Overal, it's confusing whether it's possible to opt in/out of experiments, and if experiments set with that setting are deprecated, that hover message should probably be updated to show this information.
Extension version: 2021.2.636928669
VS Code version: Code 1.54.1 (f30a9b73e8ffc278e71575118b6bf568f04587c8, 2021-03-04T22:38:50.094Z)
OS version: Linux x64 5.10.19-1-lts

System Info

Item
Value

CPUs
AMD Ryzen 7 3700X 8-Core Processor (16 x 4226)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onprotected_video_decode: unavailable_offrasterization: disabled_softwareskia_renderer: enabled_onvideo_decode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 2, 2

Memory (System)
31.36GB (2.52GB free)

Process Argv
--verbose --no-sandbox --crash-reporter-id 66ea3ec9-05eb-4edd-8d35-34bbe6c1aba1

Screen Reader
no

VM
0%

DESKTOP_SESSION
/usr/local/share/xsessions/plasma-i3

XDG_CURRENT_DESKTOP
KDE

XDG_SESSION_DESKTOP
KDE-i3

XDG_SESSION_TYPE
x11

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
pythonvspyt700cf:30270857
vspor879:30202332
vspor708:30202333
vspor363:30204092
vstry244:30256636
pythonvsdeb440:30248342
pythonvsded773:30248341
pythonvspyt875:30259475
dockersubset:30270708
vspre833:30267464

Alternatively, or additionally, the page at https://github.com/microsoft/vscode-python/wiki/Experiments should make it clear what the current way is for users to opt in/out of experiments

Thanks for bringing this up, @ldorigo! I agree that the current link is confusing. I'm considering either removing that line, or linking to this following page: https://github.com/microsoft/vscode-python/wiki/AB-Experiments.
The problem is that we change the experiments often enough that it would be hard to manually maintain the list of the active experiments. The idea is that the auto completions in the settings.json file should help with knowing which values are accepted or not.

The new page you linked is definitely better. I'm not sure I understand your second paragraph - do you mean that it's hard to update the wiki, or to update the autocompletions? I'm not sure how experiments are implemented, but I guess that when they are setup, there's probably some metadata attached to them (what they are testing, what the changes are). I think it would be nice to have a bit more transparency for the end user - to know which experiments are enabled/available, what they do, etc.

I meant it's tricky to update the wiki as it would have to be a manual sourcing process (we have experiments that are run cross-teams, so there isn't necessarily one person with the whole information to be able to update it).
I like your idea though, I'm marking this issue as "needs decision" so I can talk to the team about it 😊  thanks!

I talked to the team the overall thought was that cost to get the information of the experiments to expose it is quite high, whether it's programmatically or not, and we have many other higher priority bugs and features to address first.  But I'm submitting a PR to update the link to this wiki page instead, to try to help clarify the confusion a bit, at least.


Small code quality and performance improvements.

I have only send the code quality changes that I think are concensual.
Overall code base is realy good !
I haven't change any logical behavior to avoid breaking anything. (Exept for 9cffbf194f2655f256187d8e17db013d603b2218 that look like to be a mistake)

Rename object with an upercase as 1st char. It hide class name and lead to mistakes.
Hide constructor as protected when in an abstract class.
Return List instead of ArrayList.
remove duplicated if branches.
Use isEmpty() instead of size()==0
Cast to double instead of float when function require a double.

Hi Hydro, thank you for all your suggestions ! We will take a look at these :)


uninitialized constant MPNS

While i'm trying to send push notification to windows phone 8 using
 pushUri = 'http://am3.notify.live.net/throttledthirdparty/01.00/XXXXXXXXXxxxXXXXXXX'
  title = 'My title'
  MPNS.send_notification(pushUri,title)

It throws error like uninitialized constant MPNS..Can anybody help me out of this?

#53

MPNS is not yet merged, will be as soon as I can


Development

Just getting started. More soon.

Now we're saving pet details for two pets to $option. Also saving the $post->ID which will need to update then API runs. Are you going to create a custom hook? I'm still feeling around a little in the dark, if it's not obvious.
Pet details and other fields aren't really being "validated". Not sure how important that is since they are all either hidden or coming from select field. I imagine someone might be able to submit to options.php url directly and break things.
Your feedback, input and advice are more than welcome, amigo.

Holiday weekend plus one major project in working on means I may not be able to give this any attention for a few days b

Thanks for the heads up. New project looks good. I tried to sign up. Not sure if it worked. Landed on a blank page that said "security check".

@MikeiLL You found a bug. Thanks! Fixed, so you should be able to signup now.

Yes. Style the following to make more prominent: "Almost finished... We just need to confirm your email address. To complete the subscription process, please click the link in the email we just sent you."

I think now the only big step to do is to update keel_featured_pet_selections when the API runs, comparing it's two Petfinder IDs featured_pet_id and featured_pet_backup_id and updating it's featured_pet_post_id and featured_pet_backup_post_id to match the new posts created with those Petfinder IDs. I don't quite understand how that would work in terms of a custom hook, aside from the fact that the hook's callback would run when the API function runs.

I'm trying to work on making a child theme so that I can add developments to the main theme without having to deal with multiple forks, branches, but still make changes that wouldn't be applicable to main theme. Any thoughts or insights on that, man?


False positive Error

This is print as a warning but the syntax is correct:

This syntax is to check if an array is already declared and the 2> /dev/null must exist to hide the error. BashSupport is not interpreting this in the right way I think.
Thank you as always!

@OscarAkaElvis Thanks. The ´2´is currently read as variable name, which is wrong. I'll have a look at this.

Thank you for keeping supporting this. I put you time ago on credits of my bash project: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Hat Tip To

hi @jansorg i saw you still keep working on this awesome tool!. Nice! any update on this issue? Thanks for your work.

I'll see what I can do.


Add Travis tests

Ditto

[x] Launch automatically the tests from Travis
[x] Add PEP8 test
[ ] Add URDF exportation test

A lot of ROS projects are now not using directly URDF, but XACRO which is basically an XML container with the possibility to write macros:
https://github.com/ros/xacro
This is the case for the RobotisOP3, the PR2 and the UR10, where the URDF should be extracted from XACRO to launch our exporter.
I tried to add XACRO as a submodule, and to only launch this part, but unfortunately, XACRO has dependencies on ROS :trollface:

Obsolete


continue_tutorial.py file opens every time I restart a JetBrainsIDE

Before submitting your bug report

[X] I believe this is a bug. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that reports the same bug
[X] I've seen the troubleshooting guide on the Continue Docs

Relevant environment info
- OS: Windows 11
- Continue: 0.0.26

Description
Even when I delete the file, it gets re-downloaded
its driving me crazy lol
seems to happen in PyCharm and Webstorm, but not VS Code
Presumably related to this:
https://github.com/continuedev/continue/blob/1cad8b3f4ba54754b383a6d58d731d67b3e7767e/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/activities/ContinuePluginStartupActivity.kt#L139
Proposed fix:
Only open on first install or something like that
To reproduce

Install Continue Plugin on PyCharm or Webstorm
Restart IDE, see that the dang file popped up again
Right click, show in explorer, delete
Restart IDE, and its back!
:despair:

Log output
No response

Fixed and will be included in the next version! If anyone comes along before then and is bothered by it, here's a version you can install from disk with the fix:
Uploading continue-intellij-extension-0.0.27.zip…

This version is now available on the store in version 0.0.27


Add configuration for what file types to skip, and/or what file size to skip

This is done, needs tests.

Done


Build a Bounties or Roles App on Aragon

Payout

$1500

Description
Build an aragon app for putting out tasks & or locking in roles.
If creating an app for publishing tasks for DAO members, there should be an option to share the bounty board between all Aragon DAOs if possible.
If creating an app for locking in roles, a DAO member applies for a role, which triggers a proposal. The role means you are regularly paid out an X amount of DAO' tokens.
If you have any questions or want to share progress, drop in here.
Submission Deadline
Submit your work here by August 8th, leave your Discord handle.
Winner Announcement Date
August 10th at the closing event.

discord handle: Max#3133


Fix tsplib parser and added test

Summary
Fix TSPLIB parser and added corresponding test.
fixes #408
Details and comments
Added simple TSPLIB file for test, allowed for EOF (end of file) tag, updated the assigned value to the output of strip() method.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

6 of 6 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.8%) to 92.19%

Totals

Change from base Build<PHONE_NUMBER>:
0.8%

Covered Lines:
4332

Relevant Lines:
4699

💛  - Coveralls

The word whitespace is not part of the dictionary en_US that is used for the checks. I feel it would be fine to add this word to .pylintdict.

The word whitespace is not part of the dictionary en_US that is used for the checks. I feel like it would be fine to add this word to .pylintdict

Sure, please add it. Sorry, I did not realize my suggested change would cause a spelling problem. But you've figured how to sort it, great!


Inconsistent margin spacing in widgets

Describe the bug
Widgets have inconsistent spacing on the margins in the blocks. Some widgets, for example the Tabs, have one column of spacing, while others like Table have no spacing. This just doesn't look right.
Expected behavior
All widgets should have consistent spacing (one or none) and optionally should be defined by the user for greatest flexibility.
Screenshots

I understand the issue. I think that a zero margin may be the best convention as it is adopted by most widgets at the moment. To my knowledge, only the Tabs widget has a default horizontal margin. The fix would be to:

Add a Margin property to the widgets and default to zero margin in the Default implementation.
Make it configurable through the builder.
Take those margins into account in Tabs::render.
Add one or two tests in a tests/widgets_tabs.rs.

Do you have an interest in tackling this particular issue ? Anyone whose reading could also take the lead if they want until I manage to get some time to look at it.

I can certainly give it a shot! Relatively new at Rust, but I think I'll manage just fine reading the implementation in the other widgets.

I've added in left margins and right margins are somewhat working, but there's a bit of an issue with right margins. Currently, tabs (and it appears other widgets too maybe?) simple write off of the buffer, not truncating the string if it's too long.
This causes the tab titles to write onto the edge of the block, like so (screenshot taken without any modifications):

Which is undesirable, and is made visually even worse when using right margins (screenshot taken after margin modifications, with margin size of 2):

The difficulty is due to how we want to handle truncation. With unicode some characters can occupy variable size, so it's not as simple as string slicing, as I'm sure you know. We could use something like unicode_truncate  to handle this, but it could add a little bloating and it's certainly slower. The speed impact shouldn't be too bad if we first check if truncation is required before doing so, but I don't want to add dependencies without approval.

The functionality you are asking for is already provided by Buffer::set_stringn which take an additional width parameter that is your width "budget" to draw the string. If the budget is exhausted the function stops printing. This width budget is usually the diff between the right most bound of the area you are drawing too and your current horizontal offset.

Great! All tests are passing and it looks good.

Would you like me to submit a PR of just the tabs widget, or should I implement margins on all other widgets before submitting PR?

Margins on any widget would be so useful! :heart:

@teohhanhui Well you're in luck because I'm working on it actively and it should be done fairly soon! Adding vertical and horizontal margins. Done so far on tabs, working on the rest of the widgets now.

I've ran into an ambiguity and I'd like to poll the community to see how it should be handled:
Tables and lists have a selector. Right now, the default functionality is to provide a sort of margin on the left to accommodate the width of the selector. It looks like this:

The question is what to do when it comes to margins. There are a few options:

Enforce margins. Throw an error if the horizontal margin provided is not sufficient to fit the selector.

Add margins. Simply add the width of the selector and the margin. If you have a margin width of 2, and a selector width of 1, the final left margin would be 3.

Max margins (probably best). If you have a margin width of 2, and a selector of 1, the margin is 2. If your selector is instead 3 wide (bigger than 2), then the left margin will be 3, but the right margin will remain 2.

Option 4: Just treat the selector as if it's part of the row's content. Personally, I think this is the most intuitive and predictable behaviour. Option 2 and 3 are a bit surprising (too much magic, which makes it harder to have precise control).

Currently, the selector margin only affects the data, not the header. ... If we went with a solution like 3, do you think that the header margin should also reflect the resulting margin?

We can add the selector width to the content width, when going with option 4.

@thorlucas I would prefer separate PRs as I don't think that we have the same problem (if any) on all widgets. Regarding your observation on the table margins (or padding, it's true that the name can be confusing for people used to css), an error should never be thrown on narrow areas (panics are bugs) the rendering should simply be skipped and the margin may not take the selector into account if we want a similar behavior across widgets. The first thing that comes to my mind would be (excuse the ugly diagram):

@fdehau That diagram is the same as what I've described as option 4.

@teohhanhui Yeah sorry I went through your comment a bit too quickly and understood something slightly different. I'm glad we agree :).

Option 4 it is! That’s actually equivalent to what I said in my option 2 — just add the two widths for the left margin.
@fdehau you would prefer separate PR’s for each widget? I was just going to make all widgets work consistently in terms of specifying margins.
I can make the bug fix that closes this issue one PR (changes tabs margins to 0), and a separate PR to add customizable margins to all widgets, if that’s what you mean?


Fix index path handling on Windows

When accessing https://mydomain.com/, the "/" path should be replaced with /index.html.   However, on Windows, the path has been converted to "" by the time it reaches the check, and hence the index page is never served.   After replacing that check with File.separatorChar, the index starts working.   The includeHidden check has a similar issue (in this case checking for a dot on the wrong path element.)    The included changes should address these issues.
NOTE: I was unable to run the unit tests (even before making any changes), so chances are that I broke a few.

I think the real fix here is to fix Utils.normalisePath so it doesn't return a path contain backslashes.
Request paths should always use forward slashes, even on Windows.

normalizePath() is used to convert the URI path to a file system path.  It is then combined with the context path to find the requested file.  A solution would be to do the conversion later.  Looking at the code, the Index check could easily be moved before the conversion happens, which eliminates that problem.  The hiddenFile check, however, should be performed on a file system path, not on a URI path.

The purpose of Utils.normalisePath is to convert a potentially unsafe URI path into a safe one.
E.g. to remove ".." so people can't access files outside the webroot.
The output of the method is a request URI path, not a file system path :)

Well, it's using the file system Paths class, so it obviously doesn't work as intended then :-)
Either way, I think a proper conversion from URI path to filesystem path needs to happen before it's passed into the File class.
One thing that would make path processing easier is using a URI for the context path as well...  so I specify my static content home as file:///c:/website.   Now it becomes possible to do all processing as if it were a URI, and only convert it when it's passed to File -- new File(new URI(uri)).

Well, it's using the file system Paths class, so it obviously doesn't work as intended then :-)

Err... yes. It needs to be fixed, as I mentioned earlier. That's the point ;)

I've made a temporary fix, to get you going for now :)


installing debugpy failed

◇ Installing debugpy
Downloading https://api.github.com/repos/microsoft/vscode-python-debugger/zipball/v2024.12.0
◆ Failed: list indices must be integers or slices, not str

There is already a ticket for this https://github.com/daveleroy/SublimeDebugger/issues/272


CP(55bb579) [AIRFLOW-5597] Linkify urls in task instance log

LGTM assuming tested (you can also work with Xiao to set up a quick test for this or maybe check the output of an existing task that has a URL in it's output).

LGTM assuming tested (you can also work with Xiao to set up a quick test for this or maybe check the output of an existing task that has a URL in it's output).

This is working. Getting the hyperlink.


Change styling on Search results

Expected Behavior

We want to see a styling of the search results that is a bit more good looking
Current Behavior

It looks like this:

Possible Solution

We should change the generated markup to use something less ugly
Steps to Reproduce (for bugs)

Go to the homepage docs
Do a search for 'bar'
See the results in a modal

Closing this, let's tackle it along with https://github.com/eventbrite/britecharts/issues/395, as it seems we will probably change the whole thing after all.


[User Profile] Encrypt UserId before storing in Db.

From @turpu-rakesh on July 18, 2018 7:32
Need to encrypt userId before sending it to UI and Db.
Copied from original issue: Microsoft/Access2Justice#253

@grawdon and @breegDo we need to reverse this considering new user profile requirements


Trouble loading custom config file with Synpress 2.2.0

Hello again,
I'm having some trouble loading a custom config file, please see below:
Case 1: with defineConfig - cypress throws error on start

Case 2: without defineConfig - cypress doesn't throw an error on start but when trying to run a spec

In this instance, I tested both with the default CRA config and with CRACO and the result is the same. I couldn't find much about this in the Cypress issues either; it's strange because our config is the default config specified in the Synpress docs so I'm not really sure what I'm doing wrong.
Can you please take a look at this one @drptbl? A reproducible example can be found in this repo: https://github.com/alexo382/synpress-test/
Thanks a lot!

Use js config, not ts.

Use js config, not ts.

I get the same errors when using .js :(

@alexo382 please provide an example with javascript setup (as described in the readme), typescript is not supported yet (but planned)

@alexo382 please provide an example with javascript setup (as described in the readme), typescript is not supported yet (but planned)

Ah, my bad, I assumed Synpress had TS support due to the tsconfig.json required in the setup. Please take a look again here: https://github.com/alexo382/synpress-test/, the setup is now as described in the Readme.
Thanks again!

Hey @alexo382,
I have fixed this for you:
https://github.com/drptbl/synpress-test/commit/71e77e2a0742e2864d2b38d7f4d5465c04d84fd2
https://github.com/drptbl/synpress-test/
^ take a look at my commits.
It was actually a very good issue. The problem was that you've not mirrored the whole synpress default config (which also required a little bit of changes) and instead has changed only things you wanted to change. I will make sure to mention this is the readme or add a support for merging configs to prevent it from happening in future.
Thanks,
Jakub.

@alexo382 feel free to reopen this issue if it's still present.
thanks,
jakub.


Remove widget data from interact example

The output widget does not have a counterpart in web contexts at the moment.
See http://ipywidgets.readthedocs.io/en/latest/examples/Using Interact.html

Perhaps we should just make an output widget for the web context - the jupyterlab one should probably be very close to what we need.

Yes, although this would be a 6.1 thing.


[Feature request] A public profile link to share your pity stats online

This would be amazing and people wouldn't have to keep taking screenshots to share their luck and the stats of their pulls in Genshin.
Essentially the Wish Counter page of that specific user could be set to public or private. On public mode, they would be assigned a link (according to their UID like on https://enka.shinshin.moe) which would be shareable and if set to private mode that link would go nowhere.
Is this or any version of it, doable at all?

currently its not possible because all data is saved locally


Process.run in non-existing working directory has imprecise error message

For example this program:
import 'dart:io';

void main(List<String> args) {
  Process.runSync('/usr/bin/ls', [], workingDirectory: '/non_existing_dir');
}

Has the following output:
> dart bin/run_in_non_existent_workingdir.dart
Unhandled exception:
ProcessException: No such file or directory
  Command: /usr/bin/ls
#0      _ProcessImpl._runAndWait (dart:io-patch/process_patch.dart:487:7)
#1      _runNonInteractiveProcessSync (dart:io-patch/process_patch.dart:632:18)
#2      Process.runSync (dart:io-patch/process_patch.dart:68:12)
#3      main (file:///usr/local/google/home/sigurdm/projects/blah/bin/run_in_non_existent_workingdir.dart:4:11)
#4      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:295:32)
#5      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

It would be great to know that it was workingDirectory that doesn't exists - not eg. the executable.

I was also confused by this and spent over an hour chasing the wrong problem.

And another related one
import 'dart:io';

void main(List<String> args) {
  File('pubspec.yaml').renameSync('non_existing_dir/pubspec.yaml');
}

> dart run bin/copy_to_non_existing.dart
Unhandled exception:
FileSystemException: Cannot rename file to 'non_existing_dir/pubspec.yaml', path = 'pubspec.yaml' (OS Error: No such file or directory, errno = 2)

Not clear that it is the target directory that is missing - thought it was the file itself.

And another related one
import 'dart:io';

void main(List<String> args) {
  File('pubspec.yaml').renameSync('non_existing_dir/pubspec.yaml');
}

> dart run bin/copy_to_non_existing.dart
Unhandled exception:
FileSystemException: Cannot rename file to 'non_existing_dir/pubspec.yaml', path = 'pubspec.yaml' (OS Error: No such file or directory, errno = 2)

Not clear that it is the target directory that is missing - thought it was the file itself.

I filed this yesterday:

https://github.com/dart-lang/sdk/issues/50589

The case of the non-existent working directory is solvable (at least on POSIX) because the process startup is implemented by forking, and running chdir, and finally execve. That means the code does know it was the chdir call that failed and could provide a more accurate error message in that case.
E.g. the place to improve the error message for process_linux.cc would be:
if ((working_directory_ != NULL) &&
    !Directory::SetCurrent(namespc_, working_directory_)) {
  ReportChildError();
}

In general, the underlying system calls does not provide this granularity and it can be non-trivial, error-prone, and racy to try to guess it after the fact. execve for instance has a bunch of surprising cases that still make sense where e.g. the system call can fail with ENOENT when the dynamic loader does not exist but the program does.

@sortie thanks - yeah, maybe we can not make it precise in all cases.
But maybe we can then be more clear on the ambiguity up-front. E.g. something along:
> dart run bin/copy_to_non_existing.dart
Unhandled exception:
FileSystemException: Cannot rename file to 'non_existing_dir/pubspec.yaml'. Either the target or destination dir could not be found, path = 'pubspec.yaml' (OS Error: No such file or directory, errno = 2)


fix(app-shell): Update Electron and add macOS app notarization

overview
This PR updates a lot of our underlying Electron / app packaging tooling to ensure we are ready for new security requirements in the upcoming version of macOS (10.15 Catalina).
This Electron update will bring reliability and security improvements to all our users, but out of necessity, is going to introduce a little bit of user pain for our Linux and Windows users out of the gate in exchange for a better long term experience.
Closes #3997, closes #2567
the good

When macOS 10.15 is launched in the coming weeks, our users won't get scary security alerts
Our macOS distributable is switching from ZIP to DMG

Now, when users double-click their Mac download, they'll get instructions to drag the app to their /Applications folder

Windows users can now choose to install for all users (if they have admin permission, see #2567)
The app will be on Node v12 and Chromium v76, which is always nice for us (e.g. built-in flatMap!)
Copy / paste works in the devtools now!

the bad

Support for macOS 10.9 Mavericks has been dropped
We need to recommend to Windows users that they uninstall 3.11.x before installing this update to avoid weird problems caused by installation location bugs fixed in electron-builder
Our macOS builds are going to take about 5 to 10 minutes longer because of the notarization process

wash

The installation experience of the Linux app is changing

Bad news: we need to direct them to install AppImageLauncher once, before downloading our app
Good news: once they've got AppImageLauncher installed, all they have to do to install the app is to double-click the download
In other words, no more messing with file permissions before launching; AppImageLauncher will just handle it

changelog

Update electron and electron-builder dependencies
Update electron-builder configuration to support macOS notarization

review requests
This PR is going to require stress testing on all of our OS's. Given that we don't have a choice on this update (because of macOS security), I think as long as we do various smoke tests with this PR, we should rely on our release QA to really make sure this is solid. Scariest areas that the Electron side of things deals with that we'll need to keep an eye on:

App self-update
App config
Robot discovery
Buildroot updates

Making a note about this here so it doesn't get forgotten:
OT App page on website currently lists supported OS as macOS 10.9 or later
Once this is merged and released we will need to update that to macOS 10.10 or later
@mcous please confirm i'm correct here with the new version support

@Kadee80 that is correct. Filed Opentrons/opentrons-dot-com#230 to track


Setup common remote backend for tfstate when testing isolated GCP modules in same GCP project

I have a folder containing subfolders of different gcp terraform modules. I want to run unit tests on these modules on the same GCP project and consider the tfstate file stored in CloudStorage on that project. I inject dependencies from one module to another (i.e. VPC, CloudSQL, CloudStorage, GKE, Helm) and I need to have one entrypoint for the backend configuration, however it doesn't seem possible.
I use the following snippet:
terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{
		// The path to where our Terraform code is located
		TerraformDir: terraformDir,

		// Variables to pass to our Terraform code using -var options
		Vars: vars,

		// Backend config
		BackendConfig: map[string]interface{}{
			"bucket": os.Getenv("GCP_BUCKET_TEST"),
			"prefix": "terraform/state",
		},
	})

That block runs every time I execute each individual test for each module, however everytime this is executed it results in destroying all the previously created modules. I can't afford that, since some components need to stay up and running for others to work. On the contrary, I need one single tfstate reference that gets updated for all the components that are created along the way and only updates the state when all the tests are finished (and the resources are destroyed). I use a TestMain(m *testing.M) function and global variables under the same go package to account for dependencies between tests.
Is there any workaround on this?

Hi,
AFAIK usage of func TestMain(m *testing.M) is solution in this case


[Enhancement] UserStoppedTypingBehavior

Summary

After a certain threshold has been reached after the user has stopped typing, a given command can be executed
Stopped Typing Threshold will be adjustable
Auto Dismiss Keyboard will be adjustable when user has stopped typing

See this repository for an example: https://github.com/jBijsterboschNL/Xamarin.Forms-UserStoppedTypingBehavior
And this blog post about the implementation:
https://blog.johndotnet.nl/automatic-search-trigger-when-user-stopped-typing-in-xamarin-forms/
Intended Use Case
If you want a command (f.e. a search command) to be automatically executed after the user has stopped typing, but you don't want it to be triggered on each text changed event (triggering too many and also obsolete search calls).

I am Gerald and I approve of this idea!

Sounds cool!

Great! :) will try to get this implemented into the Xamarin Community Toolkit in the next weeks.

PR has been merged, so this issue can be closed :) thanks all for your feedback

Closed by #253


ES translation: Releases page title (fixes #1034)

jtorres@Joels-Air bitcoincore.org % bundle exec htmlproofer --check-html --disable-external --url-ignore '/^/bin/.*/' ./_site
NOTE: nokogumbo: Using Nokogiri::HTML5 provided by Nokogiri. See https://github.com/sparklemotion/nokogiri/issues/2205 for more information.
Running ["LinkCheck", "ImageCheck", "HtmlCheck", "ScriptCheck"] on ["./_site"] on *.html...
Ran on 2382 files!
HTML-Proofer finished successfully.
jtorres@Joels-Air bitcoincore.org %

Thanks for checking!


TypeError: list indices must be integers or slices, not str

Don't know why, but after upgrading from python 3.6 to 3.8 and newest powerdns-admin master I can't edit any existing domain anymore. "TypeError: list indices must be integers or slices, not str"
Something in the settings functions "get_records_allow_to_edit" and "get_forward_records_allow_to_edit" seems to get wrong.
[2022-05-15 02:42:45,099] [app.py:1891] ERROR - Exception on /domain/x.de [GET]
Traceback (most recent call last):
...
  File "/usr/local/www/PowerDNS-Admin/powerdnsadmin/decorators.py", line 74, in decorated_function
    return f(*args, **kwargs)
  File "/usr/local/www/PowerDNS-Admin/powerdnsadmin/routes/domain.py", line 73, in domain
    records_allow_to_edit = Setting().get_records_allow_to_edit()
  File "/usr/local/www/PowerDNS-Admin/powerdnsadmin/models/setting.py", line 293, in get_records_allow_to_edit
    set(self.get_forward_records_allow_to_edit() +
  File "/usr/local/www/PowerDNS-Admin/powerdnsadmin/models/setting.py", line 300, in get_forward_records_allow_to_edit
    r_name = [r for r in f_records if f_records[r]]
  File "/usr/local/www/PowerDNS-Admin/powerdnsadmin/models/setting.py", line 300, in <listcomp>
    r_name = [r for r in f_records if f_records[r]]
TypeError: list indices must be integers or slices, not str

Hello,
It looks like your setting is not returning a list. Can you add these line just before L300:
current_app.logger.debug("{} => {}".format(records, f_records))
and paste the content of the debug output here (just relevant lines, like the one crashing and one or two before) ? (it will be logged just before the stack trace)
Regards


fix(examples): fix import

We have the script to transform that, it only works for build but we should keep the example align with it.

Sorry, I'm a little confused, I didn't get your point.


Fixes Dependabot::SharedHelpers::HelperSubprocessFailed issues

What are you trying to accomplish?

Anything you want to highlight for special attention from reviewers?

How will you know you've accomplished your goal?

Checklist

[ ] I have run the complete test suite to ensure all tests and linters pass.
[ ] I have thoroughly tested my code changes to ensure they work as expected, including adding additional tests for new functionality.
[ ] I have written clear and descriptive commit messages.
[ ] I have provided a detailed description of the changes in the pull request, including the problem it addresses, how it fixes the problem, and any relevant details about the implementation.
[ ] I have ensured that the code is well-documented and easy to understand.

Closing as this is redundant.