Delete articles Document/policy and HTMLIFrameElement/policy

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[ ] New documentation
[x] Correction or update

Summary
As discussed in https://github.com/mdn/browser-compat-data/issues/4367, {document,HTMLIFrameElement}.policy was renamed into {document,HTMLIFrameElement}.featurePolicy. A few MDN pages need to be deleted or moved and updated.
Tasks

[x] Delete https://developer.mozilla.org/en-US/docs/Web/API/Document/policy
Content was moved to https://developer.mozilla.org/en-US/docs/Web/API/Document/featurePolicy and updated

[x] Update and move Japanese translation from https://developer.mozilla.org/ja/docs/Web/API/Document/policy to https://developer.mozilla.org/ja/docs/Web/API/Document/featurePolicy

[x] Delete https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/policy
[x] Content was moved to https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/featurePolicy and updated
No translations at the time of writing

NOTE: Please wait until https://github.com/mdn/browser-compat-data/pull/4381 is merged so that the compatibility tables do not link to nonexistent pages.

Update: The browser compatibility data has landed onto the website already, so the links in browser compatibility tables are updated. I think these old pages can be safely deleted now. Please note that translations should also be deleted (I already moved translations to new URLs and just replaced policy with featurePolicy where applicable).

Pages have been deleted.

@irenesmith

Pages have been deleted.

Thanks, but I still can see this article translation that I believe should be deleted too:
https://developer.mozilla.org/ja/docs/Web/API/Document/policy
Most likely, it will not help anyone (document.policy is not used in any browser anymore) and will only cause confuse people.

Just deleted it as well. Sorry to have missed it.


[ENH] SH description (take 2)

Manually took the changes in #8 and applied them to the current state of the BEP.
I expect that when details of the Descoteaux SH convention are introduced, some of the details that are currently attributed to the MRtrix3 convention will be shared between the two, and will therefore be moved to the "concepts shared across all spherical harmonics bases" section.

Removed placeholder for Descoteaux SH basis; would suggest that there should instead be a PR dedicated to the introduction of that basis, along with any formatting changes required to do so.

Dipy has software for SH representations and we should bring back here the Descoteaux SH representation


TextFormField autofill not working for password with obscureText true

Steps to reproduce
You need an app with apple associated domain to be able to test iOS autofill password.

Launch app.

Click on "Login with obscureText".

Click on password.

Click on the suggested password from your keyboard

See that TextFormField is not autofilled

Click on the suggested password from your keyboard

See that TextFormField is autofilled

Go back to home page

Click on "Login without obscureText"

Click on password.

Click on the suggested password from your keyboard

See that TextFormField is autofilled

Expected results
In Step 5, inputs should be autofilled.
Actual results
In Step 5, inputs are not autofilled
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(
    const MaterialApp(
      home: Home(),
    ),
  );
}

class Home extends StatelessWidget {
  const Home({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Textfield autofill issue'),
      ),
      body: Center(
        child: SingleChildScrollView(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              ElevatedButton(
                onPressed: () {
                  Navigator.of(context).push(
                    MaterialPageRoute<void>(
                      builder: (BuildContext context) {
                        return const Login(obscureText: true);
                      },
                    ),
                  );
                },
                child: const Text('Login with obscureText'),
              ),
              const SizedBox(height: 16),
              ElevatedButton(
                onPressed: () {
                  Navigator.of(context).push(
                    MaterialPageRoute<void>(
                      builder: (BuildContext context) {
                        return const Login(obscureText: false);
                      },
                    ),
                  );
                },
                child: const Text('Login without obscureText'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class Login extends StatelessWidget {
  const Login({
    required this.obscureText,
    super.key,
  });

  final bool obscureText;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: SingleChildScrollView(
        child: Padding(
          padding: const EdgeInsets.all(16),
          child: AutofillGroup(
            child: Column(
              children: <Widget>[
                TextFormField(
                  autofillHints: const <String>[
                    // Order is important, username must be first
                    AutofillHints.username,
                    AutofillHints.email,
                  ],
                  keyboardType: TextInputType.emailAddress,
                  decoration: const InputDecoration(
                    hintText: 'Username',
                    contentPadding: EdgeInsets.only(left: 13, right: 7),
                    filled: true,
                    focusedBorder: OutlineInputBorder(
                      borderSide: BorderSide(
                        width: 1,
                        color: Colors.grey,
                      ),
                    ),
                    enabledBorder: OutlineInputBorder(
                      borderSide: BorderSide(
                        width: 1,
                        color: Colors.grey,
                      ),
                    ),
                    border: OutlineInputBorder(
                      borderSide: BorderSide(
                        width: 1,
                        color: Colors.grey,
                      ),
                    ),
                  ),
                ),
                const SizedBox(height: 16),
                TextFormField(
                  autofillHints: const <String>[AutofillHints.password],
                  cursorColor: Theme.of(context).primaryIconTheme.color,
                  obscureText: obscureText,
                  keyboardType: TextInputType.visiblePassword,
                  decoration: const InputDecoration(
                    hintText: 'Password',
                    contentPadding: EdgeInsets.only(left: 13, right: 7),
                    filled: true,
                    focusedBorder: OutlineInputBorder(
                      borderSide: BorderSide(
                        width: 1,
                        color: Colors.grey,
                      ),
                    ),
                    enabledBorder: OutlineInputBorder(
                      borderSide: BorderSide(
                        width: 1,
                        color: Colors.grey,
                      ),
                    ),
                    border: OutlineInputBorder(
                      borderSide: BorderSide(
                        width: 1,
                        color: Colors.grey,
                      ),
                    ),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
Login & password used are fake :)
https://github.com/user-attachments/assets/0a75ea9e-0e6d-4c6e-a9f8-95b8e7fdd713

Logs
Logs
No logs

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.24.3, on macOS 15.0.1 24A348 darwin-arm64, locale fr-FR)
    • Flutter version 3.24.3 on channel stable at /Users/earminjon/fvm/versions/3.24.3
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (5 weeks ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /Users/earminjon/Library/Android/Sdk
    • Platform android-35, build-tools 35.0.0
    • ANDROID_HOME = /Users/earminjon/Library/Android/Sdk
    • Java binary at: /Users/earminjon/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16A242d
    • CocoaPods version 1.14.3

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

[✓] Android Studio (version 2024.1)
    • Android Studio at /Users/earminjon/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] Android Studio (version 2023.2)
    • Android Studio at /Users/perso/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] IntelliJ IDEA Ultimate Edition (version 2024.2.3)
    • IntelliJ at /Users/earminjon/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 82.0.3
    • Dart plugin version 242.22855.32

[✓] Connected device (5 available)
    • iPhone d’Enguerrand (mobile)    • 00008030-0012646A21E3802E • ios            • iOS 18.0.1 22A3370
    • macOS (desktop)                 • macos                     • darwin-arm64   • macOS 15.0.1 24A348 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad     • darwin         • macOS 15.0.1 24A348 darwin-arm64

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Hi @EArminjon
Can you please test this on Flutter master channel?
Looks like something went wrong with my setup, I can't test this now even with obscureText: false case, the suggestion account is not showing up. It was working some days ago as I remembered (with obscureText: true, suggestion account was showing up when I entered the fields).

Same issue using master branch.
When text is obscured, the following autofill suggestion is no longer visible after step 4 and the inputs are not filled. We need to close keyboard to redo, and then as expected it works. It works always the second time.

Flutter Doctor
[✓] Flutter (Channel master, 3.27.0-1.0.pre.70, on macOS 15.0.1 24A348 darwin-arm64, locale fr-FR)
    • Flutter version 3.27.0-1.0.pre.70 on channel master at /Users/earminjon/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 41dcd8522a (69 minutes ago), 2024-10-16 09:39:30 -0400
    • Engine revision 46c28aaa46
    • Dart version 3.7.0 (build 3.7.0-27.0.dev)
    • DevTools version 2.40.1

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /Users/earminjon/Library/Android/Sdk
    • Platform android-35, build-tools 35.0.0
    • ANDROID_HOME = /Users/earminjon/Library/Android/Sdk
    • Java binary at: /Users/earminjon/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16A242d
    • CocoaPods version 1.14.3

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

[✓] Android Studio (version 2024.1)
    • Android Studio at /Users/earminjon/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] Android Studio (version 2023.2)
    • Android Studio at /Users/perso/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] IntelliJ IDEA Ultimate Edition (version 2024.2.3)
    • IntelliJ at /Users/earminjon/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 82.0.3
    • Dart plugin version 242.22855.32

[✓] Connected device (5 available)
    • Pixel 7 (mobile)                • 29291FDH200GC0            • android-arm64  • Android 15 (API 35)
    • iPhone d’Enguerrand (mobile)    • 00008030-0012646A21E3802E • ios            • iOS 18.0.1 22A3370
    • macOS (desktop)                 • macos                     • darwin-arm64   • macOS 15.0.1 24A348 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad     • darwin         • macOS 15.0.1 24A348 darwin-arm64
    • Chrome (web)                    • chrome                    • web-javascript • Google Chrome 129.0.6668.101

[✓] Network resources
    • All expected network resources are available.

• No issues found!

https://github.com/user-attachments/assets/6931d4ba-7581-40b0-8691-080e720c44eb

Thanks for checking on master channel. Even though I can't reproduce this now (maybe due to my setup, it was working before, see my demo at https://github.com/flutter/flutter/issues/144695#issuecomment-1991786037)), I will label this as a regression for other's input.
The most recent similar issue I found: https://github.com/flutter/flutter/issues/148475 which was fixed.

Hello @huycozy,
I confirm : the issue is not reproductible on iOS 15.8. On all our iOS 18 we have the issue.

Thanks for checking that. Marking this as an OS-specific version issue.


Cannot use Bytes type propperly

What version are you using?
0.6.0
What did you do?
I have deployed an instance of the token interface on futurenet, and I'm trying to call initialize with this fn sig. The last two args are Bytes that I believe are supposed to be the hex string representation of the value. I am trying the following and am wondering why it wouldn't be able to parse the --symbol arg but had no problem with the --name arg, both are hex strings of the value that I want to pass for name and symbol.
$ soroban contract invoke \
    --id 6885ed6b904a6cead909c99cdc482ffa4a74c181803f678cacbfbe831e9efac6 \
    --secret-key S... \
    --rpc-url http://localhost:8000/soroban/rpc \
    --network-passphrase 'Test SDF Future Network ; October 2022' \
    --fn initialize \
    -- \
    --admin GCGORBD5DB4JDIKVIA536CJE3EWMWZ6KBUBWZWRQM7Y3NHFRCLOKYVAL \
    --decimal 7 \
    --name<PHONE_NUMBER>68746572205465737420546f6b656e \
    --symbol 465454
error: parsing argument symbol: invalid type: integer `465454`, expected string or map

What did you expect to see?
A successful transaction for initializing this contract
What did you see instead?
cli cannot parse the hex string provided for the bytes arg called symbol, it seems to be fine with the hex string for bytes for the arg called name.

Hmm interesting.  Does it still happen if you change symbol to symbol_b?  We do have a test for bytes. But I'll add one with an arg named symbol.

Hmm interesting. Does it still happen if you change symbol to symbol_b? We do have a test for bytes. But I'll add one with an arg named symbol.

Not sure I understand, do you mean change the arg name to symbol_b, just to clarify this is the symbol used to identify the token in this instance, not a Symbol type but a Bytes type.

Just ran into this on RPCiege day 3, which required sending in a symbol of which the hash included a certain pattern. I was unable to pass any symbols on the CLI that consisted of just numbers, likely because they were being parsed as integers and then failed a type check later on when invoking the contract's function:
$ soroban contract invoke --id ... --source ... --rpc-url https://rpc-futurenet.fastcheapandoutofcontrol.com:443 --network-passphrase 'Test SDF Future Network ; October 2022' -- game_3 --symbol 123 --_nft_dest ...
error: parsing argument symbol: invalid type: integer `123`, expected string or map

Did you try the symbol in quotes? "123"?

Did you try the symbol in quotes? "123"?

Yes, but that didn't make a difference because the shell would strip them. I had not tried the '"123"' variant though.


Use sacc instead of abac

Codecov Report

Merging #66 into dev will decrease coverage by 0.08%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##                dev      #66      +/-   ##
============================================
- Coverage     36.40%   36.32%   -0.09%
  Complexity      127      127
============================================
  Files            47       47
  Lines          1247     1250       +3
  Branches         79       79
============================================
  Hits            454      454
- Misses          776      779       +3
  Partials         17       17

Impacted Files
Coverage Δ
Complexity Δ

...ssdk/performance/Fabric/FabricPerformanceTest.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...performance/Fabric/FabricSendTransactionSuite.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

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 dcbb4d6...95ba2bb. Read the comment docs.


Icons Don't Work on Vertical Pinned Dockables

Vertical pinned dockables use a special text icon to display text vertical. This is preventing the button from also displaying the icon of the dockable.

Probably need a solution like: https://stackoverflow.com/a/16300001

Added a new combined icon that can display the dockable icon and the rotated text.


[typescript] update to 5.5.3

The latest isn't 5.4.5 anymore, but 5.5.3
To note: I haven't tested it yet (and I don't really know how to test it). I wanted to run ts-fix on a codebase on mine running on TS 5.5.3 and I saw the message when running ts-fix saying "Using TypeScript 5.4.5". But I wanted to fix issues related to isolatedDeclarations (requiring 5.5+)

I don't really know how to test it

Just npm test. The tests do need an update, so npm test -- -u.

I updated the tests @jakebailey


Auto row height

Please add auto row height (true/false) to set the height for rows based on the content of their cells.
Here is a example
Thank you for great widget.

It will take some time to develop the features mentioned.

+1

+1 on this.
Does anyone have an example of this?
@bosskmk As an intermediate step, maybe can we add a rowHeight attribute to PlutoRow, so anyone can adjust this manually?

@henry2man
There is currently no function to change the height of individual rows.
The function should be developed.

any update on this @bosskmk ?

@kalismeras61
This feature has not been added yet.
I'll consider adding.
thank you

a few years later....

I try to add as many features requested by users as possible.
I devoted a lot of time to this over two years.
Feature development, documentation, answers to issues, and test code.
Even so, there are still many things to develop.
I am trying my best.
I'm sorry that this feature is not yet in development.

@guopeng1994 I try to add as many features requested by users as possible. I devoted a lot of time to this over two years. Feature development, documentation, answers to issues, and test code. Even so, there are still many things to develop. I am trying my best. I'm sorry that this feature is not yet in development.

one more year passed and damn robot had close this issue ..


Updated component version to 2.3.0

Signed-off-by: dislbenn<EMAIL_ADDRESS>Related Issue:  stolostron/backlog#24881
Description of Changes:
What resource is being added:  | N/A
Is this a Hub or Managed cluster change?:
Hub Cluster | Managed Cluster | N/A
Notes:

/retest

/lgtm
/retest

Closing this PR. 2.3 will soon become unsupported; therefore, we will skip updating the COMPONENT_VERSION.


Reorganize repo

The contents of this branch represent 3 big changes to the repo:

Reorganized directory structure, especially in terms of input and output locations.
Reorganized snakefile(s): the snakemake workflow is now split into multiple modules. The whole workflow can be run at once, as before, using workflow/Snakefile. But it's also possible to run/re-run sections using the .smk files in workflow/modules/.
A rewritten (though still incomplete!) README file.

Github testing does not work (it attempts to put test files into the wrong places) but this version of the repo has been tested successfully with the temposeq test set on my VM. It has not been tested with RNA-Seq data.

I changed the organization of the test data repo and edited the github workflow file, so tests on push work now.


dark mode support

Hi @polemius , would be cool if this tool had dark mode-friendly colours. Currently a struggle to read console output unless I switch to light mode.
Mind if I open a PR to support dark?
Cheers!

Hi @jezzzm, very good point. Sure, go ahead and open PR 👍

@huy-lv Hi, this package support the light and dark modes but the system ones. We are checking the theme mode by window.matchMedia('(prefers-color-scheme: dark)') and if it is match then we are assuming that user has a dark theme.
Do you have in system preference the dark mode turn on? and the devtools has the light mode from devtools settings?
I have tried find out how I can check the devtools' theme and looks like we couldn't have this information from JavaScript.

haha exactly dev tool is in light theme and system is in dark theme. Everything will be okay if you chang text color to gray or something like that, so we can see it in both themes


update a theme

can you please update the theme Argon to the new version v0.8.5

The argon theme is part of the old panel, so it is no longer being maintained by the script.
Closing problem.


Error when creating simulated devices

I am unable to get the web app functioning properly. Both the device setup Webjob (DatabricksAndSimulatedDevicesSetup) and the web app backend API throw an error when creating new devices. The problem lies in the update_twin method in the iot_hub_helpers.py module. The IoTHub API call returns a response code 400 (bad request) with very a unhelpful error message:
{"Message":"ErrorCode:GenericBadRequest;BadRequest","ExceptionMessage":"Tracking ID:365b1586b0f64c61adda7ad80147c06a-G:6-TimeStamp:08/21/2019 09:37:24"}
Here is an example of the request content:
{"tags": {"simulated": true, "simulator": "devices.engines.Engine", "h1": 0.8996036339025263, "h2": 0.8212598701560975}, "desiredProperties": {}}
The devices are actually created in the IoT Hub and they are visible in the UI, but their status is always "Disconnected" and they don't produce any data.

It turned out that the request parameter desiredProperties breaks the API call. It seems that the request schema has changed since the code was written. (See https://docs.microsoft.com/fi-fi/azure/iot-hub/iot-hub-devguide-device-twins#desired-property-example)
I managed to fix the error by removing the lines
    if 'desiredproperties' not in keys:
        payload_json['desiredProperties'] = {}

from iot_hub_helpers.py. After this change I managed to get the Web App working. The devices are now connected and I am able to create new devices.
As a side note, to get the code working, I had to fork my own copy of the repository, unzip the file binaries/WebApp.zip, change the file iot_hub_helpers.py and rezip the file.


Fix the bug in positional delete file traversal

When a delete file has been read to the end and erased, the iter should not be incremented, otherwise the next delete file will be skipped.

cc @yingsu00, @Yuhta, thanks.


Incomplete documentation, missing features and controversial changes in v5

I just tried to upgrade one of our projects to node-cache-manager@5, but gave up in frustration. The "Refactor to promise and typescript" in History.md should rather be "we're starting from scratch":

There is no documentation at all (automatic TypeScript docs are not enough since not every project uses TypeScript)
README.md still mentions the Express.js example (which does not work anymore with version 5)
README.md still mentions store engines (none of them work with version 5)
Here are only a few incompatible changes:

The initialization method (caching()) needs to be called async (states a big problem for some projects)
set method now takes ttl as third parameter instead of an options object (I'm not sure if some stores will require additional options beside ttl)
wrap function does not accept options anymore (cannot set custom TTL for wrapped functions)
TTLs now seem to be in milliseconds (which is fine), before it was specified seconds, which can lead to big confusion, especially given there is no documentation at all...

I appreciate the idea of rewriting node-cache-manager with (only) Promise support and simplifying the code by completely removing callbacks and old stuff like this. But in my opinion, this rewrite is in a very very early state of development (no documentation apart from "Refactor to promise and typescript", no support for any other than memory store, no examples, etc.) and should not be published as "stable" version 5. People might think there is an upgrade path to v5, but in most cases (when not using MemoryStore) there isn't.

I no longer maintain this project, but here's my input for what it's worth:

The "Refactor to promise and typescript" in History.md should rather be "we're starting from scratch"

Right, this definitely was a rewrite with breaking changes, not a true refactoring.

The initialization method (caching()) needs to be called async (states a big problem for some projects)

I agree that it shouldn't be async.  It seems odd to have an async "constructor".  It implies that the underlying cache stores also require async initialization, which I don't think is the case.  I could be wrong though.. maybe this is the new trend.

set method now takes ttl as third parameter instead of an options object (I'm not sure if some stores will require additional options beside ttl)
wrap function does not accept options anymore (cannot set custom TTL for wrapped functions)

I'm a strong proponent of using an options parameter in functions to avoid having function signatures get out of hand with too many parameters.  It makes it much easier to add more optional parameters later.  In the functions in my projects, in all but the simplest functions, I accept only a single object as a param.  In the long run, this has always been the right choice.

@nicokaiser https://github.com/node-cache-manager/node-cache-manager/commit/0b6d0ffa5f8fdb998dad14eceb7038db254e9031
List the features you (or any) miss. Thanks!

@nicokaiser 0b6d0ff

This looks much better, thanks for adding examples in README.md. (The const ttl = 5; should read const ttl = 5 * 1000; or state that it's really 5 milliseconds, right?)

List the features you (or any) miss. Thanks!

ttl parameter for wrap
ioredis support (I did not check yet if node-cache-manager-redis-yet can handle ioredis instances, but even if so, it requires quite some refactorings in the projects)
all other stores that existed for v4 (although one might argue that having four redis modules might be a bit too much)
sync instantiation (even the example is missing the await in const memoryCache = await caching(...)). While the other things are just a pain to refactor, this might be a blocker for some projects, since constructions like this cannot be done anymore:

const express = require('express');
const { caching } = require('cache-manager');

const app = express();
const memoryCache = caching('memory', { ttl: 60 * 1000 });
app.get('/', (req, res) => res.send(memoryCache.get('foo')));
return app;

// and somewhere else:
app.listen(3000);

Express example https://github.com/node-cache-manager/node-cache-manager/commit/d1198495386ff59009a5f457bf5c4827576055b7.

ttl parameter for wrap https://github.com/node-cache-manager/node-cache-manager/commit/b06c1e5b5c105addbd24ea3d9750bc28ef702437

And no update Stores: These libraries do not belong to me and many are very old. I can implement io-redis. I'll try to finish it today.

By the way I am actively looking for a job urgently, I drop it there. :smile:

https://www.npmjs.com/package/cache-manager-ioredis-yet
I think that's all. If there is anything else do not hesitate to reopen it


Multiple upload shallow push

Context
2.1.0-rc2 and earlier
Summary
When pushing a single chunk /bytes content into a lightly populated swarm (like the current sepolia testnet), subsequent uploads of the same content log (debug) shallow receipt depth and retry the chunk.  If you continue to re-push the same content over and over, eventually the logs stop, but in fact, the node decides to store it locally even though it is not in the target neighborhood.
Expected behavior
I would expect multiple uploads of the same content to deliver to the same successful path into the swarm.
Actual behavior
The following type logs are generated.  If you have additional logging implemented, you will see that the node is actually trying different "closest" peers for each upload that is initiated.
"time"="2024-05-19 11:19:05.094188" "level"="error" "logger"="node/pusher" "msg"="pusher: failed checking receipt" "error"="pusher: shallow receipt depth 2, want at least 4, chunk_address d50c26a504619838ff1fd1cc86ed69b9b6b380f484b3a0444015df500322f4c6: shallow recipt" "chunk_address"="d50c26a504619838ff1fd1cc86ed69b9b6b380f484b3a0444015df500322f4c6"
"time"="2024-05-19 11:19:05.094206" "level"="debug" "logger"="node/storer" "msg"="direct upload: shallow receipt received, retrying" "chunk"="d50c26a504619838ff1fd1cc86ed69b9b6b380f484b3a0444015df500322f4c6"

Steps to reproduce
IN THE CURRENT LIGHTLY POPULATED SEPOLIA TESTNET
d50c26a504619838ff1fd1cc86ed69b9b6b380f484b3a0444015df500322f4c6.zip
Unzip and upload the d50c26a504619838ff1fd1cc86ed69b9b6b380f484b3a0444015df500322f4c6.bytes file from within the .zip file using the following command (adjust the URL if necessary)
curl -X POST -H "swarm-deferred-upload: false" -H "swarm-postage-batch-id: {yourStampID}" --data-binary @d50c26a504619838ff1fd1cc86ed69b9b6b380f484b3a0444015df500322f4c6.bytes http://localhost:1633/bytes

You should receive the same reference:
{"reference":"d50c26a504619838ff1fd1cc86ed69b9b6b380f484b3a0444015df500322f4c6"}
The content is actually a mantaray manifest value node pointing to the following png file.  You can see this with:
swarm-cli manifest list --bee-api-url http://localhost:1633 d50c26a504619838ff1fd1cc86ed69b9b6b380f484b3a0444015df500322f4c6

which should show you
61ef14a6d58f33f2b57d5f5d7f2e06b1c5dc0d8db652e405a78c99d8902681ce /

Possible solution
The issue, I believe, is the skiplist in pushsync.go.   As the first push is happening, the closest peer/chunk is added to the Skiplist for 5 MINUTES.  On the second upload, the closest peer is skipped causing the push to route to the next closest peer.  That peer also then adds the closest peer to it's skiplist for the same duration.   As each upload is repeated, the push takes a more and more circuitous route to the actual closest peer in the swarm.   This is exacerbated in the current sepolia testnet, but has equally inefficient effects in a more robust swarm like the mainnet.
https://github.com/ldeffenb/bee/blob/5ebc9b342f0a86532865a34769a09a67c1421a6c/pkg/pushsync/pushsync.go#L433
https://github.com/ldeffenb/bee/blob/5ebc9b342f0a86532865a34769a09a67c1421a6c/pkg/pushsync/pushsync.go#L48
Somehow, on a successful, not shallow receipt, push, the route taken (chunk/peer) for that success should be removed from the skiplist so that it can be re-used on the next upload.   However, it is only the pusher and/or netstore's DirectUpload that know if the peer used for the upload was good or if it explicitly wants to retry on a different peer.
Note this is also related to #4680 .

And in case you are wondering, this was discovered while uploading an OSM tile set to the sepolia testnet swarm.   That particular tile occurs in many locations on the map under different paths, so the identical value manifest node is uploaded for each instance across the map.  It happens also for forests and other non-highway tiles of land coverage.  Many of the water, desert, and ice tiles are suppressed, or it would happen even more than it does now.

If I understand correctly, the issue is that the upload of a chunk is affected because the succesful path to the neighborhood has been added to the skiplist by a previos upload of the same chunk?

If I understand correctly, the issue is that the upload of a chunk is affected because the succesful path to the neighborhood has been added to the skiplist by a previous upload of the same chunk?

Yes, 100% correct.


Add enable-nvm command to automatically install nvm

@drGrove perhaps you could draft up a function in profile.d/node.sh (or whatever the file was) to automatically set up nvm?

Closed by 4a72becb199724434ca50f65f1c53226ce23bf22


37 add support to query local copies of a codebase rather than relying on githubs apis

Hi Julian,
Could you please review the code and let me know how you'd like me to proceed?
Thanks

@tnzmnjm Please merge once you've tidied up the remaining very minor changes.


A change in Next.js 14.1 causes the build to fail

Describe the bug
Next.js 14.1 introduced this:

Builds will now fail on incorrect usage of useSearchParams without Suspense.

It was a rather unhelpful error, but luckily didn't take me too long to discover that Next13 Progressbar is where the problem is occurring.

useSearchParams() should be wrapped in a suspense boundary at page "/404". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout
Error occurred prerendering page "/_not-found". Read more: https://nextjs.org/docs/messages/prerender-error

Also an easy fix on my end:
'use client';
import React, { Suspense } from 'react';
import { Next13ProgressBar } from 'next13-progressbar';
import SupabaseProvider from './supabase-provider';

const Providers = ({ children }: { children: React.ReactNode }) => {
  return (
    <>
      <SupabaseProvider>
        {children}
        <Suspense>
          <Next13ProgressBar
            height="2px"
            color="rgb(219, 39, 119)"
            showOnShallow
            options={{ showSpinner: false }}
          />
        </Suspense>
      </SupabaseProvider>
    </>
  );
};

export default Providers;

According to the latest release of next.js this is a serious issue but I'm wondering if we can introduce feature of wrapping suspense inside the package or just update docs adding exception to the version >= 14.1. What do you think? Cause again may be the user will not always use react suspense 💁🏽♂

When I upgrade to Next.js 14.1 and got these errors, but i wasn't use any of useSearchParams in my project, I try a lot of ways to find out where it throws these errors, turns out, it's cause by this component🤦, the progress bar wrapped the whole root layout and rendered it on server


Unable to render EPUBs on iOS14 Beta

This issue is a Bug
Related issue(s) and/or pull request(s)
Not at this time
Expected Behaviour
Should render the EPUB without problems.
Observed behaviour
App works well on simulator - everything works but on device we just get a blank page (with loader at the footer) and app froze there. Nothing happens after that. R1 has webview (i.e. normal webview) and but in our branch we have implemented WKWebview since webview was going to be deprecated. We are able to replicate the issue with IOS 14 beta. on SDK launcher and in our custom app which uses WKWebview.
Steps to reproduce

Launch the iOS app which includes the iOS 14 Beta
Open an EPUB in the XCode simulator ->  works fine
Open an EPUB with the running on the iOS device.
Nothing gets rendered and the app hangs.

Test file(s)
Any will do.
Product

Native application (Readium SDK C++)

proprietary app
iOS 14 on iOS device*

Additional information
None at this time

@olivierkorner Also noticed some odd behaviour from iOS 14:
I’ve noticed some issues with Readium 1 on iOS 14 as well, most likely due to WKWebview having some delay to load content. Let’s hope Apple will fix it.
and:
Well I suppose Apple is going to fix the issue eventually. In the meantime, I was able to fix this by making sure ReadiumSDK was loaded and initialized before calling it. What does the web console of your WKWebview tell you?


feat(ci/cd): add release-please for automated release management

This commit adds release-please as a GitHub action, replacing the develop, main and releases actions. Now, with each commit to main, a PR is either created or updated with the contents of all changes since the last release. When this PR is landed, a tag and branch are created, and the build artifacts (binaries) are uploaded as part of a regular GitHub Telease.
When subsequent PRs are created, a CI run will look like this, where creating and uploading a release are skipped.

When the PR lands, those steps will be taken.
Note: This PR is intended to land on the main branch. After which, the GitHub settings for the repo's main branch should be changed to main and any subsequent work on the repository should be submitted as a PR against the main branch. A practical result of this landing will be that all work will subsequently happen on the main branch (aside from backport releases) and the develop branch will no longer be used.
When this is landed on main, a release will not be created as per usual. Instead, a PR will be created with the contents of the changes since the last release. When that PR lands, a release will be created and published. This PR also includes the two commits to develop since the last release.
See: https://github.com/boson-project/buildpacks/pull/24

This should land as "rebase and merge" since we want to retain each individual commit from develop.

@matejvasek @lkingland I am going remove the two commits that are not associated with CI/CD from this PR (https://github.com/boson-project/faas/pull/113/commits/62a69017d5da8a16e9ae8624a85dc2e3f01e13e7 and https://github.com/boson-project/faas/pull/113/commits/afec0c5039fb75f481c0c629aa1644ef442e7411). Based on testing on my fork, landing this PR won't automatically result in a new release PR being created. That will happen when these two additional commits land on main after this PR has landed.


seg fault if NIST EC public key not supplied as param

Please remember to tell us in what OpenSSL version you found the issue.

bug is in master  branch

Context is creating an EC key pair starting from the secret key. That works fine for x25519/x448 but can cause a segfault for NIST  curves If one omits a call to add the public key from outside via e.g.  OSSL_PARAM_BLD_push_octet_string(param_bld, "pub", pubuf, pubuf_len). End result is that one has to re-calculate the public key outside the library (which isn't ideal but is ok), but the crash seems like a bad thing. I don't currently see that as a vulnerability though, just a bug.
The problem seems to be a NULL pointer de-ref within the EC handling code. My workaround is below but likely isn't the correct fix.
index 7aed057cac..da274c57d9 100644
--- a/providers/implementations/keymgmt/ec_kmgmt.c
+++ b/providers/implementations/keymgmt/ec_kmgmt.c
@@ -726,7 +726,8 @@ int common_get_params(void *key, OSSL_PARAM params[], int sm2)
         }
     }
     if ((p = OSSL_PARAM_locate(params,
-                               OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY)) != NULL) {
+                               OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY)) != NULL &&
+        EC_KEY_get0_public_key(key) != NULL) {
         p->return_size = EC_POINT_point2oct(EC_KEY_get0_group(key),
                                             EC_KEY_get0_public_key(key),
                                             POINT_CONVERSION_UNCOMPRESSED,

POC code causing a crash is here. Stack trace from the crash is below:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b9faa0 in ec_point_is_compat (point=0x0, group=0x555555583db0) at crypto/ec/ec_local.h:328
328	    return group->meth == point->meth
(gdb) bt
#0  0x00007ffff7b9faa0 in ec_point_is_compat (point=0x0, group=0x555555583db0) at crypto/ec/ec_local.h:328
#1  0x00007ffff7b9fd6d in EC_POINT_point2oct (group=0x555555583db0, point=0x0, form=POINT_CONVERSION_UNCOMPRESSED, buf=0x0, len=18446744073709551615, ctx=0x5555555848a0)
    at crypto/ec/ec_oct.c:82
#2  0x00007ffff7e4bac4 in common_get_params (key=0x555555583c10, params=0x7fffffffdbc0, sm2=0) at providers/implementations/keymgmt/ec_kmgmt.c:725
#3  0x00007ffff7e4bc3a in ec_get_params (key=0x555555583c10, params=0x7fffffffdbc0) at providers/implementations/keymgmt/ec_kmgmt.c:749
#4  0x00007ffff7c2a9bc in evp_keymgmt_get_params (keymgmt=0x555555580230, keydata=0x555555583c10, params=0x7fffffffdbc0) at crypto/evp/keymgmt_meth.c:392
#5  0x00007ffff7c36b54 in EVP_PKEY_get_params (pkey=0x555555583b30, params=0x7fffffffdbc0) at crypto/evp/p_lib.c:2346
#6  0x00007ffff7c35fc0 in EVP_PKEY_get_octet_string_param (pkey=0x555555583b30, key_name=0x7ffff7ea75a5 "encoded-pub-key", buf=0x0, max_buf_sz=0, out_len=0x7fffffffdc50)
    at crypto/evp/p_lib.c:2166
#7  0x00007ffff7c343c9 in EVP_PKEY_get1_encoded_public_key (pkey=0x555555583b30, ppub=0x7fffffffdcb8) at crypto/evp/p_lib.c:1394
#8  0x000055555555730b in main (argc=1, argv=0x7fffffffde28) at test2evp.c:197

It'd also seem like a reasonable plan to add a new API allowing easier construction of a key pair from just the secret. I have code like that here but it probably needs a bit more work before one would want to add that as a new API. There's an API as part of my HPKE PR that will contain such code. (I've yet to push that to the HPKE-PR branch, will do tomorrow or so.)

EC keys without a public key are supposed to work, so yeah this is clearly a bug. The question is whether we should compute the public key in such case. Or whether we should have a function to compute it.

At minimum the call should fail and not segfault.

Hiya,
On 14/07/2022 07:59, Tomáš Mráz wrote:

EC keys without a public key are supposed to work, so yeah this is
clearly a bug. The question is whether we should compute the public
key in such case. Or whether we should have a function to compute
it.

I'd argue the former is a bit better, but if the latter were
done, then it should be trivial to also do the former inside
the library too, so that'd be my suggested approach. OTOH, I
guess as this hasn't been seen 'till now, not so many people
need the functionality:-)
Cheers,
S.

The problem is that computing the public key can in theory make a timing or other side channel for an attacker. So if the public key is computed when the private key is being loaded by the application, it is better than computing it only at the time when you need it i.e. when the peer asked for it.

On 14/07/2022 12:55, Tomáš Mráz wrote:

The problem is that computing the public key can in theory make a
timing or other side channel for an attacker. So if the public key is
computed when the private key is being loaded by the application, it
is better than computing it only at the time when you need it i.e.
when the peer asked for it.

Fair point. FWIW, I think I'd also prefer doing the
public key calculation automatically when only the
private is provided as input.
S

Please remember to tell us in what OpenSSL version you found the issue.

bug is in master  branch

Context is creating an EC key pair starting from the secret key. That works fine for x25519/x448 but can cause a segfault for NIST  curves If one omits a call to add the public key from outside via e.g.  OSSL_PARAM_BLD_push_octet_string(param_bld, "pub", pubuf, pubuf_len). End result is that one has to re-calculate the public key outside the library (which isn't ideal but is ok), but the crash seems like a bad thing. I don't currently see that as a vulnerability though, just a bug.
The problem seems to be a NULL pointer de-ref within the EC handling code. My workaround is below but likely isn't the correct fix.

index 7aed057cac..da274c57d9 100644

--- a/providers/implementations/keymgmt/ec_kmgmt.c

+++ b/providers/implementations/keymgmt/ec_kmgmt.c

@@ -726,7 +726,8 @@ int common_get_params(void *key, OSSL_PARAM params[], int sm2)

         }

     }

     if ((p = OSSL_PARAM_locate(params,

-                               OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY)) != NULL) {

+                               OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY)) != NULL &&

+        EC_KEY_get0_public_key(key) != NULL) {

         p->return_size = EC_POINT_point2oct(EC_KEY_get0_group(key),

                                             EC_KEY_get0_public_key(key),

                                             POINT_CONVERSION_UNCOMPRESSED,

POC code causing a crash is here. Stack trace from the crash is below:

Program received signal SIGSEGV, Segmentation fault.

0x00007ffff7b9faa0 in ec_point_is_compat (point=0x0, group=0x555555583db0) at crypto/ec/ec_local.h:328

328	    return group->meth == point->meth

(gdb) bt

#0  0x00007ffff7b9faa0 in ec_point_is_compat (point=0x0, group=0x555555583db0) at crypto/ec/ec_local.h:328

#1  0x00007ffff7b9fd6d in EC_POINT_point2oct (group=0x555555583db0, point=0x0, form=POINT_CONVERSION_UNCOMPRESSED, buf=0x0, len=18446744073709551615, ctx=0x5555555848a0)

    at crypto/ec/ec_oct.c:82

#2  0x00007ffff7e4bac4 in common_get_params (key=0x555555583c10, params=0x7fffffffdbc0, sm2=0) at providers/implementations/keymgmt/ec_kmgmt.c:725

#3  0x00007ffff7e4bc3a in ec_get_params (key=0x555555583c10, params=0x7fffffffdbc0) at providers/implementations/keymgmt/ec_kmgmt.c:749

#4  0x00007ffff7c2a9bc in evp_keymgmt_get_params (keymgmt=0x555555580230, keydata=0x555555583c10, params=0x7fffffffdbc0) at crypto/evp/keymgmt_meth.c:392

#5  0x00007ffff7c36b54 in EVP_PKEY_get_params (pkey=0x555555583b30, params=0x7fffffffdbc0) at crypto/evp/p_lib.c:2346

#6  0x00007ffff7c35fc0 in EVP_PKEY_get_octet_string_param (pkey=0x555555583b30, key_name=0x7ffff7ea75a5 "encoded-pub-key", buf=0x0, max_buf_sz=0, out_len=0x7fffffffdc50)

    at crypto/evp/p_lib.c:2166

#7  0x00007ffff7c343c9 in EVP_PKEY_get1_encoded_public_key (pkey=0x555555583b30, ppub=0x7fffffffdcb8) at crypto/evp/p_lib.c:1394

#8  0x000055555555730b in main (argc=1, argv=0x7fffffffde28) at test2evp.c:197

It'd also seem like a reasonable plan to add a new API allowing easier construction of a key pair from just the secret. I have code like that here but it probably needs a bit more work before one would want to add that as a new API. There's an API as part of my HPKE PR that will contain such code. (I've yet to push that to the HPKE-PR branch, will do tomorrow or so.)

This is basically a duplicate of #18495 which is fixed now by #18902. Closing this one as well.


Rework the permission output

The permission output is confusing to say the least.
Maybe the reason is that you did not understand the permission system yet, so I'll explain and maybe you can use this information to improve your program.
The permissions are stored as a 9 or 12 bit value organized as follows:

3 bits (read, write, executable) for user, group, others
3 bits for setuid, setgid, sticky bit (if available)

Each bit can be set individually making up the permissions.
Now you can represent numbers in decimal form (the usual human system, because we have ten fingers to count with).
But this is not good when talking about bits, because they live in the binary system.
So the permissions rw-rw-r-- would translate to
000110110100
Because this is long and hard to read, you can group the individual sections and represent them as octal numbers.
000 = 0
110 = 6
100 = 4
So the above example would read 0664.
So you are required to display the permissions exactly as you read them out with stat().
If you get 0755 (octal) from stat() you have to display it as rwxr-xr-x - at least of you wish to use the rwx notation. You can invent another notation if you wish, but that must exactly represent the permissions nevertheless.
Another note: you are appending the @ symbol to each of your permission outputs. But the @ symbol is not a matter of style or to look cool - it actually has a meaning. The presence of the @ symbol says that there are extended attributes on that file.

I will work on the permission output.

this is fixed in the latest release.


Request to add Rem as a measurement

The original Sketch Measure had an option for Rem that you could then set the measurement of (ex. 16px).

You still have rem in unit convert panel

Unsure if I'm missing something, I can't seem to find rem. Here is what the settings drop down looks like. There's only 3 unit options here:

I found a closed issue from November 2020 that stated the rem was in the top drop down of the screenshot below. I can see now that it is no longer an option. Any chance of this coming back?

This panel is for setting the design resolution, I think no one will design in rem unit.
If you want rem display, open exported, go to convert unit on the top right, choose rem

Hey qjebbs,
Thank you for the continued responses and help! I cannot find 'exported', I found 'spec export' but within here there's no option for convert unit or rem.
The screenshots I've shown before are of the settings panel, the second drop down here 'device unit' does change the unit of measurement, if I switch from px to pt, measurements are now in pt. This is also how it worked in the original Sketch Measure plugin. Except that plugin also had a rem option within this dropdown and then you can select how many px in 1 rem.

Please let me know if I'm missing something, I would love to get this figured out for my team.

The exported files, open the index.html

Ok, understood. This option is awesome, did not know this existed!
However, is their anyway to add these measurements in my sketch file? When I am marking specific spots?

No, you have change the mark text manually.


Create component to wrap content pages

Fixes

Fixes #1090 by @zackkrida
Description

This PR creates a VContentPage component, that simply applies some styles to raw html tags that are its children. It also matches the body font size of these pages and the content width to better match the mockups.
Testing Instructions

View the standalone content pages, like /about and /sources, and observe that they look correct. This is a little subjective since the styles for these pages aren't the most defined, so use your judgement and please point out if something doesn't look good.
Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

The main styles look correct on desktop, but not sure how deep is the comparison I need to do. Nonetheless, I noted the following:
On desktop

Margin bottom of h1 looks too small, it should be 40px.
Margin top of h3 looks too small, it should be 40px.
Links in main content have an underline style in resting state. It should show the underline in hover, as the source table items.
In the table, labels in header cells should be description bold style.
In the table, texts in cells should be description regular style.
External icon in main CTA is incorrect, it should be the WordPress Design Library one.

On mobile

h1, h3, and paragraphs do not follow the style change as defined in mockups.
The table proposed has a different layout where table header is in a left column and data in a right column.

None of the observations noted above are blockers. Feel free to narrow the ticket scope and work on the suggestions in a different PR.

Closing in favor of #1172


Webstorm project file update

A small project file change from the 2018.3 update of Webstorm which keeps showing up under modified files.

Thanks for the pull request @lilleyse!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

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


Fix/Remove flakey tests

The flaky tests are the two bottom Calendar tests

Combined the two conflicting tests into one. The assumption is that a race condition will not occur if they are one test instead of two concurrent tests. If we have another issue, then delete the test.
File: calendar.test.tsx
Test: 'should have down caret when closed and up arrow when open'


Boost 1.58 from Ubuntu Xenial seems to work

It seems to build OK with the system boost libraries from Xenial. You just need the following:
libboost-dev
libboost-atomic-dev
libboost-regex-dev
libboost-chrono-dev
libboost-thread-dev
libboost-date-time-dev
and gtest:
libgtest-dev

Hi, since 4666e34d0f04267e58ff4f13e1b0a356741a3b70 Fast RTPS doesn't require Boost libraries anymore.


Add support to scroll API

Would be nice to have support to the scroll api

With the upcoming migration to v3 of the API, Scroll will no longer be needed.


Facing erros in importing the o200k_base

What else to do after pip install to use this encoding

I have the same issue with tiktoken==0.5.2
Error:
[ERROR] ValueError: Unknown encoding o200k_base. Plugins found: ['tiktoken_ext.openai_public']

btw, cl100k_base works for gpt-4o
Considering either to wait until this encoding be added or to find some other workaround.

I think you need to update tiktoken to the latest version in order for this work. I faced the same issue and I think there is work here to make the error message clearer

Thank you @zachdotai, it worked for me with 0.7.0 version

Thank you @zachdotai, it works for me with 0.7.0 version

can you provide a code snippet if that worked for you, i think this issue is closed then

Thank you @zachdotai, it works for me with 0.7.0 version

can you provide a code snippet if that worked for you, i think this issue is closed then

Sure, here is my code snippet:
    try:
        encoding = tiktoken.encoding_for_model(model_name)
    except Exception as e:
        encoding_name = model_to_encoding.get(model_name, "cl100k_base")  # Default to cl100k_base if not found
        encoding = tiktoken.get_encoding(encoding_name)
        logging.error(f"num_tokens_from_string: Error getting encoding for model {model_name}: {e}, defaulting to cl100k_base")

    tokens = encoding.encode(text)

Thank you @zachdotai, it works for me with 0.7.0 version

can you provide a code snippet if that worked for you, i think this issue is closed then

Sure, here is my code snippet:
    try:
        encoding = tiktoken.encoding_for_model(model_name)
    except Exception as e:
        encoding_name = model_to_encoding.get(model_name, "cl100k_base")  # Default to cl100k_base if not found
        encoding = tiktoken.get_encoding(encoding_name)
        logging.error(f"num_tokens_from_string: Error getting encoding for model {model_name}: {e}, defaulting to cl100k_base")

    tokens = encoding.encode(text)

I think we are talking about the o200k_base  which cannot be implemented. I have already done cl100k_base did you success with o200k_base  with the same code?

Thank you @zachdotai, it works for me with 0.7.0 version

can you provide a code snippet if that worked for you, i think this issue is closed then

Sure, here is my code snippet:
    try:
        encoding = tiktoken.encoding_for_model(model_name)
    except Exception as e:
        encoding_name = model_to_encoding.get(model_name, "cl100k_base")  # Default to cl100k_base if not found
        encoding = tiktoken.get_encoding(encoding_name)
        logging.error(f"num_tokens_from_string: Error getting encoding for model {model_name}: {e}, defaulting to cl100k_base")

    tokens = encoding.encode(text)

I think we are talking about the o200k_base  which cannot be implemented. I have already done cl100k_base did you success with o200k_base  with the same code?

Yes, here is the example of both custom encoding and tiktoken.encoding_for_model
import tiktoken
model_name = "gpt-4o-latest"
encoding_name = "o200k_base"

def num_tokens(text, model_name, encoding_name):
    encoding_for_model = tiktoken.encoding_for_model(model_name)
    print(f"Encoding for model '{model_name}': {encoding_for_model}")
    encoding_custom = tiktoken.get_encoding(encoding_name)

    token_count_model = len(encoding_for_model.encode(text))
    token_count_custom = len(encoding_custom.encode(text))

    return token_count_model, token_count_custom

text = "Hello, world! Testing token counts for different encodings."

try:
    tokens_model, tokens_custom = num_tokens(text, model_name, encoding_name)
    print(f"Text: '{text}'\nModel-Based Encoding for '{model_name}': {tokens_model} tokens\nCustom Encoding '{encoding_name}': {tokens_custom} tokens")
except Exception as e:
    print(f"Error: {str(e)}")

Output:
Encoding for model 'gpt-4o-latest': <Encoding 'o200k_base'>
Text: 'Hello, world! Testing token counts for different encodings.'
Model-Based Encoding for 'gpt-4o-latest': 12 tokens
Custom Encoding 'o200k_base': 12 tokens

Update to latest tiktoken


[CP Staging] Only apply interaction for desktop

Details

Only apply interaction for desktop
Fixed Issues

$ https://github.com/Expensify/App/issues/34371
PROPOSAL: https://github.com/Expensify/App/issues/34371#issuecomment-1887488288
Tests

Login with any account
After loading data completely, go to FAB > Start chat
Verify that for desktop, skeleton displays briefly and for other platforms, no skeleton displays

[x] Verify that no errors appear in the JS console

Offline tests

Same as above
QA Steps

Login with any account
After loading data completely, go to FAB > Start chat
Verify that for desktop, skeleton displays briefly and for other platforms, no skeleton displays

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/129500732/a26052fe-9a3d-4761-b821-5ef8c716a4c0

Android: mWeb Chrome
https://github.com/Expensify/App/assets/129500732/e184b655-ce9a-448f-987b-282ea341e7bd

iOS: Native
https://github.com/Expensify/App/assets/129500732/1d7dfb2d-011f-42c2-9dce-4c1902a1db5d

iOS: mWeb Safari
https://github.com/Expensify/App/assets/129500732/8e1e2d01-af90-4164-b844-0ad11783a5f7

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/129500732/fd014320-fda9-4c3f-825d-c26f08a6a55c

MacOS: Desktop
https://github.com/Expensify/App/assets/129500732/d9f41190-7593-4864-af31-3f9a721be111

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Cherry-picked to staging by https://github.com/mountiny in version: 1.4.24-8 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

Verified Andrroid, Android mWeb, and Web

🚀 Cherry-picked to staging by https://github.com/mountiny in version: 1.4.24-8 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

Verify that for desktop, skeleton displays briefly and for other platforms, no skeleton displays

Verified Desktop ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.4.24-8 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Now using the API base URL, when defined, to create the GitHub client

Problem
APIBaseURL not being considered, as per this issue in the upstream
Solution
Create a new enterprise client, instead of a regular client (github.com) when the APIBaseURL is defined

Hi @sergiomarqmoura
Can I merge this change into upstream?

Hi @sergiomarqmoura Thanks for your work. Can I merge this change into upstream?

@kvvzr Sure! We tested it in our project and it's working. Just opened a PR in the upstream. Thanks for making this available too.


Adding Registration Agency: ET-CSA

Hi AidStream,
Please can you add the following registration agency:
ET-CSA - Charities and Societies Agency (Ethiopia) (http://org-id.guide/results?structure=all&coverage=ET&sector=all)
Best wishes,
Amy

Added.


Congressional generic ballot link update

Hi @dmil: it looks like the Congressional generic ballot data link on this repo points to the Trump approval rating data instead. Is there a link to the CSV behind https://projects.fivethirtyeight.com/congress-generic-ballot-polls/?

Thanks for your note. I've updated those to link to the generic ballot data:
https://github.com/fivethirtyeight/data/tree/master/congress-generic-ballot

Thanks much!


iframe / web worker postMessage doesn't work until after hot-reload in dev

My app uses react for the view. I'm opening an iframe from the JS side and a web worker. I communicate with these via postMessage calls.
When first running my app (npm run tauri dev) if I press buttons and submit forms, no IPC messages are received by the web worker or iframe until after I've modified the react source that triggers a hot-reload. After a hot-reload triggering / submitting the same buttons and forms then works and console logs show IPC messages are received by the web worker and iframe.
I'm not sure if this has anything to do with react's strict mode loading twice in development (I can see two web workers are created).

Reproduction
https://playcode.io/1649052
This is an example of my front-end code that requires a hot-reload to exchange messages.
Expected behavior
postMessage() calls should succeed without requiring a hot-reload.
Platform and versions
[✔] Environment
    - OS: Windows 10.0.19045 X64
    ✔ WebView2: 118.0.2088.76
    ✔ MSVC: Visual Studio Build Tools 2022
    ✔ rustc: 1.71.0 (8ede3aae2 2023-07-12)
    ✔ cargo: 1.71.0 (cfd3bbd8f 2023-06-08)
    ✔ rustup: 1.26.0 (5af9b9484 2023-04-05)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
    - node: 18.17.1
    - npm: 9.6.7

[-] Packages
    - tauri [RUST]: git+https://github.com/tauri-apps/tauri?branch=1.x#4dd4893d7d166ac3a3b6dc2e3bd2540326352a78 (1.4.1)
    - tauri-build [RUST]: git+https://github.com/tauri-apps/tauri?branch=1.x#4dd4893d7d166ac3a3b6dc2e3bd2540326352a78 (1.4.0)
    - wry [RUST]: 0.24.3
    - tao [RUST]: 0.16.2
    - tauri-cli [RUST]: 1.4.0
    - @tauri-apps/api [NPM]: 1.5.1
    - @tauri-apps/cli [NPM]: 1.5.6

[-] App

Stack trace
None - builds cleanly, no console activity in webview until hot-reload.

Additional context
No response

I've commented out <React.StrictMode> to eliminate the second reload. I believe the breakdown is with the web worker, when initially calling worker.postMessage(), it succeeds. On successive attempts, the reference to the worker is lost.

This was all client side (predictable in hindsight), a hook had the wrong dependencies and only ran on mount.


MediaPipe 0.10.1

sr229
https://github.com/homuler/MediaPipeUnityPlugin v0.12.0 released. Consider upgrading it.

Will synchronize with upstream soon, thanks for flagging it.

I'll have more time within this summer so expect a source sync this April.


os/exec: Command("dir") not work in powershell on Windows

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.10.1 windows/amd64
Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
set GOARCH=amd64
set GOBIN=E:\project\go\gopath\bin
set GOCACHE=C:\Users\enen\AppData\Local\go-build
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=E:\project\go\gopath
set GORACE=
set GOROOT=C:\Go
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\enen\AppData\Local\Temp\go-build779536122=/tmp/go-build -gno-record-gcc-switches
What did you do?
        cmd := exec.Command("dir")
	cmd.Stdin = os.Stdin
	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr
	cmd.Run()

in windows cmd console:
go run datax.go
datax.exe  datax.go

in windows powershell console:
go run datax.go

nothing shows
What did you expect to see?
datax.exe  datax.go
What did you see instead?
nothing

I can't reproduce this using your code snippet. What's your PowerShell version?
PS C:\Users\Dominic\Projects\Go\src\runtest> go run datax.go
datax.exe  datax.go

PS C:\Users\Dominic\Projects\Go\src\runtest> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      17650  1001

"dir" is internal command of cmd.exe not "dir.exe". You can make sure where dir. If you have dir.exe on your environment, it probably be a command provided from msys2 or mingw commands. Maybe cmd.Run() return error.
FYI, If you want to run dir of cmd.exe, you must call like below.
cmd := exec.Command("cmd", "/c", "dir")
// snip
err := cmd.Run()
if err != nil {
    log.Fatal(err)
}


Change height of label

I made a Label and added it to a screen. Is it possible for me to change the height of the Label? I start with a height of 30, but want to change it to 20 later on. I've been trying to mess with reassigning the _required_height property of the Label class but that doesn't do anything. Do you have any suggestions?

Hi, thanks. That seems to be working.


Spotify connect session dosent end properly

When using spotify connect from my phone, playing via librespot-java (1.1.0 and 1.0.0) it works and also play / pause controls work but when I change back to play on my phone it seems that it dosent disconnect properly and the phone app wont play or pause.
I have tried it on 2 different computers and with 2 different phones.

I've noticed that too, initially I thought it was an issue with their client, but then realised it was probably librespot.

It works correctly in the rust version of librespot, but I want to use the HTTP POST control features of this version for play / pause / skip control.

I am not able to reproduce this anymore. Could you provide some detailed info?

I cannot pause by phone playing after using librespot-java, even if I kill the app as soon as it loads it starts playing again. The only way to fix it is to connect to another spotify connect server, like the web player.
When ever I press pause whilst playing on phone, a LOT of information scrolls up the console window from librespot.
I don't think it matters whether the music is playing or not when you switch back to phone.
I built from source today and the problem is the same.
I'm using an android phone and running librespot on Windows 10.

Is it fixed if you pull and recompile now?

Just given it a quick try and it seems to be working.
Thanks


What existing presentation definition implementations are there?

Please add as comments links to existing proof requests and presentation definitions so we can get an idea of what folks have already done. This will help us to both try to make our presentation definition work with existing implementations and help us avoid redoing work that has already been done

Our system allows the Verifier to specify a tree of policies in DNF or CNF. This allows a verifier to specify any conceivable combination of VCs that the Holder must present in order to gain access to the Verifier's resources

Are these added to the appendix? I think UPort has one now as well...paging @awoie.

Please continue adding if you have work that you want others to view and reference as we develop the spec.


Remove react shallow compare

It was no longer used, and also incompatible with React 15.

Thanks!


Add buildTmpPath method.

Allows generating the path to be separated from creating the directory.
There are a number of use cases where a path will likely not need to be created eagerly (i.e. broccoli-funnel in most cases has to remove its output path only to symlink it
from an input path).

I don't really want to maintain this package anymore. I don't think ending up with tmp directories in CWD or other random places is a terribly great pattern, so it would probably be better to write something more sensible, either from scratch or based on this package. In any case, I don't want to be the one maintaining it. :-)


Some tag-value messages seem to break internal state of a Decoder on fefix v0.7.0

Consider this example test function:
#[test]
fn decode() {
    use fefix::{definitions::fix44, prelude::*, tagvalue::{Config, Decoder}};
    const SAMPLES: [&[u8]; 2] = [
        b"8=FIX.4.4\x019=176\x0135=X\x0149=ERISX\x0156=XXXXXXXXX\x0134=3\x01\
        52=20220714-09:26:22.518\x01262=TEST-220714092622-EfkcibvXPhF34SVNQYwwRz\x01\
        60=20220714-09:26:22.517712684\x016006=0\x01268=1\x01279=0\x01269=J\x01\
        55=BTC/USD\x0115=BTC\x0110=051\x01",

        b"8=FIX.4.4\x019=227\x0135=f\x0149=ERISX\x0156=XXXXXXXXX\x0134=4\x01\
        52=20220714-09:26:22.518\x01324=TEST-220714092622-EfkcibvXPhF34SVNQYwwRz\x01\
        60=20220714-09:26:22.517712684\x0155=BTC/USD\x01460=2\x01107=BTC/USD\x016006=0\x01\
        15=BTC\x01326=17\x01969=0.1\x01562=0.0001\x011140=100000\x01561=0.000001\x0110=248\x01",
    ];
    let mut decoder = Decoder::<Config>::new(Dictionary::fix44());
    for sample in SAMPLES {
        let message = decoder.decode(sample)
            .expect("Couldn't decode sample FIX message");
        let msg_type = message.fv::<fix44::MsgType>(fix44::MSG_TYPE);
        assert!(msg_type.is_ok(), "fv() returns {:?}", msg_type);
    }
}

When compiled with crate fefix version 0.7.0, it fails with the following message:
thread 'decode' panicked at 'fv() returns Err(None)', [PATH]:[LINE]:[COLUMN]

Interestingly enough, each of the samples succeeds when passed through a separate Decoder instance solo. However when they’re passed in the given sequence to a single Decoder, random access to any of the fields of the second message (as well as of any other messages to follow it) will fail.

Thanks for the bug report.
Are the checksums correct? Once I bypass checksums verification, I'm hitting the same error as you did both on v0.7.0 as well as latest master.

Fix is out and will be included in v0.8.0. Most of the recent bugs -this one included- originated in a fragile and badly written part of the code, which I'll hopefully get around to rewriting soon.

@neysofu

Are the checksums correct? Once I bypass checksums verification, I'm hitting the same error as you did both on v0.7.0 as well as latest master.

Sorry, I had to change the TargetCompID (56) field contents for security reasons, and forgot about checksums. I’ve updated the original post now.

Thanks, no worries! I'll go ahead and close this :)


[policy] Prefer object-based APIs (instance methods) over class-based (static methods)

Some exercise test suites force the use of static methods exclusively (e.g. nth-prime); others force the use of objects (e.g. anagram). Is there a preference for one paradigm vs the other? Having users switch back and forth between the two while working through exercises seems unnecessarily confusing.

This topic (AFAIK) has not been discussed in the broad scope you're framing, @stkent.  I see one "discussion" in #90.
tl;dr: most (all?) of these exercises should be implemented in the form of instance methods since they contain "domain logic" and we (Exercism) want to encourage exemplary software.
An argument:

A programmer participating in Exercism should be exposed to our best understanding of how to design "good" software.

"Good" software design maximizes the profit of a product over its lifetime (i.e. minimize maintenance and development costs while maximizing value delivered through its use).
As a product increases in complexity, so does the risk of maintenance costs:

as complexity increases, so does the risk of defects;
as complexity increases, so does the difficulty in isolating defects;
the effort required to isolate and properly address defects is a maintenance cost.

Such risk can be materially mitigated by co-developing a testing system alongside the product such that this testing system:
exercises the product in ways that is likely to expose defects in essential logic (colloquially, "domain logic");
is used frequently so as to expose such defects as soon as possible (read: executes expeditiously);
is maintained along with the product.
For such a testing system to be feasible, the product itself must be testable:

individual components of the product should be easy to isolate so as to exercise them sufficiently to gain confidence that they each behave as desired in a given context.

To achieve that isolation, the product's components must support at least two flavors of its dependencies: at least one production implementation and one test double implementation.
In Java, the least surprising way to provide two implementations for the same behavior is to use virtual functions.
In Java, instance methods are, by default, virtual functions; static methods are not.

There are a number of maintainers here.  @exercism/java, care to chime in?
@stkent, what's your point of view?

@jtigger @stkent i agree with John in principle.  I do think it's useful if we can to provide some exposure to static methods as a feature of the language.
In the ecmascript track we had a similar issue with the use of class based solutions versus functional or object literal solutions. We ended up setting an "on boarding" pattern of requiring classes for the first dozen exercises, then mixed it up after that.
Having said all that, I think the goal of promoting good practices should take priority over exploring all language features.

@jtigger that's a great breakdown! The tension I see revolves around this part:

As a product increases in complexity, so does the risk of maintenance costs [...]

Since Exercism exercises are standalone we know this increase in complexity will not occur. Optimizing architecture for non-existing scaling therefore smells a bit of YAGNI. On balance, though, I think this concern is much less important than introducing language best practices, so I lean towards moving towards object-based implementations for all exercises (with the possible exception of Hello World).

I totally get that, @stkent.
Many years back, I spent some time with a master photographer who shared with me this bit of advice should I ever get started in photography: that one should start with simple subjects on medium format film (much larger than 35mm) so that your errors stick out like sore thumbs.
I take this perspective on Exercism exercises: while in their expression, they are small in scope, this is a space to also practice what it looks/feels like to make choices that support future needs.  It's subtly not YAGNI. You need to define these methods, the question is in what form?
In fact, I'd love to add a whole 'nother dimension to these exercises by providing a choose your own adventure style of subsequent paths, each designed to likely require a refactor to accommodate.  In this way, practitioners would be encouraged to explore the space more and evaluate the consequences of their initial design choices (or lack thereof) and hopefully elicit related discussion on the website (read: surfacing additional valuable conversations about the design of code — the heart of the value of Exercism).
I do understand — we're not there yet. :)

@matthewmorgan said, above:

Having said all that, I think the goal of promoting good practices should take priority over exploring all language features.

Agreed.  While we don't have to hit all of the language features, koan-style, to the extent we don't hit the major ones today it's a disservice to the student.

In fact, I'd love to add a whole 'nother dimension to these exercises by providing a choose your own adventure style of subsequent paths, each designed to likely require a refactor to accommodate. In this way, practitioners would be encouraged to explore the space more and evaluate the consequences of their initial design choices (or lack thereof) and hopefully elicit related discussion on the website (read: surfacing additional valuable conversations about the design of code — the heart of the value of Exercism).

Man, that sounds great! Looking forward to it :)
The points raised here are all excellent, though it seems like this and other issues (e.g. #178) would be most efficiently tackled post-#142. I guess that makes #142 a priority right now?

Why, yes... yes it is!  It's the next "story" we're planning on tackling (see the xJava Track Maintenance backlog).

@stkent, side question — there's an email address in your commit messages. Are those the right coordinates to reach you?  If not, would you mind sending an email to me?

I'll leave this open so we can remember to circle back after #142.

@jtigger I saw you apply the policy label elsewhere in the issues list; would this be a good candidate for that same label? It is a decision that needs to be kept in mind over time (as we add new exercises that alter ordering). Just a thought.

That's perfect, @stkent... it's the exact intent of the label — exercism/discussions#96.

Renamed to clarify the decision within this discussion for ease-of-use.
Reminder: a "policy" is not a decision set-in-stone.  It's a direction chosen at a point in time with the information/thinking on-hand.  All decisions should be challenged.  To make a meaningful contribution, please include a new perspective and argue how it mixes in the values expressed and changes the decision.

A "policy" is not a decision set-in-stone.  It's a direction chosen at a point in time with the information/thinking on-hand.  All decisions should be challenged.  To make a meaningful contribution, please include a new perspective and argue how it mixes in the values expressed and changes the decision.

With the issues created, above, I believe that we've identified all of the exercises that need adjustments.

We should add this to the POLICIES doc and then close out this issue.

There is already a section about this in the POLICIES doc. So we can proabaly close this issue unless you think that section should be expanded @stkent?

Good spot, I missed that! I think this is safe to close now, and it can be found via the reference in the POLICIES doc.


update role

文档内容改动较大，且平台上的无权限提示会直接链接到该文档，请同步修改英文翻译

nav修改之后仍然报错

See the errors:
Error: MkDocs encountered an error parsing the configuration file: mapping values are not allowed here
  in "docs/zh/navigation.yml", line 173, column 25

修复这个 error 后，就能成功 build 并 preview

 nav修改之后仍然报错

Copy and paste what I have suggested to fix the error:
https://github.com/DaoCloud/DaoCloud-docs/pull/2119#discussion_r1293187416

The preview looks good now though it's better to use a relative paths for all images.


Dealing with localisation

Hi ! I found this awesome software and want to translate some code I wrote to use it in Java. How do I deal with the NSLocalizedStrings that I used in my swift code ? Thanks for the Help in advance.

Hi,
NSLocalizedString is a framework utility in the same way than others like UIView or CGSize, not a language feature. As such, there is no plan to convert that code and you will have to find a way to translate it on your own. Remember that this project’s aim is to convert Swift to Kotlin on syntactic level, not to fully replicate all framework features from the first to the latter.
That being said, I would make some changes to your code. For example, if you use it to port iOS to Android, you could start by replacing your strings iOS code by something more robust like R.swift that will not only improve your iOS code quality but also make it trivial to port the code to Android as it follows almost identical name conventions.

Thank you for your swift answer. Could you give ma a hint on how to translate these (CGSize, CGPoint etc.)? A hint would also be fine aswell =)


feature request: versioning and cmake options at build time visible in pyqrack

PyQrack  is a python wrapper for Qrack
Qrack  can be compiled for PyQrack with a lot of features, and out of the box this has been done with a 'best of all worlds' settings in mind but are not always obvious nor visible to the user.
Also, some scenarios require different options, and then we need to compile the Qrack binaries and link them (again) to the PyQrack  wrapper
We then find ourselves in the stuation what version and what settings the PyQrack at runtime we are looking at as well.
For that reason a feature request is proposed:

a python variant or a wrapper to a --version option for (py)qrack to display PyQrack and Qrack  version, architecture and cmake  settings at runtime

I suggest we do not make it too verbose, but still usefull for parsing by scripts to make decisions based on the output

Sorry I've let this languish, but there's a complicating factor: PyQrack itself is not a command-line program. It's a library, rather. However, the following command should tell you the PyQrack version:
pip3 freeze | grep pyqrack

Further, the Qrack version number is given by the shared library *.so file version number:
ls `python3 -m site --user-site`/pyqrack/qrack_system/qrack_lib/libqrack_pinvoke.so.*.*.*

This command probably won't work correctly if you're using venv, but the solution in that case is to check the package cache of the virtual environment, the same way.


Linting

Standardize linting across the repo

Fixed golint errors (https://goreportcard.com/badge/github.com/2-of-clubs/2ofClubs-server)
See 452efb


Should we add exercises?

I'm going through the book chapter by chapter, and generally having a hard time incorporating the contents of the chapter into my worldview without exercises; so I end up improvising ~10 exercises per each subchapter, starting from easy ones and ending up with something more intense.
For example, exercises for the MetaM#Constructing Expressions subchapter start with:

and end with:

Would the PRs gradually adding exercises to the end of the chapter and solutions (in the end of the book) be welcome, do you think it could be a good idea?

It would definitely be a honorable effort of great help! Please don't forget to add yourself as an author if you do so 👍🏼