Adding tests to BookmarkScreenTest

Idea Description
The title says everything.
We might have to use UserDataStore to adjust the bookmark.
Reference images and links
https://github.com/DroidKaigi/conference-app-2023/pull/868

🙋♂

Thanks! Assigned 👍

We might have to use UserDataStore to adjust the bookmark.

Sorry, I have a question.
I tried to write a value using UserDataStore#toggleFavorite, but when I debugged it, it didn't seem to be written.
class BookmarkScreenRobot @Inject constructor(
    private val testDispatcher: TestDispatcher,
) {
    ...
    @Inject lateinit var userDataStore: UserDataStore
    ...
    fun toggleFavorite() = runTest(testDispatcher) {
        SessionsAllResponse.fake().toTimetable().bookmarks.forEach {
            userDataStore.toggleFavorite(it)
        }
    }
    ...
}

Could you please tell me what I should do?


Add LLM PII-Masking module

We decided not to support PII Masking as a module in Passage Filter and closed the issue for now.


After upgrading to V1.18.15, it takes a long time to respond to requests for data information

Problem
I upgraded my rpc node to v1.18.15 today, and the synchronization has been completed. However, when I request: getTransaction, the response is very slow and it takes 5sec ~ 20 seconds to wait.
This problem seems to occur only in non-full nodes, and the signature requested was a long time ago. It should return null, but it has been responding.
Proposed Solution
response null:
{"jsonrpc":"2.0","result": null,"id":1}

The first request is for historical data from a long time ago, and the second request is for the most recent signature.

@avinashbo  There should be some impact, but I'm not sure. My CPU is EPYC 7502, which is only 2.5GHz. I think this is a problem. We are preparing to replace this server, but we don't know what configuration is more suitable. We have already changed and configured multiple servers, and I feel that the read and write speed of Nvme can't keep up.

@avinashbo  But I think there must be something wrong with this v1.18.15 version, because I don't have these problems when I use v1.17.34, but the synchronization speed is not that fast


Authentication on TV each time i user samsumgctl

Hi there,
I get the authentication message on TV each time I use samsungctl.
I have to agree it, afterwards the sent key-command is executed.
Can you tell how to solve this problem please?

#16 might be related.

Try to pass same --id value

@zechasso - I had the same problem. YuriGuzun's solution worked perfectly for me. I just picked a number and stuck to it, works great now.

Duplicate of #16.


Bring biggulp repo up to speed

0.0.4

Switch to gulp-spawn-mocha from gulp-mocha & gulp-istanbul to fix issue where line numbers in source files were being incorrectly reported.

0.0.3

Update gulp-istanbul dependency to correct bug where multiple runs resulted in stack overflow

Closing since we merged all this in #4


image/webp in list of valid mime types yet "Invalid mime type found on asset" error received

Is there a list of the accepted mime types where the information will be displayed?
I am using c2patool to add manifests to WebP images on a test website but the JS SDK doesn't appear to be ble to read the manifest data from the WebP images;

ok, I was able to find the list of valid mime types... in Validator.VALID_MIME_TYPES which lists image/webp yet I am getting the "Invalid mime type found on asset" error.

NVM, I see that the problem is from the Drupal module which is using an outdated version ( 0.14.4 ) version of the library before image/webp was added.


Does not work out of the box.

I had to run PackerCompile the first time after installing the packages and that fixed it. Might want to consider adding it to the readme.

I realized that this should be trivial, I just didn't use nvim enough.


[WIP] Array

Hey Dennis, are you still working on this pull request?

Hey Andrej, due to other tasks, the pull request is currently on a short hold. I am going to continue to work on it next week.


refactor(cli): add examine for gas auth and amplify hints

examine the validation of AccessKey when gas auth and add corresponding hints

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.155%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5297

Relevant Lines:
6370

💛  - Coveralls


Add new beginner level project

The objective of this game is to click on moving circles as they appear on the screen to score points. The game will have a timer, and the player needs to score as many points as possible before the timer runs out.
Tech Stack

html
css
javascript

@amiya-cyber Please assign me this issue under hacktoberfest and gssoc-ext please please

Web development related projects that are related to python are only accepted.


Transactions do not propagate to an outsider node

After the commit 9dd1e4ffc, the following code fails with the log like,
"Client #6 did not receive tx in expected time for height 19".
    TestConf conf = {
        outsider_validators : 1,
    };

    auto network = makeTestNetwork!TestAPIManager(conf);
    network.start();
    scope(exit) network.shutdown();
    scope(failure) network.printLogs();
    network.waitForDiscovery();

    network.generateBlocks(Height(GenesisValidatorCycle - 2));
    network.generateBlocks(iota(GenesisValidators + 1), Height(GenesisValidatorCycle - 1));

The error log
core.exception.AssertError@source/agora/test/Base.d(1070): Check condition failed after timeout of 4 secs and 40 attempts: [source/agora/test/ClearFilter.d:42] Client #6 did not receive tx in expected time for height 19
----------------
??:? void agora.utils.Utility.retryFor!(core.exception.AssertError).retryFor(lazy bool, core.time.Duration, lazy immutable(char)[], immutable(char)[], ulong) [0x10b0d22ee]
??:? void agora.test.Base.TestAPIManager.addBlock!(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result).addBlock(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result, bool, immutable(char)[], int).__lambda13!(ulong).__lambda13(ulong) [0x10b6e91b3]
??:? std.typecons.Flag!("each").Flag std.algorithm.iteration.each!(agora.test.Base.TestAPIManager.addBlock!(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result).addBlock(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result, bool, immutable(char)[], int).__lambda13).each!(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result).each(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result) [0x10b6e8e07]
??:? void agora.test.Base.TestAPIManager.addBlock!(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result).addBlock(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result, bool, immutable(char)[], int) [0x10b6e8afd]
??:? void agora.test.Base.TestAPIManager.generateBlocks!(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result).generateBlocks(std.range.iota!(ulong, ulong).iota(ulong, ulong).Result, agora.common.Types.Height, bool, immutable(char)[], int).__lambda9!(ulong).__lambda9(ulong) [0x10b6e88d1]

@omerfirmak : Can you check if this is expected ?

Yes, it is. Without enrolling first, a validator will never be discovered by other nodes.
Currently our FullNodes would suffer from the same issue as well, they have no way to include themselves to the gossip network. They can only do periodic catch up.

Bidirectional RPC connections, which I am currently working on, will help with this. A node will be able to use the
incoming connection to discover a new node.

OK, thanks for the details.
network.generateBlocks(Height(GenesisValidatorCycle - 2));
network.generateBlocks(iota(GenesisValidators + 1), Height(GenesisValidatorCycle - 1));

That should work fine.

So this will be fixed by https://github.com/bosagora/agora/pull/2559 AFAICS.


VMWare Fusion does not connect(?) properly

Hi there.
I want to use docker-machinein conjunction with VMWare Fusion. I use the following command to create the machine:
docker-machine create --driver vmwarefusion dev2 --vmwarefusion-memory-size 2048 -D

Everything seems to be fine. The machine is create in Fusion and startet correctly. It boots successfully into a local shell. But then nothing happens. The docker-machine create command simply runs forever.
The log output is:
Creating SSH key...
Creating VM...
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Creating disk '/Users/michael/.docker/machine/machines/dev2/dev2.vmdk'
Virtual disk creation successful.
Starting dev2...
executing: /Applications/VMware Fusion.app/Contents/Library/vmrun start /Users/michael/.docker/machine/machines/dev2/dev2.vmx nogui
Waiting for VM to come online...
MAC address in VMX: 00:0c:29:1b:da:64
Not there yet 1/60, error: IP not found for MAC 00:0c:29:1b:da:64 in DHCP leases
MAC address in VMX: 00:0c:29:1b:da:64
[...]
Not there yet 10/60, error: IP not found for MAC 00:0c:29:1b:da:64 in DHCP leases
MAC address in VMX: 00:0c:29:1b:da:64
IP found in DHCP lease table: <IP_ADDRESS>
Got an ip: <IP_ADDRESS>
Creating Tar key bundle...
executing: /Applications/VMware Fusion.app/Contents/Library/vmrun -gu docker -gp tcuser directoryExistsInGuest /Users/michael/.docker/machine/machines/dev2/dev2.vmx /var/lib/boot2docker

If i try to execute the last command manually nothing happens. Did I do something wrong?
Thanks in advance!

I was able to resolve this by myself. There was an old boot2docker.iso (1.5.0) image in my ~/.docker/machine folder. After deleting it docker-machine fetched an new updated image.


Rework tapir integration according to the new API

With the release of 0.19.0-M14 the ServerEndpoint has changed significantly.
Now it encapsulates a separate piece of security logic in form of A => F[Either[E, U]] which breaks the current approach to trace injection.

I'm not that familiar with the code, but I did a draft PR here: #89
As a draft, it doesn't yet attempt to engage with how to trace authenticated endpoints (you probably have better ideas than me on how that should be done), only so-called public endpoints.

@fiadliel let's continue the discussion here

I've been wondering what one actually wants here from tapir (it'd be a shame if something was implemented that wasn't what you want).
One approach I'm thinking of is that the part that calls both security and functional logic is sttp.tapir.server.interpreter.ServerInterpreter. If we had the ability to chain calls to ServerRequest => List[ServerEndpoint[R, F]] => List[ServerEndpoint[R, F]] (changing F on the way), would that be enough to implement? That would, of course, turn the top level of tracing into service-wide tracing instead of per-endpoint. But I don't think it's going to be feasible to do it per-endpoint in future, unless I (or the raw request) is added to the security signature.
This would mean that per-endpoint syntax would no longer be involved with extracting the span, just with creating a child span and decorating it with per-endpoint information.
One potential positive benefit is that tapir interceptors could become part of the trace.
Also if this change to ServerInterpreter can't be done generically, but per interpreter instance, then it gets in danger of duplicating behavior already done by other integrations, and it might make sense to leverage those integrations to lift a service into Trace[F] instead.
Thoughts?

The main idea of secured endpoints is that tapir doesn't parse inputs (the I parameter) until securityLogic is performed (needs only A for evaluation).
I'm working on a solution for secured endpoints and can't decide on how to act and what to demand from different kinds of inputs.

Alternative 1:

require A to contain certain Headers a valid context Ctx can be extracted and built from.
make the root span and context before securityLogic is performed, describe securityLogic in the traced effect G[_], and pass Ctx to it via a Provide[F, G, Ctx] instance.
Embed Ctx into U, pass it to the main serverLogic and then make a child span from it and use it to run the contextual effect G[_] in which serverLogic is described.

This requires the parsing of potentially insecure inputs before authorization, namely those needed for making a proper Ctx instance. We'll need to make all of them a part of the A type.

Alternative 2:

Somehow skip tracing in securityLogic. Don't know how to implement and totally dislike this option.

cc @fiadliel @janstenpickle
Need your help.

N.B. the new server endpoint model is:
securityLogic: A => F[E | U]
serverLogic: U => I => F[E | O]

There's a little nuance to "doesn't parse inputs (the I parameter) until securityLogic is performed", which is that inputs except the body are parsed, in https://github.com/softwaremill/tapir/blob/master/core/src/main/scala/sttp/tapir/server/interpreter/ServerInterpreter.scala#L59 - but it looks like a hairy part of the API to interact with. Is that a Vector[Any]?
I have a general issue with any solution where a single request ends up creating two root spans. There should be a 1:1 match between requests and spans (not considering child spans).
There seem to be a few options for creating that root span:

create the span when we have no I value, just Request. Can create a span, but it has minimal endpoint context. However, it might be possible to add attributes to the span later on, when more data is available.
create the span when we have no I value, just a vector of EndpointInput (excluding body). More structured than Request, but I don't know how useable this information is for tracing. But we might at least know which endpoint is being invoked, better than nothing. Also needs some way of injecting a Trace[F].span and then calling auth/service logic, tapir needs an API change for this hook.
convince Adam that it's okay for I to be parsed before security logic is run.

The first option is not much different to using a server-specific integration (e.g. trace4cats + http4s), it uses zero value-add of what tapir provides. The second option might need experimentation, but it looks like the code could need a lot of refactoring to make it useable. Third option sounds like the hardest one.

It doesn't look like there are any easy and nice solutions within the tapir code.
Right now, personally, I'm using a combination of trace4cats-http4s, and a per-endpoint child span which can be annotated with endpoint name and input/output parameters. It works, but it's a bit noisy if you'd prefer a single span per request.


[Ubs admin] Create new certificate on ubs-admin

add functionality to this button

Task without any description.


ethSendTransaction is not working properly

Describe the bug
I am trying to send BNB via AppKit using the Binance Smart Chain Testnet. The transaction is created, and I receive a hash, but there is no information visible on BscScan Testnet. When using MetaMask’s dev portal example, the transaction works as expected.
To Reproduce
Steps to reproduce the behavior:
Use the following MetaMask code to send BNB:
await window.ethereum.request({
  "method": "eth_sendTransaction",
  "params": [
    {
      to: "0x33d23FFeBf69F9e655Ac869415F86e8605127CF3",
      from: "0x4b167dd39f15f4485782ece04cd30a4a6654831f",
      gas: "0x76c0",
      value: "0x16345785d8a0000",
      data: "0x",
      gasPrice: "0x4a817c800"
    }
  ],
});

Attempt to send BNB using the provided Dart code via AppKit.
Observe that a transaction hash is generated, but no transaction is visible on BscScan Testnet.
Expected behavior
The transaction should be reflected on BscScan Testnet as it is when using the MetaMask example.
Reproducible code
Here is the Dart code used in the AppKit implementation:
String _bnbToHex(double amount) {
  // Convert BNB to wei
  BigInt weiAmount = BigInt.from(amount * 1e18);
  // Convert to hex string
  return '0x${weiAmount.toRadixString(16)}';
}

try {
  // Define the recipient address and the amount to send
  const recipientAddress = '0x33d23FFeBf69F9e655Ac869415F86e8605127CF3';
  final amountToSend = _bnbToHex(0.2);

  final params = {
    'to': recipientAddress,
    'from': _appKitModal.session!.getAddress(NetworkUtils.eip155),
    'gas': '0x76c0',
    'value': amountToSend,
    'data': '0x',
    'gasPrice': '0x4a817c800',
  };

  // Ensure the wallet is launched before sending the transaction
  _appKitModal.launchConnectedWallet();

  // Send the transaction using eth_sendTransaction RPC call
  final result = await _appKitModal.request(
    topic: _appKitModal.session!.topic,
    chainId: _appKitModal.selectedChain!.chainId,
    request: SessionRequestParams(
      method: MethodsConstants.ethSendTransaction,
      params: [params],
    ),
  );

  // Check the result
  if (result != null) {
    print('Transaction successful! TxHash: $result');
  } else {
    print('Transaction failed.');
  }
} catch (error) {
  print('Error sending BNB: $error');
}

The transaction works as expected using MetaMask, but fails to appear on the BscScan Testnet when using AppKit. It seems like there might be a difference in how the transaction is being sent or processed.

@damienissa It looks like you’re experiencing an issue where your transaction is not appearing on BscScan Testnet despite receiving a transaction hash. Since the MetaMask example works as expected, the issue might lie within the Dart code or the way AppKit handles the transaction.

@Dappsnode For sure! But I do not understand where the problem is. Can you please help me to find an issue?

@damienissa
Ensure that both MetaMask and AppKit are connected to the Binance Smart Chain Testnet. Make sure that the parameters used in the Dart code match those in the MetaMask example, especially the gas, gasPrice, and value.

@Dappsnode Both are connected to chain ID: 97 which is the ID of BSC Testnet. Gas, gas price, and value are copy-pasted from the metaMask example. Also, I see transactions in my MetaMask app. But no updates on the BSC scan

Hello @damienissa! I'll be taking a look ASAP!

@quetool Thanks!

@quetool Any ideas so far?

Hello @damienissa seems like you are using 1.2.0-alpha01 version, is that correct? If so, please switch to 1.1.0-beta02 and try the following:
return await _appKitModal.request(
  topic: _appKitModal.session!.topic,
  chainId: _appKitModal.selectedChain!.chainId,
  request: SessionRequestParams(
    method: 'eth_sendTransaction',
    params: [
      Transaction(
        from: EthereumAddress.fromHex(_appKitModal.session!.address!),
        to: EthereumAddress.fromHex(
            '0x33d23FFeBf69F9e655Ac869415F86e8605127CF3'),
        // value: EtherAmount.fromInt(EtherUnit.finney, 12), // == 0.012
        // gasPrice:
        // data:
        // etc....
      ).toJson(),
    ],
  ),
);

Of course BSC Testnet has to be selected otherwise you can just pass the chainId chainId: 'eip155:97',.
Let me know.

@quetool Not help!

My current code:
try {
      // Define the recipient address and the amount to send
      const recipientAddress = '0x33d23FFeBf69F9e655Ac869415F86e8605127CF3';
      // final amountToSend = _bnbToHex(0.2);

      // final params = {
      //   'to': recipientAddress,
      //   'from': _appKitModal.session!.getAddress(NetworkUtils.eip155),
      //   'gas': '0x76c0',
      //   'value': amountToSend,
      //   'data': '0x',
      //   'gasPrice': '0x4a817c800',
      // };
      // Ensure the wallet is launched before sending the transaction
      // _appKitModal.launchConnectedWallet();
      // Set gas price and gas limit
      final gasPrice = EtherAmount.inWei(BigInt.from(25000000000)); // 25 Gwei
      const gasLimit = 21000; // Stand

      // Send the transaction using eth_sendTransaction RPC call
      final result = await _appKitModal.request(
        topic: _appKitModal.session!.topic,
        chainId: _appKitModal.selectedChain!.chainId,
        request: SessionRequestParams(
          method: MethodsConstants.ethSendTransaction,
          params: [
            Transaction(
              from: EthereumAddress.fromHex(
                  _appKitModal.session!.getAddress(NetworkUtils.eip155) ?? ''),
              to: EthereumAddress.fromHex(recipientAddress),
              value: EtherAmount.fromInt(EtherUnit.finney, 12), // == 0.012
              gasPrice: gasPrice,
              maxGas: gasLimit,
              // data:
              // etc....
            ).toJson(),
          ],
        ),
      );

      // Check the result
      if (result != null) {
        print('Transaction successful! TxHash: $result');
      } else {
        print('Transaction failed.');
      }
    } catch (error) {
      print('Error sending BNB: $error');
    }

According to this code of you are still on 1.2.0-alpha01, please switch first to 1.1.0-beta02:
reown_appkit: ^1.1.0-beta02

After that, please try this simple transaction as params:
Transaction(
  from: EthereumAddress.fromHex(appKitModal.session!.address!),
  to: EthereumAddress.fromHex(recipientAddress),
  value: EtherAmount.fromInt(EtherUnit.finney, 12),
).toJson(),

I'm on reown_appkit: ^1.1.0-beta02 for sure
But if I'll use your code I'll see an error:
The getter 'address' isn't defined for the type 'ReownAppKitModalSession'.
Try importing the library that defines 'address', correcting the name to the name of an existing getter, or defining a getter or field named 'address'

I'm struggling receiving tBNB from faucets, if you could send me some to 0x59e2f66C0E96803206B6486cDb39029abAE834c0 I'll appreciate. Otherwise I can't test much for now. All I can say is that everything seems to be fine on our SDK seems Metamask does show the approval modal with the correct value.

Result the same.
Dart code:
try {
      // Define the recipient address and the amount to send
      const recipientAddress = '0x33d23FFeBf69F9e655Ac869415F86e8605127CF3';
      // Set gas price and gas limit
      final gasPrice = EtherAmount.inWei(BigInt.from(25000000000)); // 25 Gwei
      const gasLimit = 21000; // Stand

      // Send the transaction using eth_sendTransaction RPC call
      final result = await _appKitModal.request(
        topic: _appKitModal.session!.topic,
        chainId: _appKitModal.selectedChain!.chainId,
        request: SessionRequestParams(
          method: MethodsConstants.ethSendTransaction,
          params: [
            Transaction(
              from: EthereumAddress.fromHex(_appKitModal.session!.address!),
              to: EthereumAddress.fromHex(recipientAddress),
              value: EtherAmount.fromInt(EtherUnit.finney, 12),
            ).toJson(),
            // ).toJson(),
          ],
        ),
      );

      // Check the result
      if (result != null) {
        print('Transaction successful! TxHash: $result');
      } else {
        print('Transaction failed.');
      }
    } catch (error) {
      print('Error sending BNB: $error');
    }

Output:
flutter: Transaction successful! TxHash: 0x40d0602bf5465ae027eada60d8f13652ab6775ea3595204bfe2e0c6ab433055b
BSC Scan Testnet:

MetaMask app:

@quetool I sent you 1 tBNB for a test. In my case, it's still not working.

Hello @damienissa! It's working really fine to me! Here's the hash https://testnet.bscscan.com/tx/0x663a0cbbcab6c01a65fcaf55ac2416ab512cb4d942022f0cc102020f024c1399

I'll send you now the whole tBNB balance, give me a few minutes

Here's the remaining balance I sent back to you from our test dapp: https://testnet.bscscan.com/tx/0xae6a302076365d19a98437f228d18675ba2b90ce60dbce24c12d0f1a2df9213f

If you want you can share your full code and I can try fix it.

@quetool See it on my balance. Can you please share the full code with me?

It's our example dapp's code inside reown_flutter/packages/reown_appkit/example/modal https://github.com/reown-com/reown_flutter/blob/develop/packages/reown_appkit/example/modal/lib/services/eip155_service.dart#L102
Same code as I shared to you earlier. You can clone this repo and try it out directly.
You can also try this just in case:
final result = await _appKitModal.request(
        topic: _appKitModal.session!.topic,
        chainId: 'eip155:97',
        request: SessionRequestParams(
          method: 'eth_sendTransaction',
          params: [
            Transaction(
              from: EthereumAddress.fromHex(_appKitModal.session!.address!),
              to: EthereumAddress.fromHex(recipientAddress),
              value: EtherAmount.fromInt(EtherUnit.finney, 12),
              data: utf8.encode('0x'), // to make it work with some wallets
            ).toJson(),
          ],
        ),
      );

I downloaded the code, added my project ID and replace receiverAddress to mine. And the result is the same:
TX: 0x82b53a735c9e70bc0c82a085ad46150dbb1fb2fec3877dd62b8f443193012d38

@quetool  Maybe I need to add some additional settings in my project?

@quetool Maybe I need to add some additional settings in my project?

Nope, this is just a simple RPC request. I just sent to myself my dust balance of tBNB and it went through... https://testnet.bscscan.com/tx/0x54164bad3b41d55fc680cf9e4374dd978139267f0950ecfb5b61d8095ec7484d
It's really weird, allow me some time to ask to the team.

@quetool Take your time. I want to say that it's amazing lib and you are doing a great job!

Thanks for the feedback @damienissa !
Final question (for now): Can you share your BSC Testnet data and how you add it to appkit?

@quetool It looks like it was some issue in MetaMask. I removed the app, install it again, setup BSC Testnet and try to create a new transaction and it works fine. Sorry for spending your time. Issue resolved!

Nothing to be sorry about at this might be useful for other devs! Hint: When it comest to metamask it's better if you add extraRpcUrls: [] in the ReownAppKitModalNetworkInfo object as some times Metamask can not find the RPC Url given as default.
I'll close this issue then! Thanks!


Color is not set if label already exists in a different color

If configured label already exists in a different color from the one configured, the color of the label is not updated. One must edit the list of labels and delete the label in the different color for the label to be recreated with the configured color. Also, as a side note, color such as Red1 or red don't seem to work. The hex color such as ff0000 or FF0000 must be used to work.

That's a good spot. Updating colours can be done.
Unfortunately, colours have to be hexadecimal. Octokit says:

The color must be a valid hexadecimal color code.


Add gitops data package creation prior to e2e test

Master currently fails the e2e because the gitops package isn't being created to the run e2e tests against.

/test all

/test all


Develop

Steps to reproduce the behaviour

Expected behaviour

on mobile device (Android 7.0, Nexus 5X) create Book2, which creates default Accounts (Assets, Equity, Expenses, Income and Liabilities with their sub-accounts)

create the transactions in mobile device as follows:
Expenses:Auto:Gas 56,00€ (expense) -> Assets:Current Assets:Cash in Wallet

export the transactions as .qif file type to Google Drive

download to PC (linux Mint 18)

import to gnuCash (2.6.12) with no accounts - they are automatically created during the transactions import

after import expecting in PC program:
Assets: -56,00€
Expenses: 56,00€

Actual behaviour

after import
in PC program:
Assets: 56,00€
Expenses: 56,00€

found a wrong Account type: Assets, account type 'Income'

Software specifications

GnuCash Android version: 2.1.1
System Android version: 7.0
Device type: Nexus 5X

Hi,
What is your device locale?
The default accounts are imported based on your locale. So if there is an
error in the template for you locale, please let me know so we can fix it.
Cheers,
On Wed, Sep 21, 2016 at 12:43 PM, janmercl<EMAIL_ADDRESS>wrote:

Steps to reproduce the behaviour

Expected behaviour

on mobile device (Android 7.0, Nexus 5X) create Book2, which creates
default Accounts (Assets, Equity, Expenses, Income and Liabilities with
their sub-accounts)
create the transactions in mobile device as follows:
Expenses:Auto:Gas 56,00€ (expense) -> Assets:Current Assets:Cash in
Wallet
export the transactions as .qif file type to Google Drive
download to PC (linux Mint 18)
import to gnuCash (2.6.12) with no accounts - they are automatically
created during the transactions import
after import expecting in PC program:
Assets: -56,00€
Expenses: 56,00€
Actual behaviour

after import
in PC program:
Assets: 56,00€
Expenses: 56,00€
found a wrong Account type: Assets, account type 'Income'
Software specifications

GnuCash Android version: 2.1.1
System Android version: 7.0
Device type: Nexus 5X

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/codinguser/gnucash-android/pull/589#issuecomment-248575332,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAQ42xdSQUiZ9xU_ORsgjH2A8JSs-sdGks5qsQpggaJpZM4KCpfY
.


Apply PointLike type to skew

Description:
I could't use a type like [number, number] for skew of PIXI.Sprite.
So I fix it.
Related issue (if exists):

👍


[otbn] Carry over timing optimizations from Darjeeling

Description
Cherry-pick timing optimizations from integrated_dev onto master

Completed with https://github.com/lowRISC/opentitan/pull/20957


Sri Hari: Batch-2/Neetcode-150/articles

@neetcode-gh

Took 25 hours(28 articles/5 commits) for this work.
Please review it.

@neetcode-gh
After this pull request, I have completed the Neetcode-150 problems.

Thanks @Srihari2222


Re-pair a HomeKit device

Home Assistant release with the issue:

v0.100.1
Last working Home Assistant release (if known):
Operating environment (Hass.io/Docker/Windows/etc.):

virtual environment, python3.6
Integration:

https://www.home-assistant.io/integrations/homekit/
Description of problem:
I need to re-pair a HomeKit enabled device, specifically a BTicino-Legrand Gateway.
My situation was:

the gateway was already paired and working in HomeKit, and I used it with the Apple Home app;
in order to pair it with HA I had to reset it;
after resetting both the device, its official iOS app, and the entire HomeKit in iOS, I tried to pair it again in HA first

Unfortunately the problem is that HA sees the device as already paired in HomeKit, as the error below shows:
2019-11-11 01:14:39 DEBUG (MainThread) [homeassistant.components.homekit_controller.config_flow] Discovered device Legrand Gateway (Legrand Gateway - <DEVICE_ADDRESS>)
2019-11-11 01:14:39 DEBUG (MainThread) [homeassistant.components.homekit_controller.config_flow] HomeKit device <DEVICE_ADDRESS> ignored as already paired

I tried also to delete the .homekit.state file, with no success.
What should I do?
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
logger:
  default: warning
  logs:
    homeassistant.components.homekit: debug
    pyhap: debug

homekit:
  filter:
    include_entities:
      - demo.demo

Traceback (if applicable):

Additional information:

I'm doing some research about this: can it be linked to #23172?

It seems I managed to clear the "paired" status of the device by:

resetting it
disabling the fritzbox discovery integration in Home Assistant
deleting it from the devices list in the FritzBox modem configuration page

I still don't get to pair it with Home Assistant on a fresh discovery: it will fail mentioning a generic problem, and after that it's again in a "already paired" state, from which it seems the only way to get out is another reset.
Anyway I'll open another issue for that because it's not related to this.


Docs - Home - reformatting

wrapped the home examples in code blocks as the angle brackets weren't visible (ie dbConnection.BulkDelete();)
Added headings.
I couldn't figure out how to submit wiki updates as a patch, sorry.
Home.md.txt

I believe anyone with a github account can edit the wiki.

Ok see it now, thanks


Revert "Revert "fix: Use SyscallConn for isTTY which is safe during f…

This reverts commit 5275fa74f12c1a1f3604b7cb35adc8269f1c9d92.
Closes https://github.com/coder/slog/issues/176

Pull Request Test Coverage Report for Build e13298f369f25fa61786d54fe546e602a88943b5-PR-187

0 of 0   changed or added relevant lines in 0 files are covered.
11 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 96.688%

Files with Coverage Reduction
New Missed Lines
%

internal/entryhuman/entry.go
11
88.14%

Totals

Change from base Build 0830a57ace3f1d1bb73ef823630307bfe993a710:
-0.2%

Covered Lines:
759

Relevant Lines:
785

💛  - Coveralls


[1.19.2] Brass and andesite casing cannot be used on extended-cogs

Brass and andesite casing, that can be used on normal Create cogs, cannot be used the same on cogs added by this mod.

This, isnt a bug. Currently its intentionally disabled to prevent them from being transformed back to spruce cogwheels when encased. This will be implemented in the future


[editor] Download and Display the specified File ID

This issue might be related.

I was able to build after downgrading to 13.4.19.

Hi, I have encountered the same problem. I am using Next.js 14.0.1, and the issue remains unresolved. However, the solution is to downgrade to Next.js version 13.4.19. You can achieve this by running the following command: npm i<EMAIL_ADDRESS>This should resolve the problem for you.

Hi. Thanks for your comment.
What projects are you using Next.js for?
For this project, downgrading Next.js to 13.4.19 will only make the build succeed, but this feature will not work. This is because dynamic routing was not (and still is not) supported when doing static site generation (next export) with AppRouter.
Next.js 13.4.20 simply adds a build error that dynamic routing is not supported when generating static sites.
So we decided to modify the feature itself to avoid using dynamic routing.
We look forward to hearing from you and will help in any way we can.


The service 'App\Http\Controllers\CampaignService' is not available. Please pass a valid service

Hello,
$ads = new GoogleAds();
$ads->service(CampaignService::class);
I Get This Error
`

The service 'App\Http\Controllers\CampaignService' is not available. Please pass a valid service

`

Hi @hichamuim
You should add the use statement at the top of your file for the CampaignService.
That services is in google namespace. Now your code is trying to take that serve from the same folder as your controller is.

@hichamuim ,
try to add this at the top of your class:
namespace Google\AdsApi\AdWords\v201708\cm;

Hi @Edujugon ,
The error is resolved when i add  # use CampaignService;
But i hyave another error

The service 'CampaignService' is not available. Please pass a valid service

Hi @hichamuim ,
remove that use statement and add this one:
use Google\AdsApi\AdWords\v201708\cm\CampaignService;

it works, thank you @Edujugon 👍

Hi @Edujugon,
I got the same error as @hichamuim, but when I add the use statement as you said it still returns this error:
The service 'Google\AdsApi\AdWords\v201708\cm\CampaignService' is not available. Please pass a valid service
Can you help me?

@Edujugon i am still facing issue after adding this :-
use Google\AdsApi\AdWords\v201708\cm\CampaignService;


Set system config also in java.util.Properties

Embulk's system config has been represented with ConfigSource, the same with Embulk's user config based on YAML/JSON/Jackson. ConfigSource requires a lot, including library dependencies, and their initialization.
On the other hand, system config is sometimes wanted in early steps of Embulk's bootstrap. Then, System config should not depend on many dependencies.
Representing system config with standard java.util.Properties would help. Properties is actually less expressive than Jackson, but in almost all the use-cases, we have put just string:string mappings in system config, except for a couple of internal use-cases.
This commit is the first step to replace system config to use Properties. It additionally stores system config in Properties, accepts system config set from Properties, and uses Properties to set system config from CLI.
It still uses the ConfigSource version of system config inside embulk-core. They will be replaced with the Properties version in later Embulk versions.

The following system configs used standard expect arrays. We may need special handling for them.

guess_plugins
jruby_classpath
jruby_load_path

@shroman Can you have a look when you have time?
#1201, #1204 and this would be the key parts of v0.9.22. (#1205 is not included.)


GridSplitter always splits vertically

I am having this issue where GridSplitter only allows to split vertically and not horizontally
I find it weird because I looked at the source and from what I can see it is supposed to go horizontally if the horizontal alignment is not set to stretch...

I think this is because you are setting Grid.Column instead of Row on the splitter.

I think this is because you are setting Grid.Column instead of Row on the splitter.

even when I do it has the same effect

Or perhaps I misunderstand, do you want the splitter to be vertical line?

Yes, when I said always splits vertically it was more to say that it was splitting to resize vertically when I want it to resize horizontally

I just tried
<Grid ColumnDefinitions="*,4,*">
    <TextBlock Text ="aaaaaaaaaaaaaa" Grid.Column="0"/>
    <GridSplitter Grid.Column="1"/>
    <TextBlock Text ="bbbbbbbbbb" Grid.Column="2"/>

  </Grid>

and it appears to work

Oh so I had to set a third column
I didn't know, thanks for the help
I think the main reason it's difficult is because the documentation has a big lack of examples on how to use controls.
As AvaloniaUI is my first GUI api the lack of infos is a bit confusing

Yep, the control catalog sample is a good place to look (but not in this case) and a search on the repro will normally find an example. https://github.com/AvaloniaCommunity/awesome-avalonia also lists a lot of projects that can be used as examples.

Avalonia's Grid is exactly the same as WPF's Grid. So if you google WPF Grid results should be applicable for Avalonia.


Add virtual destructors to Checker and Notifier base classes

Checkers are kept in a vector<unique_ptr<Checker>>. If they were ever removed from that vector, they would be deleted through a base pointer. Since the different Checker subclasses have different fields and sizes, those would then not be correctly cleaned up.
The Notifier base class is then changed for consistency.

good catch, thanks!


feat: add app name to data sources for roles

Purpose

In order to create customer-defined role collections the app name is needed for filtering the results of all available roles in a subaccount/directory/globalaccount. This PR introduces the field to the corresponding data sources.
Closes #413

Does this introduce a breaking change?

[ ] Yes
[X] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[X] Feature
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Test the code via automated test

go test ./...

What to Check
Verify that the following are valid:

Automated tests are executed successfully

Other Information
The API for getting a dedicated single role does not return this field. Consequently,  we added the field exclusively to the "list" data sources
Checklist for reviewer

The following organizational tasks must be completed before merging this PR:

[X] The PR is assigned to the Terraform project and a status is set (typically "in review").
[X] The PR has the matching labels assigned to it.
[X] The PR has a milestone assigned to it.
[X] If the PR closes an issue, the issue is referenced.
[X] Possible follow-up items are created and linked.

The fixtures do not really change, so probably the re-recording is not necessary. The attributes are already present in the recorded fixtures. I would have expected the tests to be extended with a check for the app_name. However, the existing tests do only check the number of roles, not their actual fields. Probably we should improve the tests to do so. However, this could also be done with a dedicated issue.

The recording was a glitch (had the force flag set and landed in the commit and push. The test now contains a check that the attribute contains some value.


Firefox case when screen and camera offer together

Description
Firefox camera tracks do not fire onTrack when screen share
and camera is negotiated in the same offer.
There were two issues

When updateRemoteDescription runs, only the first
media description of a specific kind was considered.
So, when screen was before camera, screen did not
save RID in extmap. It is in the camera section as
video is using simulcast. All the extra ones in the
camera section were ignored.

Parse all descriptions and collect extensions to fix it.

This one sounds like a Firefox issue. When sending
answer back, if the screen share section has the
RID, Firefox seems to get stuck. It does not send
screen or camera media and after 15 seconds, the
peer connection fails.

To address that, store extensions from SDP in
transceiver and while constructing answer SDP,
cross check against transceiver's negotiated
extensions before adding it to the answer SDP.
The reason I think this is a Firefox issue is
because how it behaves before this change when
camera is negotiated first and screen later in
a separate offer. When screen is negotiated
later, answer does send back RID and it works.
Looks like Firefox has an issue seeing RID
before it expects it.
Testing
Used LiveKit JS SDK sample to negotiate screen and
camera together.
This was not an issue with Chrome as I could not
get Chrome to negotiate screen and camera in the
same offer with screen ahead of camera.

@boks1971 This LGTM!
What happens if you have multiple MediaDescriptions with different extension IDs?

@Sean-Der @davidzhao Any concerns with this PR?

@boks1971 I am happy with everything except SetCodecPreferences.
I would like to avoid adding SetHeaderExtensions and instead have it match the browser and do RTPSender.SetParameters . This is a long term vision, but would love to have one code base that people could run native + web + mobile clients.
Making this all work is a long way away, but if we don’t match web makes it harder to do. If it is intractable I understand, but would be nice to avoid!

Thank you @Sean-Der . I will try to spend more time on this next week.

Hey @boks1971 I am going to resolve this, but please re-open if you would like to see this merged.
I haven't seen/heard this impacting anyone else. Did Mozilla update anything on their side to include header extensions in all media sections?

Thank you @Sean-Der . I have not heard of a fix, but have not heard of more instances of either. Will keep an eye out and re-open if necessary 🙇

I just verified and looks like this is still an issue. If a FF client offers screen share first, the camera track would not be recognized afterwards.

Thank you @davidzhao . Will re-visit this some time soon.

I can take it from here @boks1971 ! I have some time

Thank you so much @Sean-Der .

Closing this as a different PR address the underlying issue - https://github.com/pion/webrtc/pull/2444


Convolution2d: input and weights types mismatched while running yolov3tiny.tflite

Hi,
I am using ARMNN v20.02 on the S32V234 vision processor, getting below error while running quantized yolov3tiny.tflie on ubuntu as well. Mobilenet example is running properly.
./tests/TfLiteYoloV3Big-Armnn /Downloads/armnn-temp/yoloweights/ /Downloads/armnn-temp/yoloweights/
Info: ArmNN v21.0.0
Info: Initialization time: 0.07 ms
Info: Loading backbone...
Debug: Model loaded ok: /home/cll/Downloads/armnn-temp/yoloweights/yolov3_1080_1920_backbone_int8.tflite
Warning: WARNING: Layer of type Convolution2d is not supported on requested backend CpuRef for input data type Float32 and output data type Float32 (reason: Reference Convolution2d: input and weights types mismatched.
), falling back to the next backend.
Warning: ERROR: Layer of type Convolution2d is not supported on any preferred backend [CpuAcc CpuRef ]
Fatal: Could not optimize the model:/home/cll/Downloads/armnn-temp/yoloweights/yolov3_1080_1920_backbone_int8.tflite
Info: Shutdown time: 0.00 ms

Hi @krBarma ,
Many of the test applications in armnn/tests, including TfLiteYoloV3Big-Armnn, require the use of models that have been internally optimized by Arm and are not available publicly.
We are currently working on ways to provide a better solution to this situation.
Cheers,
James

Hi @krBarma ,
Since we have not heard back from you in a while and the issue appears to be resolved now, we are going to close this issue.
Please let us know if this is being closed in error, or feel free to open a new issue if another one should arise.
Cheers,
James


Add sidePages option

Not sure it’ll work in 100% of cases.

I would say let's merge this and publish 0.11. It's an incremental change by the looks of it so if there are issues, they are in the new logic. Sounds ok?
We probably should fuzz the logic, but I have no clue how to achieve that with Jest. Maybe it would be a good time to extract the logic from the React component and test it separately.

Cool :shipit:

I pushed the core logic to segmentize. There's a little property even to fuzz it now and I ported the tests to Mocha.
0.11.0 of react-pagify contains sidePages now.


Demonstrate output buffer bug

As shown in https://github.com/citizensadvice/design-system/pull/2179 there is an issue rendering components in bridgetown where blocks are used.
This causes an output buffer issue where the contents of the block is also rendered on the page.
This only seems to happen with haml templates not erb templates. It's possibly a bridgetown bug but more likely down to the fact we are having to approximate haml support in our builder by having to patch in a new template handler.

This pull request acts as a reduced test case to demonstrate the issue. I'll raise a pull request based on this showing how switching to ERB bypasses any underlying issues.

Page is here showing the issue: https://62de6067e705d1131da56e5b--ca-design-system.netlify.app/components/output-buffer-bug/

Updated the demo to include an input example too which really highlights the issue.


Notices "Save Failed." , When I use obsidian-livesync-webclip clip content into own self-host server. But the server works well in Obsidian

Server:
fly.io APP
Domain:
https://oblivesy.fly.dev/personally/

Description:
Notices "Save Failed." , When I use obsidian-livesync-webclip clip content into own self-host server. But the server works well in Obsidian. And I can clip content into Tasting Server ( https://olstaste.vrtmrz.net/ ). So, Is my server deployment get some wrong ?
Procedure:
https://github.com/vrtmrz/obsidian-livesync/discussions/85
Configuration:
# fly.toml file generated for oblivesy on 2023-02-17T14:39:17+08:00

app = "oblivesy"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []

[build]
  image = "couchdb"

[env]
  COUCHDB_USER = "Charise"

[experimental]
  allowed_public_ports = []
  auto_rollback = true

[mounts]
  destination = "/opt/couchdb/data"
  source = "couchdata"

[[services]]
  http_checks = []
  internal_port = 5984
  processes = ["app"]
  protocol = "tcp"
  script_checks = []
  [services.concurrency]
    hard_limit = 25
    soft_limit = 20
    type = "connections"

  [[services.ports]]
    force_https = true
    handlers = ["http"]
    port = 80

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 443

  [[services.tcp_checks]]
    grace_period = "1s"
    interval = "15s"
    restart_limit = 0
    timeout = "2s"

Who can tell me how to solve it , Thanks very much !

It's solved, In CouchDB'Configuration, enable CORS !


OpenGL error

Hi there, I'm actively using this template for ros2 development and I ran into an issue with presumably OpenGL.
I realized that rviz does not work anymore using all the dockerfiles from 03/22 on, crashing with the following:
[ERROR] [1650546553.554378445] [rviz2]: rviz::RenderSystem: error creating render window: InvalidParametersException: Window with name 'OgreWindow(0)' already exists in GLRenderSystem::_createRenderWindow at /tmp/binarydeb/ros-galactic-rviz-ogre-vendor-8.5.0/obj-x86_64-linux-gnu/ogre-v1.12.1-prefix/src/ogre-v1.12.1/RenderSystems/GL/src/OgreGLRenderSystem.cpp (line 1061)
[ERROR] [1650546553.554383907] [rviz2]: Unable to create the rendering window after 100 tries

So I installed mesa-utils checked if I can run glxgears which did also crash so I compared to an earlier image (from february) and compared the OpenGL versions inside the docker:
FROM althack/ros2:galactic-gazebo-2022-02-01
glxinfo | grep "OpenGL version"
OpenGL version string: 3.1 Mesa 21.0.3
-> rviz and glxgears work

FROM althack/ros2:galactic-gazebo-2022-04-01
glxinfo | grep "OpenGL version"
OpenGL version string: 1.3 Mesa 21.2.6
-> rviz and glxgears crash

I'm not quite sure what causes these version changes, maybe you have an idea?
Note: This might also rather belong in your dockerfiles repo depending on the fix.. sorry if this is misplaced!

Added RUN echo "export LIBGL_ALWAYS_SOFTWARE=1" >> /home/ros/.bashrc to the Dockerfile did the trick, though I am not sure why this is the case!

Thanks for the catch and the fix!
I added that variable to the devcontainer.json in #19  which should also work.  LMK if this solves your issue!

Yes it does and it makes more sense for the variable to be located in devcontainer.json!
I'm still a little confused how the two docker images resulted in a descending version. Can this result out of changed dependencies of ros2 packages? Do you have an insight for me?

Yes, it's likely due to a changed dependency inside of the ros2 packages.  I haven't changed the packages included in the dockerfile in some time.  It rebuilds pulling the latest each month and saves it with a tag.  I had found the tagging useful due to some ABI incompatibility issues with ROS packages in the past, so folks can always pin to an older version if they're in prod.
My best guess is that it might have something to do with this https://community.gazebosim.org/t/a-new-era-for-gazebo/1356 @chapulina for ideas on how to root cause this?

Humm that doesn't look familiar to me. Since it happens to RViz as well, chances are it's not an issue with Gazebo. We haven't started migrating any Ignition debian packages to the new name yet, so I doubt that's related. Hope this helps.


Variable explorer sort by size/count is no longer available

Test plan item says "Also sort the list ascending and descending by Count. Values like (X, Y) use the first X value for Count sort ordering"
Currently you can only sort by Name and Type. Either this was deprecated a long time ago and the test plan needs to be updated, or this is a regression

closing since no one has complained about this


Privacy page/view question

Hello @jbagga @natemcmaster ... Was it intentional to leave the Privacy page link out of _Layout.cshtml? ...

Privacy

I'm working 2.1 doc sample updates and plan to wire the page/view up in the layout unless you instruct me not to do so.

Not sure. @mkArtakMSFT @ryanbrandenburg would know.

It's linked to from the cookie consent UI. It makes sense to me that it would be linked to from the layout as well. https://github.com/aspnet/templating/issues/551

I see. I usually place it in the footer; but if the consent UI is always available, then visitors can get to it easily enough. I was mistaken that the consent UI goes away after acceptance.

I was mistaken that the consent UI goes away after acceptance.

The consent UI isn't always available. Once you accept you no longer see it. I agree the link should be available from the layout. That's why I opened https://github.com/aspnet/templating/issues/551

Sorry ... I'm out on the :bicycle: ... I should've clicked the issue.
Don't bike and work at the same time. :smile:


Upgrade gems for May 23rd 2021

Major:

[ ] database_cleaner (1.8.5 -> 2.0.1)
[ ] memory_profiler (0.9.14 -> 1.0.0)
[ ] newrelic_rpm (6.13.1 -> 7.0.0) (migration guide)
[ ] rspec-rails (4.0.1 -> 5.0.1)

Minor:

[ ] aws-sdk-s3 (1.83.0 -> 1.95.0)
[ ] aws-sdk-ses (1.36.0 -> 1.38.0)
[ ] bootstrap (4.5.2 -> 4.6.0)
[ ] capybara (3.33.0 -> 3.35.3)
[x] factory_bot_rails (6.1.0 -> 6.2.0)
[ ] html-proofer (3.16.0 -> 3.19.1)
[ ] json (2.3.1 -> 2.5.1)
[ ] listen (3.2.1 -> 3.5.1)
[ ] rack-mini-profiler (2.1.0 -> 2.3.2)
[ ] test-unit (3.3.6 -> 3.4.1)
[ ] thin (1.7.2 -> 1.8.1)
[ ] tinymce-rails (5.5.1 -> 5.8.1)
[ ] webdrivers (4.4.1 -> 4.6.0)
[ ] webmock (3.9.3 -> 3.13.0)

Patch:

[ ] barnes (0.0.8 -> 0.0.9)
[ ] jwt (2.2.2 -> 2.2.3)
[ ] nokogiri (1.11.4 -> 1.11.5)
[ ] pg_search (2.3.4 -> 2.3.5)
[ ] puma (5.3.1 -> 5.3.2)
[x] rails (5.2.5 -> 5.2.6)
[ ] redis (4.2.2 -> 4.2.5)
[x] sanitize (5.2.1 -> 5.2.3)
[x] timecop (0.9.2 -> 0.9.4)

Breaking changes:

database_cleaner: probably OK especially if tests are passing, looks like the default gem still contains the ActiveRecord adapter, dropped support for old rubies
memory_profiler: drops support for Ruby <= 2.4
newrelic_rpm: drops Ruby <= 2.1, looks like we aren't affected by deprecated configs, and I trust their prepend vs alias strategy until/unless we see it loop and crash
rspec-rails: looks like the breaking change is dropping support for Rails <5.2

Unstable versions:

barnes: seems ... ok? not really sure what the bug fix is addressing since we never hit it

Others:

aws-sdk-s3: looks fine

aws-sdk-ses: looks fine

bootstrap: we don't use it much, do we? I'd probably check the site loads OK and that's it

capybara: drops support for Ruby <= 2.5, beyond that might be changing the default chromedriver to use chrome(?), but looks OK

html_proofer: hard to tell what changed without a real changelog... also the commit messages aren't very helpful... I guess they switched to GitHub Actions... and did some dependency bumps and linting... and added Ruby 3 support... and I'm not sure what else, I guess our tests are making sure our HTML is right?

json: looks OK, and is now maybe even thread-safe

listen: only used in development afaik, looks fine

rack-mini-profiler: development only; looks fine

test-unit: not 100% confident in this, they broke their pipeline and haven't fixed it, but meh

thin: development only; seems fine

tinymce-rails: I'd check this manually - they're always breaking things

webdrivers: some WSL changes, but mostly just that

webmock: looks like bug fixes

jwt: not sure, probably important to get in but it's a security library and I can't understand the changelog very well

nokogiri: fine

pg_search: fine

puma: fine

redis: seems okay-ish? IO optimizations primarily

I'll check off the entries that look OK to me and we can investigate the others in a bit more detail!

Left over: bootstrap, html-proofer, test-unit, tinymce-rails, jwt
In practice, test-unit is probably fine too since our test suite worked OK. We should make sure the bootstrap/html-proofer/tinymce-rails ones are OK by browsing the site a little, but that's it. JWT can probably go in too if, idk, logins are working fine (I don't know if we actually use the gem implicitly via Rails or not at all, I'm not sure how it's being pulled in).

We spoke about the gems and:

bootstrap is being held back(?)
html-proofer doesn't crash obviously + is only dev
test-unit is only dev
tinymce-rails seems to be fine, the editor loads
jwt we have no idea but probably fine

Right? If so, LGTM!


Does CyberAgent have any plans to sandbox then donate PipeCD to CNCF?

@nghialv Does CyberAgent have any plans to sandbox then donate PipeCD to CNCF?
For example:
• https://podcasts.apple.com/ro/podcast/donating-your-open-source-project-to-cncf-with-ihor/id1514646781
• https://github.com/cncf/toc/blob/main/reviews/incubation-flux.md
• https://github.com/cncf/toc/blob/main/proposals/incubation/argo.adoc
Thank you.

The Why: The idea is that the process from sandboxing to donation to CNCF might mitigate security risks and liabilities, if given enough funding and support.

For a simple example in a different open source project that was not sandboxed with CNCF...
• I reported an error at https://github.com/box/ClusterRunner/issues/457 with a simple fix — Prepend an URL with www. to match an SSL certificate, but no one responded yet
• Furthermore, another person reported the same (?) issue 3 years ago at https://github.com/box/ClusterRunner/issues/447
In my humble opinion, when a company or its open source program office cannot perform good stewardship of an open source project... to even reply to simple inquiries, then what seems like a simple fix — Prepend an URL with www. to match an SSL certificate — may never happen.  At that point, I believe there seems to be something wrong with a company's open source program office for unknown reasons.
Hypothetically, there could be various reasons, such as:
• Perhaps the open source project has been abandoned without a formal public notice?
• Perhaps the people who had worked on the open source project already left the company?
There are security risks and liabilities in using open source that aren't supported nor maintained.

The idea is that the process from sandboxing to donation to CNCF might mitigate those security risks and liabilities, if given enough funding and support.
For example, in a different open source project that was sandboxed with CNCF...

As Flux is an Incubation project within the Cloud Native Computing Foundation, we were graciously granted a sponsored audit. The primary aim was to assess Flux’s fundamental security posture and to identify next steps in its security story. The audit was commissioned by the CNCF, and facilitated by OSTIF (the Open Source Technology Improvement Fund). ADA Logics was quickly brought into the picture, and spent a month on the audit.
https://www.cncf.io/blog/2021/11/11/flux-security-audit-has-concluded/

For what it is worth as a reference, I asked the similar question "sandbox then donate" in a different open source project at https://github.com/lyft/clutch/issues/2556

Thank you.

Hi @lloydchang, thanks for the question.
In fact, the PipeCD team had already submitted our application for joining the CNCF sandbox program (https://github.com/cncf/sandbox/issues/12). We're still waiting for the TOC review meeting, but we can say that being a CNCF sandbox is part of our plan, and we are doing our best to make it.
By submitting the CNCF sandbox application, the PipeCD team (thus CyberAgent, Inc) understands that we're donating the project to the community, and we're sure to keep supporting/maintaining the project with good stewardship. Not because of the community interest but because PipeCD is being our company de facto that is used widely by our company.

Thanks @khanhtc1202, as I didn't realize https://github.com/cncf/sandbox/issues/12 already exists.  Thank you!

Thanks for questioning 😄


backport of #1449

Purpose
backport of #1449 as a bug/security fix

@jimmywarting Not sure if it's on your turf, but Snyk still shows v2.6.7 as vulnerable. https://snyk.io/test/npm/node-fetch/2.6.7?tab=issues

@jimmywarting Not sure if it's on your turf, but Snyk still shows v2.6.7 as vulnerable. https://snyk.io/test/npm/node-fetch/2.6.7?tab=issues

They changed it now. Disregard 😄

grate, i was going to lookin to comfirm with it yesterday but got tied up with other work and it was getting late. glad they changed it.

@jimmywarting FYI GitHub Advisory Database is still showing any version <3.1.1 as vulnerable including this backport so npm audit is flagging it. https://github.com/advisories/GHSA-r683-j2x4-v87g Is there anything that can be done from your end about this?

not sure what to do actually... it's fixed already.

not sure what to do actually... it's fixed already.

I ran into the same issue with a package I maintain not that long ago. I had to ping GitHub/npm staff to fix it. (They apparently have a feature in the works to allow folks to suggest updates but it's not rolled out yet.)

not sure what to do actually... it's fixed already.

I ran into the same issue with a package I maintain not that long ago. I had to ping GitHub/npm staff to fix it. (They apparently have a feature in the works to allow folks to suggest updates but it's not rolled out yet.)

https://twitter.com/trott/status/1484902304931205125

@jimmywarting You'll also want to update https://nvd.nist.gov/vuln/detail/CVE-2022-0235. For that, email<EMAIL_ADDRESS>

Looks like https://nvd.nist.gov/vuln/detail/CVE-2022-0235 was updated to include 2.6.7!

Purpose
backport of #1449 as a bug/security fix

this is the real dwon odell

this is the real dwon odell...fix what you have done


Download CSV option in Saved Search

Need Download CSV option in Saved Search
Hi all Right now we can go & download saved search from discover tab.
But incase I'm including Saved search in my dashboard, I do not have option to download saved search.
In case I click on Gear option on right side of saved search in a dasboard, I can only see Inspect & Maximise window. There is no option to download as CSV.
Opensearch Version
1.2.0
Dashboards Version
1.2.0
Describe the solution you'd like
Include a Download as CSV option for saved search when we include it in dashboard.
Will be greatly helpful as we are using data tables . If we use saved search, it will be faster & easier to download.
Download CSV should also have ability more than 10,000 rows/documents of data.
Current View:
Current view in Opensearch in download option in Dashboard

Expected view
Required view in download option in Dashboard. Currently the below feature is from Kibana.

Hi, has there been any updates on this feature?
On the back of @mbonnici55, Our Opensearch Users require to download "Discover" query results as a CSV but do not and cannot have write permissions.

CC @mnkugler @seanneumann
I know @ananzh implemented this for table visualizations: https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/src/plugins/vis_type_table/public/utils/convert_to_csv_data.ts
I think we could generalize this to work for other datagrid content, including discover and embedded saved searches. I also wonder if it would be better to just add it as native functionality to the OUI data grid component.

This would be of great help. Thank you @joshuarrrr.
Requiring write permissions to download data for read-only users in Opensearch seems pretty non-intuitive.

My company has also been using Kibana dashboards for a long time and the ability to directly download Searches embedded into the dashboards would be really helpful. Our customers are usually not directly in our domain and therefore training them to look into the Reporting section isn't always feasible. Thank you for the support on this.


Add support for swarming.

Add support for swarming so that the tests can be split between different machines.

PTAL

PTAL

I created a feature request at https://bugs.chromium.org/p/chromium/issues/detail?id=666335

PTAL
Got rid of env variables. A buffer script is a good idea.

Done :)

When this (making help text lowercase) is done, please have @kwiberg finish reviewing and merge it, thanks!
He can also show you how to import to webrtc, specifically updating the README file with the hash. Do this as soon as the buffer script is ready to not break existing runs.

Done.
So, should I wait for @kwiberg as well?

Yes please, since he started commenting.

I think it's fine that way.
The reason for dropping environment variables is that we plan to create a buffer script that converts the environment variables to flags and call gtest-parallel with them.

Yeah, I got that. But I didn't catch why you no longer need to clear GTEST_SHARD_INDEX and GTEST_TOTAL_SHARDS from the environment where you execute the tests. I'm assuming that's also the responsibility of the buffer script, then?

Yup

Along with an explanation of why it's needed


Missing indication EFO map for the drug Aspirin

Having the chembl drug id CHEMBL25 one of its indications is
              {
                "maxPhaseForIndication" : 4,
                "references" : [
                  {
                    "source" : "DailyMed",
                    "ids" : [
                      "03cdc2f8-78d1-11dc-8314-0800200c9a66"
                    ],
                    "urls" : [
                      "http://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=03cdc2f8-78d1-11dc-8314-0800200c9a66"
                    ]
                  }
                ]
              },

@JarrodBaker and this indication does not contain EFO mapping so either does not include. @d0choa should we report to Chembl?

this is for the drug beta index

The problem seems to be coming from the raw ChEMBL data itself. Assume that we have loaded the raw chembl data into a DataFrame inds, then select the fields of interest:
{
                 val aspirin = inds
                   .filter($"molecule_chembl_id" === "CHEMBL25")
                   .withColumn("refId", explode($"indication_refs.ref_id").as("refId"))
                   .withColumn("refType", explode($"indication_refs.ref_type").as("refType"))
                   .drop("indication_refs")
                   .filter($"refId" === "03cdc2f8-78d1-11dc-8314-0800200c9a66" && $"refType" === "DailyMed")
}

We get the following output:
+-----------+-----------------+------------------+--------------------+--------+
|     efo_id|max_phase_for_ind|molecule_chembl_id|               refId| refType|
+-----------+-----------------+------------------+--------------------+--------+
|       null|                4|          CHEMBL25|03cdc2f8-78d1-11d...|DailyMed|
|EFO:0003843|                4|          CHEMBL25|03cdc2f8-78d1-11d...|DailyMed|
|EFO:0003843|                4|          CHEMBL25|03cdc2f8-78d1-11d...|DailyMed|
|EFO:0003843|                4|          CHEMBL25|03cdc2f8-78d1-11d...|DailyMed|
|EFO:0003843|                4|          CHEMBL25|03cdc2f8-78d1-11d...|DailyMed|
|EFO:0003843|                4|          CHEMBL25|03cdc2f8-78d1-11d...|DailyMed|
|EFO:0003843|                4|          CHEMBL25|03cdc2f8-78d1-11d...|DailyMed|
|EFO:0003843|                4|          CHEMBL25|03cdc2f8-78d1-11d...|DailyMed|
+-----------+-----------------+------------------+--------------------+--------+

The data-pipeline took the approach of not including any indications which did not have an associated efo_id.
If there are no objections, I'll take the same approach and throw away any indications that don't have an efo_id.

@JarrodBaker this sounds good to me. I would suggest to include another field named indicationFromSource which contains the indication label from ChEMBL. This might help us identify if something fishy is going on with the indication mapping.
Since 1,400 missed indications is a significant number, @JarrodBaker could you pass to @ireneisdoomed a table with all the indication labels - ChEMBL ids pairs for the unmapped ? She can try to run it through Zooma/Ontoma and check if there are some obvious mappings that ChEMBL could rescue.
If this number is still low, we might have to list indications as unresolved entities using the indicationFromSource field.

For completeness, the above listed unmapped indication corresponds to Spasm, which in my opinion should have been mapped to the EFO term HP_0003394  - muscle spasm (OT platform alpha)

@d0choa I've pulled the indication labels from the ChEMBL ElasticSearch (I'm guessing you're referring to what they call the efo_term). In all cases where the efo_id is null the efo_term is also null.
I've created a csv file in the following form:
root
 |-- molecule_chembl_id: string (nullable = true)
 |-- efo_id: string (nullable = true)
 |-- efo_term: string (nullable = true)
 |-- refId: string (nullable = true)
 |-- refType: string (nullable = true)
 |-- refUrl: string (nullable = true)

and uploaded it to gs://ot-team/drop/indicationsWithNulls.csv for @ireneisdoomed to see if she can make any headway.
How did you find the original term? Indications that were generated using the old pipeline which had no efo_id were being dropped?
Given there are no labels coming out of ChEMBL, shall I just save the references for the time being in something like indicationsWithoutEfo?

I suspect the above label Spasm would be somewhere in their ES index for aspirin. That's the field, I was referring to. It's the raw indication, before any mapping to EFO is performed.

Having used the mesh_heading Jarrod has fetched from the their ES, OnToma is able to map nearly 60% of the unmapped MeSH terms. You can find the table here gs://ot-team/drop/matched_indications.csv. For the case given, Spasm has been mapped to muscle cramp.
Among the unsuccessful results, these 6 terms do not map to any EFO: 'Electrolytes', 'Peritonitis', 'Vaginismus', 'Chancroid', 'Diverticulum, Colon', 'Cholestasis':

Electrolytes: No match, too unespecific
Peritonitis: EFO entry, OnToma does not find it? (EFO_0008588)
Vaginismus: not in EFO but MONDO ID available: MONDO_0021723
Chancroid: not in EFO but MONDO ID available: MONDO_0001797
Diverticulum, Colon: No match
Cholestasis: EFO entry including MONDO, OnToma does not find it? (MONDO_0001751)

An error has been identified in the OnToma tool as both peritonitis and cholestasis should be mapped to an exact match. This is addressed in #1220.
Regarding Vaginismus and Chancroid, should we inform EFO to include these?

@mkarmona and I discussed this bug this morning at our regular backend meeting. The decision for the time being is to wait for ChEMBL to update their data with the missing values that @ireneisdoomed found. While it's technically feasible for us to manually patch in Irene's data, it adds another dependency to the ETL and makes it harder to understand the code.


Admin Dashboard - Project Verification Buttons

As of now, in the Admin Panel, we have two options for project verification - 'verify project' and 'unverify project'
So far we have not had to revoke any badges but when we do we will need another option.
Can we create 3 buttons?
'verify project' - changes the db value to true
'reject project' - changes the db value to false
'revoke badge' - changes the db value to false
We can then create a new segment event based off of the button action to trigger the correct emails for the corresponding events.
Project owners will need to receive a different email upon rejection than upon revocation.

@WhyldWanderer tried adding a new segment event but I get this error, do you know if we have a limit of events?

Im not sure but I think @divine-comedian might know...

@CarlosQ96  You don't actually add the event in segment. Norrmally we'll just add the analytics.track code with the relevant information for each relevant mutation/function in the impact graph
e.g.
const segmentProject = {
        email: user.email,
        title: project.title,
        LastName: user.lastName,
        FirstName: user.firstName,
        OwnerId: project.admin,
        slug: project.slug,
      };
      analytics.track(
        SegmentEvents.PROJECT_ACTIVATED,
        `givethId-${ctx.req.user.userId}`,
        segmentProject,
        null,
      );


Report Twitter Streaming API disconnects and attempt to reconnect

Although Twitter's Streaming API connections are designed to remain open indefinitely, there are several reasons a client can be disconnected:

Twitter server restarts or configuration changes
Internet problems on the client's side
A client establishes too many connections using the same Twitter app credentials

See the "Disconnections" section of this page for a more complete list.
Currently, if this module gets disconnected from Twitter's Streaming API, it continues to run like nothing happened except that all hashtag counts show up as 0. This needs to be fixed. This module should:

Report disconnection errors.
Attempt to reconnect, report each of these attempts, and indicate how much time was spent in an unconnected state so users are aware of how much data is missing.

This has been resolved. Results are disabled while the module is in a disconnected state to avoid false 0 results. Support for three new optional callback functions, 'connectingCb, reconnectingCb, and connectedCb`, has been added to allow applications to react to connect/disconnect events in any way.


[Bug] Redis plugin: some cmds are not working

Description
Reported by community:
Socket error disappeared after the latest release. Now most of redis commands are not working.

Not Working

KEYS *
LRANGE <KEY-NAME> 0 -1
GET <KEY-NAME>

Working

SELECT <INDEX>
CLIENT LIST

Connections seem to work individually as per my test.
As per my tests, simultaneously using many actions broke the connection, and thereafter no action worked.


Unreproducible jpm sign api issue

I was using the JPM Sign API and did this:
	var promise_sign = xhr('https://addons.mozilla.org/api/v3/addons/THIS_CAN_BE_ANYTHING/versions/' + aAddonVersionInXpi + '/', {
		method: 'PUT',
		data: formData,
		responseType: 'json',
		headers: {
			Authorization: 'JWT ' + generateToken(aAmoApiKey, aAmoApiSecret)
		}
	});

And the response of the status check:
			var promise_signStatus = xhr(aCheckSignedURL, {
				responseType: 'json',
				headers: {
					Authorization: 'JWT ' + generateToken(aAmoApiKey, aAmoApiSecret)
				}
			});

was this:
![](file:///C:/Users/Mercurius/Documents/jpm%20sign%20status%20when%20not%20yet%20processed.png)
I kept running that check for about 30 minutes, checking every second, and it would never change.
Checking AMO we see status is marked "incomplete".
I cannot reproduce this. Does anyone know what happend? And how I can detect status was incomplete and the signing will never happen?
Here is the addon on amo - https://addons.mozilla.org/en-US/developers/addon/two-bootstrap-nsitimer/edit

My best guess is that we hit an intermittent deadlock or other DB error and it rolled back your add-on submission. I don't know of a way to check for this currently because the 'incomplete' state is the default state. You could give yourself a timeout to give up after. As for the stability issues (sorry), pretty much the whole team is working on smoothing these out as we speak. Tracker: https://github.com/mozilla/olympia/issues/1244

Since we're tracking API performance in a separate issue and we don't have a great idea for making the API respond better to catastrophic failure, I'm closing.

Ah can those stability be issues be responsible for me getting status == 401, statusText == "Unauthorized" and response.detail == 'Incorrect authentication credentials.'
I tried changing the timing in my token generator and all kinds of things but randomly I still get these. If it's on the stability issues that might make sense because I can't explain it haha

I don't think so, most of the problems are occurring on writes. Do you have
any more details on those requests?
On Thu, Jan 14, 2016 at 1:15 PM, Noitidart<EMAIL_ADDRESS>wrote:

Ah can those stability be issues be responsible for me getting status ==
401, statusText == "Unauthorized" and response.detail == 'Incorrect
authentication credentials.'
I tried changing the timing in my token generator and all kinds of things
but randomly I still get these. If it's on the stability issues that might
make sense because I can't explain it haha
—
Reply to this email directly or view it on GitHub
https://github.com/mozilla/olympia/issues/1369#issuecomment-171782015.

Thanks @andymckay-limited-access for the quick reply. Here is my full code, it works, but randomly I get those invalid errors, so I have a timeout to try it again and again till it works.
https://github.com/Noitidart/Chrome-Store-Foxified/blob/fbfadd28835d5cc30e9baa44774793047fde6ba5/bootstrap.js#L57-L241
This is my jsonwebtoekn, I just ran browserify on the node jsonwebtoken module -
https://github.com/Noitidart/Chrome-Store-Foxified/blob/fbfadd28835d5cc30e9baa44774793047fde6ba5/modules/jsonwebtoken.js

Sorry more interested in any HTTP logs for those transactions (please blank
out your API keys).
On Thu, Jan 14, 2016 at 1:27 PM, Noitidart<EMAIL_ADDRESS>wrote:

Thanks @andymckay-limited-access
https://github.com/andymckay-limited-access for the quick reply. Here
is my full code, it works, but randomly I get those invalid errors, so I
have a timeout to try it again and again till it works.
https://github.com/Noitidart/Chrome-Store-Foxified/blob/fbfadd28835d5cc30e9baa44774793047fde6ba5/bootstrap.js#L57-L241
This is my jsonwebtoekn, I just ran browserify on the node jsonwebtoken
module -
https://github.com/Noitidart/Chrome-Store-Foxified/blob/fbfadd28835d5cc30e9baa44774793047fde6ba5/modules/jsonwebtoken.js
—
Reply to this email directly or view it on GitHub
https://github.com/mozilla/olympia/issues/1369#issuecomment-171784979.

Ah. Here is http to the sign call.
https://addons.mozilla.org/api/v3/addons/Bootstrap-nsITimer-EIGHT%40jetpack/versions/0.3/

PUT /api/v3/addons/Bootstrap-nsITimer-EIGHT%40jetpack/versions/0.3/ HTTP/1.1
Host: addons.mozilla.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Authorization: JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ1c2VyOjEyMDg0MTYyOjQ1NCIsImp0aSI6IjAuNDYyNzc3MDA5MzU2NzAzMiIsImlhdCI6MTQ1MjgxMzkyNSwiZXhwIjoxNDUyODEzOTg1fQ.mVME4u5IXZaJxinXRrYl8rRQCODh_QcTGWpPQsYY42M
Content-Length: 3431
Content-Type: multipart/form-data; boundary=---------------------------191261131116310
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
-----------------------------191261131116310
Content-Disposition: form-data; name="Content-Type"

multipart/form-data
-----------------------------191261131116310
Content-Disposition: form-data; name="upload"; filename="nsi2.xpi"
Content-Type: application/x-xpinstall

PK

HTTP/1.1 401 UNAUTHORIZED
Allow: GET, PUT, HEAD, OPTIONS
Content-Type: application/json
Date: Thu, 14 Jan 2016 23:25:15 GMT
Server: nginx
Set-Cookie: multidb_pin_writes=y; expires=Thu, 14-Jan-2016 23:25:30 GMT; Max-Age=15; Path=/
Strict-Transport-Security: max-age=31536000
Vary: Accept, X-Mobile, User-Agent
WWW-Authenticate: JWT realm="api"
X-Frame-Options: DENY
Transfer-Encoding: chunked
Connection: keep-alive

If you are only getting the 401 Unauthorized response intermittently then, yes, it is likely a timing problem. I would suggest trying to sync your clock with NTP or some equivalent. Let us know if that doesn't fix it.

@kumar303 wow that's sensitive. Thanks! Right after sync I get intermittent, but less then 10 min later Im getting it again, re-re-syncing fixed it again. Is this a bug? Or is it sensitive by design?

it sounds like you have a drift in your clock. Our site allows for a 5 second drift but I guess we could increase it. Did you try using something like NTP to keep it constantly in sync?

Thanks @kumar303  for your replies. The issue is definitely my side (client side), my clock. :)
tldr:
Is that 5 second allowance here to stay? Or are their plans to make it not so time dependent?
If the time sensitivity stays, do we have any sure fire techniques to ensure time is on target?
Reasons why I ask:
I'm worried about this time sensitivity because I'm landing this in my addon, which takes extensions on chrome webstore, turns it into an xpi (appends -foxified to their id), signs it with this api, and installs it into firefox. So users of this addon will be calling the API.
If their clocks are out of sync, it's an issue that needs troubleshooting, which is bad on my part as the dev of that addon.
If the time sensitivity stays, I have brainstormed two techqniues to handle it, does the team have any recommendations to people who run into this? These are my ideas:

Get a server, sync that server to NTP every so often, setup webpage that my addon can hit, on load it gives a time (or token). Then addon uses that as credentials.
Prompt the users on failed credentials, and ask for permission to sync their system clocks, and do it for them. (i dont think the average addon installer of chrome addons knows how to sync clocks haha)

Thanks for the replies, I know we're talking about a topic other then the original post, really appreciate it!

Is that 5 second allowance here to stay? Or are their plans to make it not so time dependent?

by nature, JWTs are time dependent. We could increase the 5 second allowance if needed but that doesn't sound like a perfect solution here.

Does the AMO API offer a page I can hit to get a proper time that I can use to calculate a token...?

It doesn't but we could add something like this. I'd suggest filing a separate issue for that.

I'm landing this in my addon, which takes extensions on chrome webstore, turns it into an xpi (appends -foxified to their id), signs it with this api, and installs it into firefox. So users of this addon will be calling the API.

This suggests to me that you are exposing your secret API key in your add-on code because that's the only way users could make signed requests to the API on your behalf (or are they expected to configure their own API credentials?). Either way, the API currently isn't designed to be used from an unprotected environment such as a browser. We plan to support this environment but will need to implement something more like Oauth for it to be secure.
You could consider creating an intermediate server that the add-on can use to safely proxy API requests. On the server you can run NTP to guarantee its clock is in sync when creating JWTs. You have to be very careful with this approach, however, because if you allow any arbitrary source code to be signed with your API credentials through the proxy, then malware could be traced back to you (which you probably don't want).

One way to make the proxy secure is to let the caller only provide an ID of the Chrome store extension. The proxy server would then fetch code securely from the Chrome store before converting and signing.

@kumar303 thanks for those super cool ideas!! I like that server doing all the heavy lifting idea!


CSS attribute selectors in media queries

In styled-components, you can use CSS attribute selectors in media queries, like in regular CSS:
@media screen and (min-width: 1024px){
  #componentId[data-responsive=“true”] {
    padding-top: 100px;
    background-color: red;
  }
}

Is this possible in rs-css?

Well, we could hack a way to make this possible, but that would impact perfs, and I don't see why you would need this. Why not just putting the media-query in the component denoted by "ComponentId"

It's a long story. Just to clarify first: Will rn-css output all component styles to a className prop, like styled-component does, when used on web?

Your question makes sense for web but not so much for native... The thing that you could do is creating an high order component that would maps the components to their ids or to a className, and use a context to keep it accessible to the descending components. That's how I would implement it in rn-css if I had too, but I don't think that it should be done as it would mean that you have to create your descending component using rn-css, and from what you say, this seems impossible.
So, ask like that, the answer is "it's impossible" because of the way react native handles style. Now if you more details, we can probably find a workaround.

Ah, I see now that rn-css uses the RNW style prop to pass styles to components. That's good! I was worried about RNW's deprecation of using the className prop in favor of using "a data-* attribute and target that with your CSS", which I was attempting to do above. I worried it would affect this library, as it does if you use styled-components to generate the media queries for web. I was just a bit confused about this library's similarity with styled-components. Luckily rn-css doesn't carry the same flaw!
(Sidenote maybe useful for someone's future reference: Why not set data-* attributes with attr, which is supported in rn-css or styled-components? Because RNW as of Jun 2020 also no longer supports forwarding of data-* attributes not explicitly set with the dataSet prop. So using attr in rn-css or styled-components for setting CSS attributes wouldn't work anyway. It's dataSet all the way. If you follow my initial example it would be <View id="componentId" dataSet={{ responsive: "true" }} />, in case the CSS couldn't be targeted directly to the component, as in the className case. Luckily, it is not needed in rn-css since it uses the style prop to directly target CSS to components.)

Well... I'm not 100% I understood your message but you seem happy, so I guess that I can close this thread? 🙂

Yes, hehe. :) No need for me at this time. You could always reopen it if someone needs it later.