Fix checkstyle issues

This includes fixing of static code analysis issues.

Looks good for me 👍

Let's keep this FTR


Often get this error in cows and chaos sanctuary

When this happened the bot just stopped doing anything and just stood and got killed by cows.
Details
level=WARN msg="Game finished with errors, reason: unrecoverable error occurred, game can not continue: attempt limit reached on step: InteractObjectStep: object 141 could not be interacted. Game total time: 333.25s"
Why does this happen in those areas?
Version
beta6

Looks like it can not reach a chest, let me look to this interaction error, it happens very often and it's annoying

Interactions have been re-written in the newer versions and shouldn't be an issue.


Allow VM class to specify what ChainDB class it uses.

What is wrong?
In #350 the differences between shard collations and blocks required a bit of a hack to make the persist_block_to_db to work with both blocks and collations.
While we could try to sufficiently abstract the API, such as separating things into persist_block_to_db and persist_collation_to_db, I don't believe this is the right solution.  Eventually, we are bound to have either blocks, transactions, or something that require more such logic forks to handle.
Py-EVM has so far largely avoided these types of logic forks in it's code by sufficiently abstracting the overall API so that underlying implementations can be swapped out within each VM.
How can it be fixed
I think that the Chain class should be modified so that it takes a backend DB type, and then delegates to the active VM for the appropriate block number to get the ChainDB.  Each VM class can then define their own ChainDB class.  Then the ShardVM class can expose it's own ChainDB class with modified persist_block_to_db method.

Here's the usage profile I see for the ChainDB

The VM class:

get_block_uncles
get_block_transactoins
get_receipts
persist_trie_data_dict_to_db
get_block_header_by_hash
get_pending_transaction
clear

The VMState class:

get_state_db
exists
snapshot
revert
commit

The Chain class:
get_transaction_index
get_transaction_by_index
add_pending_transaction
get_block_header_by_hash
get_canonical_head
lookup_block_hash
persist_block_to_db

High level analysis:

The VM usage mostly is centered around retrieving Block data to instantiate blocks.
The VMState is isolated to snapshot/revert/commit API and access to the underlying db backend for the state database.
The Chain class deals with the broadest usage, retrieving transaction information, storing blocks/headers, and looking up blocks/headers, as well as the canonical chain information.

One way to look at this (but that I'm not sure is correct).
We might benefit from isolating our database usage.
I'm going to define two terms

Database Backend: A low level connection to a database.  Currently we only support key/value store based backends.
Database Adapter: A high level wrapper around a database backend.

In the current code:

Existing backends are the MemoryDB and LevelDB.
We have one existing adapter which is our ChainDB class.

I am proposing that we split up the ChainDB into multiple classes.  Initial starting point looks to be trying out an adapter for each of Chain/VM/VMState since their usage of the current ChainDB don't have very much overlap.

Now to explore actual usage examples.
Light Client
The light client needs basic database access to store and retrieve block headers for the canonical chain.
In order to serve JSON-RPC requests the light client needs to proxy certain Chain methods which would normally access the chain database to instead fetch the needed data from peers.  This use case is orthogonal to this issue since the abstraction layer to accomplish this is likely to be at the Chain object itself since the JSON-RPC server interacts directly with the Chain class.
Full Node
This is the current default mode of operation that we're trying to add flexibility to.  Stores everything.
Stateless client
It's not clear to me exactly what is stored by stateless clients.  Nothing?  Headers?
Log Shard Clients [https://ethresear.ch/t/log-shards-and-emv-abstraction/747](https://ethresear.ch/t/log-shards-and-emv-abstraction/747]
Since this is currently theoretical and I don't know much about it I'm unable to detail exactly how this fits into our architecture.  It sounds like it's an entirely separate VM type with potentially fundamentally different semantics.

So, maybe to tie this all together, though I'm not confident that I've got all the pieces right.

Independent adapter implementations for VM give internal flexibility with regard to EVM semantics, enabling different logic for dealing with blocks, transactions, collations.
Independent adapter implementations for the VMState currently have no direct need that I see, but the implementation looks pretty simple.
Independent adapter implementations for the Chain as well as different implementations of the Chain class itself should enable the Fill/Light/Stateless use cases.

This is probably at least tangentially related to https://github.com/ethereum/py-evm/issues/337

So far this is turning out interesting and I think promising.  The VMState object's usage is basically direct database access so it's looking like I may be able to completely eliminate the snapshot/commit/revert API as well as moving the API for the account state database to be directly on the VMState object.

Stateless Node only stores the "state root" and cache recent data (validated collation headers, data from VMC...) in memory.

Sorry for that I just went through it carefully. Some preliminary notes for database adapter:

Transaction and Blob:

Instead of transactions, the recent design is storing blobs as just some binary data.
CollationHeader includes blobs_root instead of transaction_root, copy from @vbuterin: the blobs_root is a simple Patricia tree root, where the keys are two bytes: 0x0000, 0x0001, 0x0002, etc; a collation can contain a maximum of 65536 blobs.
We don't use any transaction-related functions in Phase 1. But probably will be considered and adapted in Phase 2. Right now we could just don't implement them.

CollationHeader and BlockHeader:

Have to rename a lot block_number -> collation_number/score in the adapter...?
A refactoring idea: maybe we can make a number property in BlockHeader class that returns self.block_number and make a  number property in CollationHeader class that returns self.number or self.score, then modify all block_header.block_number usage to block_header.number?

@hwwhww I think your changes to the *Header API would be a good abstraction/improvement.  We could also do away with the block_ and collation_ prefixes and just change the base field names.  I think the fact that the object is a Block or Collation is sufficient justification to remove those prefixes.

Replaced by https://github.com/ethereum/py-evm/issues/507


How to return value on subscribe after post (android)

hi, i need receive value on subscribe after post.
i need to return value. example: myReturnValueFromSubscribe
i post this:
OnEvent onEvent = new OnEvent(obj);
String myReturnValueFromSubscribe =  GlobalBus.getBus().post(onEvent);

and receive:
@Subscribe
public void onEvent(OnEvent obj) {
     // .......
     return ....anything.....; //myReturnValueFromSubscribe
}

is possible and how?
thanks

EventBus and event handling in general does not work like that.
You are describe a synchronous method invocation.

So no, this is not possible with EventBus. -ut

use posting thread of eventbus to listen event. It will block calling thread. You may put return value to passed event object. Thats tricky solution

@kgonul that is a terrible solution. It means that your calling thread is tied to all the receiving threads. Coding in this way will over complicate and cripple your app.
If you need to block execution until you receive a return value, then execute a method, don't try and use an event bus.
If you don't need to block but still need a result when the 2nd operation completes, then have that 2nd operation generates its own event.


Type '{}' is not assignable to type 'never' when constructing a JTDSchema involving "any"

What version of Ajv are you using? Does the issue happen if you use the latest version?
8.9.0
Your typescript code
import {JTDSchemaType} from "ajv/dist/jtd";

type Foo = {
	bar: any[]
}

const schema: JTDSchemaType<Foo> = {
	properties: {
		bar: {
			elements: {}
		}
	}
};

Typescript compiler error messages
index.ts:10:4 - error TS2322: Type '{}' is not assignable to type 'never'.

10    elements: {}
      ~~~~~~~~

Found 1 error.

Describe the change that should be made to address the issue?
Perhaps I'm describing the schema incorrectly, but I'm looking to validate that an array exists at that property, but not what the type of the array is. This also seems to occur when I instead use any instead of any[]. For reference, I'm looking at this portion of the documentation.

I think the problem is that JTDSchemaType does not support any - it has to be a concrete type. It is a limitation that cannot be overcome.


DC Ohmic Losses for pvsystem and modelchain

[x] partially addresses #1069
[x] I am familiar with the contributing guidelines
[x] Tests added
[x] Updates entries to docs/sphinx/source/api.rst for API changes.
[ ] Adds description and name entries in the appropriate "what's new" file in docs/sphinx/source/whatsnew for all changes. Includes link to the GitHub Issue with :issue:`num` or this Pull Request with :pull:`num`. Includes contributor name and/or GitHub username (link with :ghuser:`user`).
[x] New code is fully documented. Includes numpydoc compliant docstrings, examples, and comments where necessary.
[ ] Pull request is nearly complete and ready for detailed review.
[x] Maintainer: Appropriate GitHub Labels and Milestone are assigned to the Pull Request and linked Issue.

Adds functionality for array level losses and adds functions for dc ohmic losses to pvsystem and modelchain. Replaces #1084 for compatibility with Array update.

Ok, let's move on for now. Thanks @ncroft-b4 for the contribution and your patience as we worked through it!

and after I scrolled to the top to go to my notifications I realized that we don't have a whats new entry. Sorry. I can add that in another PR.

I have just quickly scrolled through this and wanted to mention something that may be relevant to someone sometime: PVsyst models DC ohmic losses by increasing the series resistance in the single-diode model parameters.  This seems like a good approach to me, and I suppose one can still do that independently of this new code.


Overview map with youtube background iframe plugin broken

You can get an overview of the slideshow in reveal.js when you press "Escape". Then, the slide "zooms out" and you see an overview of all the slides like post it notes. Very nice.
The youtube background iframe plugin acts weirdly when moving out. The videos are playing in the correct, smaller size, but outside the frame where they should be playing.

Can not reproduce this in Chrome or Firefox, see Screenshot:

In which browser does this happen? Can you please post a screenshot/screenshare.

The video has to be playing, then you hit the "Escape" key. See my example here:

Sorry, but still not sure what about the requirements here.

What should happen when opening the overview map when on a page with no background youtube video?
What should happen when opening the overview map when on a page with a background youtube video and the video paused?
What should happen when opening the overview map when on a page with a background youtube video and the video playing?

In the image above you can see the overview page where the Kottbusser Tor video is playing.
The Kottbusser Tor slide is in the middle of the screen. But the video is playing at the right of the screen.
The size is correct, so in general it seems to work, just the position is off.
Answering your questions:

What should happen when opening the overview map when on a page with no background youtube video? - the slide is in the middle of the overview page. You can try it by hitting 'escape' while in the slide show. Then you can navigate with the cursor keys. If you hit 'escape' again, the center slide will zoom in to full page view again.

What should happen when opening the overview map when on a page with a background youtube video and the video paused? - ideally, the video is just smaller and on the appropriate slide in the middle of the page.

What should happen when opening the overview map when on a page with a background youtube video and the video playing? - ideally, the video pauses and then see point 2.

The most important part is that the video is not in the wrong place. I assume catching the escape key in the plugin complicates matters. If easier: just hide the video when in overview mode and just show the slides.

Background video are now correctly positioned when in overview mode.

The issue still prevails. Yes, when you are on the video and the video is playing and you go into overview, the video is in the right place.
But try this:

go to the first video tests/test-youtube-iframe-bg-reveal.js.html#/1
go into overview (hit escape)
stay in overview and go two slides to the right, going to the next video.

This will still show in the wrong position (see attached image)

If fixing this is too complicated, better to not play the videos in the overview at all.

Video are now hidden in the overview.


React Native - Background Recording for Android

When I called start method of porcupine manager, it wasn't recording and recognising wake word when app went to background or device is blocked. As I understood, in Android I should create foreground service, which recording and recognising. So how can I create porcupine manager inside foreground service?

Our Porcupine React Native package is designed to be fully cross-platform so we intentionally avoided any platform-specific enhancements such as Android foreground service. However, it seems to be quite possible to add a foreground service to your app, so it should be possible to use PorcupineManager from it.
Here's some resources:
https://github.com/voximplant/react-native-foreground-service
https://medium.com/javascript-in-plain-english/react-native-foreground-service-f7fc8e617fba

@laves I tried to add a foreground service in my app by following this tutorial. I would like your feedback about my code (during create the task) :
ReactNativeForegroundService.add_task(
  () => {
    this._porcupineManager.start()
      .then((didStart) => {
        if (didStart) {
          ...
        }
      })
      .catch((err) => {})
    ;
  },
  {
    delay: 0,
    onLoop: false,
    taskId: 'taskid',
    onError: (e) => console.log(`Error logging:`, e)
  }
);

My main question : according to you, do you think it's correct ? Or would you call PorcupineManager.fromKeywords() function (which contains the detection callback) instead the function this._porcupineManager.start() ?

@laves I tried to add a foreground service in my app by following this tutorial. I would like your feedback about my code (during create the task) :
ReactNativeForegroundService.add_task(
  () => {
    this._porcupineManager.start()
      .then((didStart) => {
        if (didStart) {
          ...
        }
      })
      .catch((err) => {})
    ;
  },
  {
    delay: 0,
    onLoop: false,
    taskId: 'taskid',
    onError: (e) => console.log(`Error logging:`, e)
  }
);

My main question : according to you, do you think it's correct ? Or would you call PorcupineManager.fromKeywords() function (which contains the detection callback) instead the function this._porcupineManager.start() ?

Good to hear you were able to get Porcupine on a foreground service. It looks fine to me, but unfortunately, I can't help you with this particular issue, as I haven't done a foreground service in React Native before. You're just going to have to test it out and see how it works! If there are any issues with the React Native SDK during the process, let us know.

Good to hear you were able to get Porcupine on a foreground service. It looks fine to me, but unfortunately, I can't help you with this particular issue, as I haven't done a foreground service in React Native before. You're just going to have to test it out and see how it works! If there are any issues with the React Native SDK during the process, let us know.

@laves thanks for your feedback and I understand what you said. It seems to work fine to me ! The porpucine detection callback is triggered when my app went to background or device is blocked !

@laves thanks for your feedback and I understand what you said. It seems to work fine to me ! The porpucine detection callback is triggered when my app went to background or device is blocked !

@jordan-tpz and where did you call stop of porcupine manager?
Or did you just remove task from ReactNativeForegroundService ?

@jordan-tpz and where did you call stop of porcupine manager?
Or did you just remove task from ReactNativeForegroundService ?

@juraam I use two main functions in my app : startRecordingHotword()and stopRecordingHotword()

In the startRecordingHotword()function :

I register the task (as I have mentionned here) in order to add a foreground service for that. Then I start the task using ReactNativeForegroundService.start() (if you use this package)

In the stopRecordingHotword() function :

I check if that task is running (using ReactNativeForegroundService.is_task_running(). If true, I delete it by calling ReactNativeForegroundService.remove_task(). Then, I stop audio capture and wake word detection by calling this._porcupineManager.stop().
I don't know if it's the better way for this.. But this works fine in my app.

@juraam I use two main functions in my app : startRecordingHotword()and stopRecordingHotword()

In the startRecordingHotword()function :

I register the task (as I have mentionned here) in order to add a foreground service for that. Then I start the task using ReactNativeForegroundService.start() (if you use this package)

In the stopRecordingHotword() function :

I check if that task is running (using ReactNativeForegroundService.is_task_running(). If true, I delete it by calling ReactNativeForegroundService.remove_task(). Then, I stop audio capture and wake word detection by calling this._porcupineManager.stop().
I don't know if it's the better way for this.. But this works fine in my app.

@jordan-tpz
Yes, I use this package too :)
Yes, I understood your code, but what about case when I shut down app with swipe(as I understood, foreground service remains active and goes to headless mode) and then I relaunched app. We have no link to porcupineManager, so how can we stop its?

@jordan-tpz
Yes, I use this package too :)
Yes, I understood your code, but what about case when I shut down app with swipe(as I understood, foreground service remains active and goes to headless mode) and then I relaunched app. We have no link to porcupineManager, so how can we stop its?

@juraam I tried your case. For my app, when I shut down it with swipe, the foreground service remains active (the notification remains in my phone). When I relaunched app, I can always use Porcupine because the detection callback continue to work. But effectively, the foreground service is never stopped during this case. So, do you think it's a problem ?

@juraam I tried your case. For my app, when I shut down it with swipe, the foreground service remains active (the notification remains in my phone). When I relaunched app, I can always use Porcupine because the detection callback continue to work. But effectively, the foreground service is never stopped during this case. So, do you think it's a problem ?

@jordan-tpz after a many tests I wrote my own android module, which works as service(like in documentation), because package React Native Foreground service loads js thread(as I understood from my tests)

@jordan-tpz after a many tests I wrote my own android module, which works as service(like in documentation), because package React Native Foreground service loads js thread(as I understood from my tests)

@juraam thank you for your feedback ! Well done for your module. Does your module include the Porcupine manager ?
But, I don't understand what is the problem if the package React Native service load js thread ? Do you think this will cause a loss of performance for the app or something else ?

@juraam thank you for your feedback ! Well done for your module. Does your module include the Porcupine manager ?
But, I don't understand what is the problem if the package React Native service load js thread ? Do you think this will cause a loss of performance for the app or something else ?


Guides - Improving Build Performance

Stub.
Feel free to comment here if you have ideas on what this guide should cover. Link to potential resources too.

Brunch, for example, claims that they use caching and process only those files that were not changed. In addition to that I know that gulp if configured properly will process only changed files rather then reprocess all of the files in a glob pattern. When I've read webpack documentation I had no idea on how could I structure my build so it will be fast. Does it somehow optimize one .less file that includes all smaller once.
In other words what are the best practices for fast builds in complex setups like typescript->es6->traceur-> webpack2 for tree-shacking. Or less->css->styles (with possible hot reload?)
Is there anything on this topic?

And what about eslint in loader chain? How does that affect overall build/rebuild performance.

Great ideas and topics to study. Thanks!

@bebraw I'm looking forward to become an open source participant. I would like to contribute perhaps I could do some kind of investigation and write about it.
The challenge is I'm new to the open source world as well as I'm new to the English documentation writing (not native speaker). Is there any way I might be helpful? If yes then could you give me advice on how to start with webpack docs?

@yuridevx Language won't be an issue as long as the content is solid and well researched. If you can comment around at the issues and help to craft outlines, that would help quite a bit. We'll be developing the content based on this work.
I hope to make another, more focused blog post in two weeks after the direction is clearer and there's a site prototype to show.

To quote @mover96 from #46.

Here is a great write up on a lot of the features of the DLL Plugin (I cannot figure out how to anchor to specific posts on bountysource, but it's near the bottom)
https://www.bountysource.com/issues/28615391-webpack-incremental-builds-are-slow
The biggest point for me is that it cannot be used with CommonChunksPlugin, but there is a lot of good information in the post as well!
Disclaimer: This is my first time submitting to webpack.io, let me know if there are certain conventions I should be following!

State:
The stub link you gave is no more working.
The current guide on performance is full of TODOS.
It seems in the webpack community people are using a mix of:

happypack, loaders applied in a multi cpu way
DLL plugin, split your code into moving and non moving parts
babel-loader cacheDirectory: true
only apply uglifyjs when NODE_ENV=production
only generate hash files when NODE_ENV=production
http://www.slideshare.net/trueter/how-to-make-your-webpack-builds-10x-faster

Happy perf! :)

@vvo good catch -- I updated the link in that comment. By any chance would you be interested in taking a stab at completing that guide?

@bebraw those links in @vvo's comment and the slideshare are a good start... do you have anything on SurviveJS already that deals with build performance? Maybe between that and the other information here we'd have a good start. #1337 removes the current stub as it's still all TODOs and makes our current review a bit easier but there's a few ideas there as well (if you view the history).
I'm not familiar enough with these optimizations to pick this up myself atm, so it would be great if someone else could dig into this!

@skipjack I have one chapter on the topic.

Ok great, I added the Help Wanted tag... hopefully someone sees it and has time to pick this up!

(if anyone starts this, please put a comment as I might do it "at some point")

Closing thanks to @sokra with #1506 merged! 🎉  🎉
@vvo sorry I don't think he noticed this comment but please feel free to submit any follow up PRs if there's more content you think can be added or things that could be elaborated.


jsr can avoid native binary downloads

JSR has support for including arbitrary files in a published package https://jsr.io/docs/publishing-packages#filtering-files. That means you could avoid the fetch step during startup and remove two permissions needed during first launch (--allow-net, --allow-write). The actual config would look something like this:
  "publish": {
    "include": [
      "built_native_deps/**/*"
    ]
  }

The downside here is that until jsr has smarter retrieval logic, all native dependencies will be fetched by all platforms, so thats a tradeoff worth thinking about. Imo though this is the right direction rather than an implicit fetch step during first startup.

The download size of sqlite on JSR would become quite huge if we add all platform binaries. Until there is smarter retrieval logic, I'm not sure about increasing the download size by that much. You can check the binaries size here: https://github.com/denodrivers/sqlite3/releases/tag/0.11.1 - all that being downloaded on all platforms will be not a good idea...
There might be ways around it... for example by publishing platform specific modules that contain just the binaries, and then dynamically import that platform specific module, which will put the binary in the cache, and then perhaps we can figure out how to obtain the location for that. Not sure how this plays with static analysis, but worth trying if it even works.
Node-API modules on NPM do something similar, they publish packages like {name}-darwin-arm64 etc, specify OS in package.json, add it as optional dependency in main bindings package.


Add aria-label attribute to graphical buttons

Hey,
I'm a blind TiddlyWiki user trying to use this plugin in a few projects. TiddlyWiki is by and large accessible, and by extension so is Projectify, but there are some buttons that are essentially just span tags with no associated text, rather than button elements with their associated a11y benefits.
Ideally these could all be <button/> but if they can't be, could you please add aria-label="..." or alt text to these images buttons? I'm poking around in the source to try doing it myself, but there's a bit of a chicken and egg in that I can't figure out what some of these do just from context, or from clicking on them in the demo.
Thanks.

Hi @ndarilek, thanks for the suggestion, I will make sure Projectify is more accessible.


feat: 62 user story client implementing handlers for upgrade client

Description:
Commit Message
feat: implement upgrade client handler

see the guidelines for commit messages.
Checklist:

[x] I have performed a self-review of my own code
[x] I have documented my code in accordance with the documentation guidelines
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have run the unit tests
[ ] I only have one commit (if not, squash them into one commit).
[x] I have a descriptive commit message that adheres to the commit message guidelines

Please review the CONTRIBUTING.md file for detailed contributing guidelines.

Codecov Report

Merging #195 (0781b67) into main (f27e901) will decrease coverage by 1.15%.
The diff coverage is 1.49%.

@@            Coverage Diff             @@
##             main     #195      +/-   ##
==========================================
- Coverage   51.05%   49.91%   -1.15%
==========================================
  Files          64       64
  Lines        5602     5730     +128
==========================================
  Hits         2860     2860
- Misses       2742     2870     +128

Impacted Files
Coverage Δ

...cosmwasm-vm/cw-ibc-core/src/ics02_client/client.rs
69.25% <0.00%> (ø)

...osmwasm-vm/cw-ibc-core/src/ics02_client/handler.rs
55.30% <0.00%> (-30.78%)
:arrow_down:

...cosmwasm-vm/cw-ibc-core/src/ics02_client/events.rs
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Refactor finalize. Closes #1431, #1451

This pull request addresses the problems described at issue #1388
This PR removes the merge conflicts from #1431 and the commit of #1451 was cherry picked.
It also contains some smaller bug fixes.

CC @felipesanches

Awesome work!

I suggest we cut a 0.3.0 release when this is merged :)

yes, we'll have a 0.3.0 release very very soon, but not immediately after merging. There are a few [new-arch] issues on the issue tracker that could be addressed before the release.
But I'll merge this PR now since there's no point in keeping the old code on master from now on.
Thanks folks for all the support I've got in the past weeks to get this done! I'm pretty sure this is a great step in quality for FontBakery! :-D
(next big leap will be the "testsuite for the testsuite")

In particular, I must highlight Lasse's work designing and implementing the base infrastructure on top of which I was able to port our whole codebase.

yes, we'll have a 0.3.0 release very very soon, but not immediately after merging. There are a few [new-arch] issues on the issue tracker that could be addressed before the release.

Okay cool, I moved all those new-arch issues into the 0.3.0 milestone, https://github.com/googlefonts/fontbakery/milestone/58

Thanks!


Override Tremendous::Error#to_s to avoid raising parse error

Following on from https://github.com/tremendous-rewards/tremendous-ruby/pull/13, we're still getting a parser error when calling Tremendous::Error#to_s implicitly by including it in a string such as this:
begin
  client.orders.create!(**payload)
rescue StandardError => e
  Rails.logger.error("Error response from Tremendous: #{e}")
end

This is happening because Ruby calls to_s on the parameter passed into the error constructor.
In this case, it's the HTTParty response, which then calls parsed_response, raising the error.
This solution just overrides that method to return the message method return value.

Thanks, @ricksuggs. Did you see this error today again? This should be a pretty rare edge case 🤔

We didn't see the error again yet. It happens a few times a month, though. It's something I noticed when writing a test.


Issue 82

removed trailing spaces from .travis.yml
Fixed Issue #82

the list of commits seems to do more than what you described.  did you include other commits by mistake?

yes, sorry about that.. will fix it

closing this PR for incorrect changes


Maximum throughput value detection

Regarding the 'Limit the sync client upload rate to a percentage of throughput' setting, can Microsoft advise exactly how the throughput is detected?
I assumed it would be a percent of the NIC's limitations, but it sounds like an internet speed test is carried out - "the maximum throughput value detected by the sync app can sometimes be higher or lower than expected because of the different traffic throttling mechanisms that your Internet Service Provider (ISP) might use."
Some clarity on what's going on would be great :-)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 04ad2f16-c861-7a1b-5c1d-e4601e8f3855
Version Independent ID: c47df4cd-f706-d807-5eac-172fba1e500f
Content: Use Group Policy to control OneDrive sync settings
Content Source: OneDrive/use-group-policy.md
Service: one-drive
GitHub Login: @kaarins
Microsoft Alias: kaarins

@ruairidhlc  Thank you for submitting feedback and contributing to the docs. We are currently investigating this.

@kaarins Kaarin 👍 how are you? Can we provide some Product Group information on the method used to detect the throughput? Thank you

@kaarins Kaarin, can you please step in to shed some light here? Thank you!

@andreyesipov can you provide more info? Thanks!

Hi, Everyone. The way this value is recorded is outlined here https://docs.microsoft.com/en-us/onedrive/use-group-policy#AutomaticUploadBandwidthPercentage. But in essence, when the sync client uploads the files it will periodically record (within a 1 minute period) the maximum available rate that the file can get uploaded at. Available network speeds + ISP settings + the number of files being uploaded from the sync client in parallel (more files uploaded in parallel from the sync client generally result in higher upload rates vs when uploading a single file) all play a factor in the upload rate.

Hi, Everyone. The way this value is recorded is outlined here https://docs.microsoft.com/en-us/onedrive/use-group-policy#AutomaticUploadBandwidthPercentage. But in essence, when the sync client uploads the files it will periodically record (within a 1 minute period) the maximum available rate that the file can get uploaded at. Available network speeds + ISP settings + the number of files being uploaded from the sync client in parallel (more files uploaded in parallel from the sync client generally result in higher upload rates vs when uploading a single file) all play a factor in the upload rate.

Thanks @andrey-esipov for that explanation !
@ruairidhlc I hope that clarifies it to you.

Hi, Everyone. The way this value is recorded is outlined here https://docs.microsoft.com/en-us/onedrive/use-group-policy#AutomaticUploadBandwidthPercentage. But in essence, when the sync client uploads the files it will periodically record (within a 1 minute period) the maximum available rate that the file can get uploaded at. Available network speeds + ISP settings + the number of files being uploaded from the sync client in parallel (more files uploaded in parallel from the sync client generally result in higher upload rates vs when uploading a single file) all play a factor in the upload rate.

Thanks @andrey-esipov for that explanation !
@ruairidhlc I hope that clarifies it to you.

Perfect :) Thank you.


Make it possible to pick up jars needed for cpp tests from alternativ…

…e location.
This will make it possible to decouple the C++ testing and Maven deploy (which will rebuild jars used in C++ testing).

Investigating the PR build failure.


fix setup_test_client parameters

closes #730
Now when using setup_test_client by passing both ChainConfig and ConsensusParameters, the provided parameters won't be ignored

pub async fn setup_test_client(
    coins: Vec<Coin>,
    messages: Vec<Message>,
    node_config: Option<Config>,
    chain_config: Option<ChainConfig>,
    consensus_parameters_config: Option<ConsensusParameters>,
)

regarding the second part of this PR, I can suggest that we create a builder pattern struct and put all the parameters we need in it. :man_shrugging:

pub async fn setup_test_client(
    coins: Vec<Coin>,
    messages: Vec<Message>,
    node_config: Option<Config>,
    chain_config: Option<ChainConfig>,
    consensus_parameters_config: Option<ConsensusParameters>,
)

regarding the second part of this PR, I can suggest that we create a builder pattern struct and put all the parameters we need in it. 🤷♂ @digorithm
or we could exclude consensus_parameters because we already have them in ChainConfig and user could do something like this:
let chain_config = ChainConfig {
    transaction_parameters: ConsensusParameters::default(),
    ..ChainConfig::local_testnet()
};

That makes sense to me @Salka1988.


bump jupyterhub chart

gets https://github.com/jupyterhub/zero-to-jupyterhub-k8s/pull/302 preventing restarting the Hub from shutting down user pods

bumping minikube seemed to fix a weird error on helm install (that was reproducible trying to rebuild master that succeeded yesterday). No idea why.


update promotional banner

Summary
Update preheader promotional banner to highlight Kong Summit
Reason
Ask from marketing direct via Slack.

@adamjkuhn it looks like this banner is now being generated remotely and overwriting the banner in the docs site code - after talking to Dragos, it sounds like that's something you implemented recently. If this is the method that the product web team would rather take, then can we remove the files from this repo and manage them remotely only? At the moment, the existence of two versions of this banner on live pages is buggy:

The text is repeating itself:

On page load, the original banner talking about webinars loads first, then it's transformed into the Summit banner.

Merging, Dragos will disable the remote change to the banner.


Dataset collection created for paired datasets

The collection type created for a list of paired dataset does not seem to be correct, or at least it does not work with workflows that required a list of paired datasets.

This was closed in #228


Revamp using ReactJS

Going ahead with basic html and vanilla javascript would be a troublesome process as per the features needed. So I would like to completely revamp the site using React JS with minimalistic UI using bootstrap and framer motion and then go ahead for adding the features mentioned(code editor and quiz).
#GSSOC'21

can you please assign this issue to me?

Hey! I would really like to work on this please allow me to work on this...
-gssoc'21 participant

@ShambhaviSharma0110 @subhangi2731 I've already done the revamping and tested thoroughly in localhost.
But when I hosted it(frontend on netlify and backend on heroku) for demo, I wasnt able to get the auth token from backend.
IDK why it is happening so? If you guys know how to resolve that then please help me.
Once it get merged then we all can go ahead with adding more features for this MERN App.
Repo for revamped app

@subhangi2731 @ShambhaviSharma0110 I have been asking the mentors about this but there is no response from them... I asked them even on discord also but still they just ignored my suggestion!!!


[IconMenu][DropDownMenu] Add an animated property

[ ] PR has tests / docs demo, and is linted.
[x] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[x] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

Please squash. 😄

@mbrooks Squashed to 1 commit


Expand the tracing package to support stackdriver.

This makes an assortment of changes to support the use of non-Zipkin tracing backends for publishing traces from system components based on config-tracing.
The changes to the config are modeled after config-observability, which already has support for prometheus and stackdriver backends for metrics.
/hold
This is on hold until I can properly stage downstream changes to serving and eventing.

cc @greghaynes @mdemirhan @Harwayne for any early feedback they might have.

/lgtm

/hold cancel


Begin style guide: Document conventions

Add a style/ directory.
Add STYLE.md guide to conventions and standards. Beginning with headings.
Addresses https://github.com/coreos-inc/coreos-pages/issues/324

Should we go ahead and make the whole styleguide one document, ie styleguide.md and keep it in the root dir, like the license, etc?
As much as I hate to suggest this, maybe do all caps like the rest, ie STYLEGUIDE.md

We can always break it apart later if needed

Perhaps not in this PR but would love to address the wrapping issue raised in coreos/rkt#1648. Generally speaking, we've tried to stick to a "one sentence per line" policy in markdown documentation because it makes it much easier to review diffs on GitHub.

@jonboulle I break this rule all over the place, so we should try to figure out a rule around that.

dragging in @philips ...

@robszumski Re: file names/directory anticipation: I'm so much in the undecided column that I started on two previous drafts with the file name styleguide.md, then STYLEGUIDE.md in observance of observed local custom. However I moved it into a directory because then each file beneath style/ may have a shorter name and this particular iteration can omit an introduction explaining it is not in fact the Style Guide, etc. This to explain my thinking, rather than argue with urgency for either side.
I had thought about some more-developed later version living in a file named coreos/docs/CONTRIBUTING.md, superseding this PR, following the model of, and linked to from within, existing code contribution guidelines like https://github.com/coreos/etcd/blob/master/CONTRIBUTING.md.

@jonboulle So the source for markdown would look like:
# Markdown line breaks

This is a sample document showing the proposed one-sentence-per-line formatting convention.
This second sentence continues the same paragraph.

This third sentence begins a second paragraph.

## Second heading

This sentence is short.
This sentence is longer.
This sentence is longest.

This sentence is lonely.

Renders as:
Markdown line breaks
This is a sample document showing the proposed one-sentence-per-line formatting convention.
This second sentence continues the same paragraph.
This third sentence begins a second paragraph.
Second heading
This sentence is short.
This sentence is longer.
This sentence is longest.
This sentence is lonely.

Other renderers ignore the single-LF and join lines so separated into paragraphs, but the github renderer seems to obey rather than ignore them.

I'm confused. We do this successfully elsewhere.
On Oct 21, 2015 13:38, "Josh Wood"<EMAIL_ADDRESS>wrote:

@jonboulle https://github.com/jonboulle So the source for markdown
would look like:
Markdown line breaks
This is a sample document showing the proposed one-sentence-per-line formatting convention.
This second sentence continues the same paragraph.
This third sentence begins a second paragraph.
Second heading
This sentence is short.
This sentence is longer.
This sentence is longest.
This sentence is lonely.
Renders as:
Markdown line breaks
This is a sample document showing the proposed one-sentence-per-line
formatting convention.
This second sentence continues the same paragraph.
This third sentence begins a second paragraph.
Second heading
This sentence is short.
This sentence is longer.
This sentence is longest.
This sentence is lonely.

Other renderers ignore the single-LF and join lines so separated into
paragraphs, but the github renderer seems to obey rather than ignore them.
—
Reply to this email directly or view it on GitHub
https://github.com/coreos/docs/pull/633#issuecomment-150017581.

I think the github md interpreter gives different output here in a comments chain vs on displaying a source file, e.g., coreos/docs/README.md. That file when experimentally adjusted toward one-sentence-per-file-line displays as expected, with single LF usually just consumed and ignored. See https://github.com/joshix/docs/commit/81debe73dfd3225c8d65acf40bcd5ad32a20ccc5
One-sentence-per-line:
Pro:

Definitely easier to diff and review.

Con:

More tedious to write
More tedious to read as source and/or in terminal
Does not address 80-char width also discussed in related issue(s)

I'm still in favour of optimising for diff reviews, and am not really concerned about the tediousness of writing it.
Crazy compromise: 80-char width but new sentence always means newline?!

I don't really like the idea of imposing this restriction on all teams just because some teams use poor tooling to review diffs (read GitHub (which still blows my mind)). I'm in favor of an 80-char limit (without the proposed line break) since I get work done in a terminal and that is where the docs need to be readable.

@joshix care to make an executive decision on this one?

Sure. Let me hang the exit sign on the bikeshed door:

One-sentence-per-line: Nice idea. But formatting concerns begin to tread on the ideas the reader is trying to understand, the writer is trying to communicate. The text becomes fussy and stops looking like paragraphs when read in markdown source form. The value added in reviewing is, to me, minimal. Write natural english sentences and paragraphs, not one-sentence-per-line.

Character per line limit: Obey projects' 80-char per line rule. URLs and other literal formations can break this rule for a line or two. Use common sense, but generally wrap your lines at around char 80.
Markdown compiler is the source of truth.

I intend to write as much into the CONTRIBUTING guide and update this PR, unless anyone thinks I should be set on fire instead.
Cf. https://github.com/google/styleguide/blob/gh-pages/docguide/style.md#character-line-limit

Markdown compiler is the source of truth.

I don't follow, source of truth for what?

Just about whether or not something can or cannot be line-wrapped.

SGTM, probably best to get an ack from @philips as AIUI he's the initiator
of the one-sentence-per-line style
On Wed, Nov 18, 2015 at 1:14 PM, Josh Wood<EMAIL_ADDRESS>wrote:

Just about whether or not something can or cannot be line-wrapped.
—
Reply to this email directly or view it on GitHub
https://github.com/coreos/docs/pull/633#issuecomment-157865391.

I still like one sentence per line and it works in nearly all editors. The 80 char rule gets you into doc churn hell because everyone's editor is going to do something different whether that be wrapping to 79, wrapping words with dashes, etc.

@philips Since we don't agree, let me spell out my reasoning and you can make the ruling. I thought about the points you raise, but I came down to two points: 1) as @crawford alludes, part of the intent of Markdown is plain-text readability. The source document is supposed to be a fair rough representation of the document as rendered. We write the kind of docs with markdown that one would expect to read in a terminal. The one sentence-per-line rule makes this pretty terrible. Nothing looks like a paragraph. I presumed (not knowing the history) that markdown was chosen for these conventional reasons and therefore those goals were worth preserving.
Having thought it out that way, I compared with some style guides for large repos using Markdown. Google's rules pretty much encapsulate what I was aiming for. Maybe that's confirmation bias. https://github.com/google/styleguide/blob/gh-pages/docguide/style.md#character-line-limit
In order, I would happily concede on the proposed 80-chars per line. I truly think the intent of markdown is writing natural english paragraphs, and I kind of hate humanfmt in general.
I would be forced to concede, but like it much less, if we had to adopt one-sentence-per-line all over.

Note: spec unordered list style (* Item)

Just my X cents here:
I think that introducing one style over all CoreOS projects by asking people for their opinions is a mistake. The more people you ask the more strong and mutually exclusive opinions you get.
Right now there is a contention over "one sentence per line" (@jonboulle, @philips) vs "limit to 80 chars" (@crawford) paragraph style. Same with "New York Time" (@joshix) and "Sentence without period" (@jonboulle) heading style. I'd allow both styles for paragraphs and heading, but with a caveat that each project have to decide which style it will use, otherwise it's New York Times with 80 chars limit.

I should clarify that my preference is not strictly sentence-per-line, but rather avoiding line length limits. I'm +1 on the proposed paragraph-per-line.

YAML files: secret.yaml vs secret.yml
Set style for this. Before deciding, note that upstream k8s tends to say *.yaml.

@robszumski @meghanschofield @philips I think we could land this as a delightful holiday gift for one and all. Would enjoy your parting thoughts on same.

Added a few comments, but overall looks good.


feat(718): view issue: assignee and reporter email

https://github.com/ankitpokhrel/jira-cli/issues/718
This change only applies to the jira issue view <key> command. Parsing and displaying email addresses of the assignee and the reporter of the viewed issue if the emails are present in the Jira API response.

Hi @mpalahuta, could you please help me understand the usecase for this? In the issue report you mentioned this is for consistency. Do you mean to be consistent with what we are parsing from the API response?

Yep, exactly! However, since we’re gonna output the raw API response this PR is no longer relevant, closing it. Thanks!


Implement MONITORING or PROMISCUOUS mode

Extend beyond the hubot spec.  Enable powerful custom bots designed for Rocket.Chat
Enable bot scripts to handle ALL the incoming messages arriving into the system - from ALL the channels, private groups, and DMs that the bot user has permission to access.
Must maintain backwards compatibility with existing hubot scripts that DO NOT know about such extension.

No need for extension.  Achievable within hubot spec via:
module.exports = (robot) ->
        robot.hear /.*/, (res) ->
                 process --  res.match[0] ---


cannot find the proximity sensor's UUID on raspberry pi (ReferenceError)

Hi,
I'm using the estimote proximity beacons for my autonomous vehicle project. The raspberry pi is mounted on the vehicle, so when the vehicle moves the pi detects the proximity sensor ID and the distance between the sensor and the pi. I'm using the noble library on raspbian stretch OS.  The program prints out the macAdress, rssi and distance.
The issue is that when I tried to print the UUID and txpowerLevel of the each beacon , I got an reference error saying that "advertisment is not defined"
Could someone help me to fix the error.
Thanks in advance for your help!
Here is the node.js code that I'm using
const BeaconScanner = require("node-beacon-scanner");
const Noble = require("noble");

noble.on('stateChange', function(state) {
if (state === 'poweredOn')
//noble.startScanning([], true); // any service UUID, allow duplicates
noble.startScanning();
else
noble.stopScanning();
});

noble.on('discover', function(peripheral) {
var macAddress = peripheral.uuid;
var rss = peripheral.rssi;
var id = peripheral.id;
var advertisment = peripheral.advertisment;
var txPowerLevel = advertisement.txPowerLevel;
var serviceUuids = advertisement.serviceUuids;
var txPower = -59 //hard coded power value

  if (rss == 0) {
    return -1.0;
  }
  var ratio = rss*1.0/txPower;
  if (ratio < 1.0) {
    return Math.pow(ratio,10);
  }
  else {
  var distance =  (0.89976)*Math.pow(ratio,7.7095)+ 0.111;
   console.log('macAddress: ', macAddress, '  rssi', rss, 'distance' ,distance, txPowerLevel, serviceUuids);
  }
});`

This is the error that I got

`pi@raspberrypi:~/Desktop/ble-project $ sudo node appc.js
/home/pi/ble-project/appc.js:26
var txPowerLevel = advertisement.txPowerLevel;
                   ^

ReferenceError: advertisement is not defined
    at Noble.<anonymous> (/home/pi/ble-project/appc.js:26:20)
    at emitOne (events.js:77:13)
    at Noble.emit (events.js:169:7)
    at Noble.onDiscover (/home/pi/ble-project/node_modules/noble/lib/noble.js:178:10)
    at emitMany (events.js:108:13)
    at emit (events.js:182:7)
    at NobleBindings.onDiscover (/home/pi/ble-project/node_modules/noble/lib/hci-socket/bindings.js:174:10)
    at emitMany (events.js:108:13)
    at emit (events.js:182:7)
    at Gap.onHciLeAdvertisingReport (/home/pi/ble-project/node_modules/noble/lib/hci-socket/gap.js:256:10)`

You don't have variable called advertisement (only  advertisment ). So rename your variable.


dKOM showing NaN

Bug Descripton
On the Ride page with list of all segments a number of the delta KOM times are shown as NaN.
Chrome version
Version 61.0.3163.100 (Official Build) (64-bit)
Plugin version:
5.12.0 stable

Link screenshots or youtube video link if necessary:

@palunel Thx for report

This issue occurs when server sends "N/A" string in field kom_time of JSON response.


YouTube + Android Chrome: setting speed doesn't affect real speed

How to reproduce:

Open demo video on Android Chrome: https://plyr.io/#youtube
Try to set any other speed than normal

Environment

Browser: Android Chrome
Version: 65.0.3325.109
Operating System: Android
Version: 7.0 NRD90M

Isn't this a duplicate of your other issue?

@sampotts Not, it is a different one. Here UI works properly and shows different selected values, but the speed remains the same.

Ahh ok cool 👍 I've found the cause and both are related. Will push it to master shortly.

This is fixed in v3.1.0


[Fix #5358] Handle files conflicts when using bundle gem

bundle gem command fails with an exception when creating a gem having
the same name of a file in the specified path.
For instance:

touch hello
bundle gem hello

This bug is due to Thor gem. At the moment, Thor does not handle
conflicts between files and directories. This commit mitigates the
problem by rescuing the exception from Thor and gracefully exit with an
error message.
Fixes https://github.com/bundler/bundler/issues/5358

@segiddins I have updated the PR. What do you think?

Thanks!
@bundlerbot r+


CERTIFICATE_VERIFY_FAILED - probably related to LetsEncrypt certificate expiration (Sep. 30th, 2021)

Checklist

[ ] I'm reporting a broken site support issue
[X] I've verified that I'm running youtube-dl version 2021.06.06
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar bug reports including closed ones
[X] I've read bugs section in FAQ

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--write-thumbnail', '--write-description', '-v', 'https://www.tele5.de/relic-hunter/ganze-folge/das-zepter/']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.9.2 (CPython) - Linux-5.10.0-9-amd64-x86_64-with-glibc2.31
[debug] exe versions: ffmpeg 4.4, ffprobe 4.4, rtmpdump 2.4
[debug] Proxy map: {}
[debug] Using fake IP <IP_ADDRESS> (DE) as X-Forwarded-For.
[Tele5] das-zepter: Downloading webpage
[debug] Using fake IP <IP_ADDRESS> (DE) as X-Forwarded-For.
[JWPlatform] Kca7WjNI: Downloading JSON metadata
[JWPlatform] Kca7WjNI: Downloading m3u8 information
WARNING: Failed to download m3u8 information: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)>
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/lib/python3/dist-packages/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/usr/lib/python3/dist-packages/youtube_dl/extractor/jwplatform.py", line 46, in _real_extract
    return self._parse_jwplayer_data(json_data, video_id)
  File "/usr/lib/python3/dist-packages/youtube_dl/extractor/common.py", line 2795, in _parse_jwplayer_data
    self._sort_formats(formats)
  File "/usr/lib/python3/dist-packages/youtube_dl/extractor/common.py", line 1374, in _sort_formats
    raise ExtractorError('No video formats found')
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Description

Downloading from Tele5 seems to be impossible because of a certificate error. When using the parameter --no-check-certificate, the download is working properly.
Tele5 is using a LetsEncrypt certificate and there was an expiration of the root certificate (https://letsencrypt.org/2021/10/01/cert-chaining-help.html). Other sites using LetsEncrypt might also be effected, I am using Tele5 for reproducing this bug.

Region restricted:

This content is only available in Germany due to licensing reasons. Big Sorry from your TELE 5 Team.

python -c 'import ssl; print(ssl.OPENSSL_VERSION)'

python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.1.1k  25 Mar 2021

yt-dl depends on its Python and/or the underlying OS being configured properly. Typically, the OpenSSL root certificates are configured with the certifi module (see why), which provides the root certificates from Mozilla:
>>> import certifi
>>> certifi.where()
'/etc/ssl/certs/ca-certificates.crt'
>>>

In which case that module needs to be updated whether via pip or updating a distro package (eg, python3-certifi).
Otherwise your configuration may be taking the root certificates from the OS, in which case the OS needs to be updated (eg ca-certificates package).


PMC magazines in their rigs have FiR ammo

Originally written by chomp

Fixed with: https://dev.sp-tarkov.com/SPT-AKI/Modules/commit/e1b64b55e86e6b3611aa5ef81146ea3358ed3181

Originally written by chomp


Release to the Maven central repo

When/if #149 is merged, could you please release to the central Maven repo? Many thanks.

I am currently working on this. This will be made available very soon.

Possible duplicate of #23

Great, thank you.

@kroikie Do you need any help with this? I'm blocked by this in a couple of issues, but don't want to deploy my fork the the central.

The library is now available:
Group: com.google.gcm
Artifact: gcm-server
Version: 1.0.0

Great, many thanks.

Am 19.01.2016 um 22:31 schrieb Arthur Thompson<EMAIL_ADDRESS>The library is now available:
Group: com.google.gcm
Artifact: gcm-server
Version: 1.0.0
—
Reply to this email directly or view it on GitHub.


here you find help for Mac user

Create the Directory (if it doesn't exist yet)
To ensure that the directory ~/.config/shell-ai/ exists, you can create it using mkdir with the -p flag, which ensures that parent directories are also created if they don't exist:
mkdir -p ~/.config/shell-ai/
Create the File
To create an empty config.json file, you can use the touch command:
touch ~/.config/shell-ai/config.json
Set Permissions
To set the file permissions to 600, you can use the chmod command:
chmod 600 ~/.config/shell-ai/config.json
Here's how you can do all of these in one command:
mkdir -p ~/.config/shell-ai/ && touch ~/.config/shell-ai/config.json && chmod 600 ~/.config/shell-ai/config.json
This one-liner creates the directory, creates the config.json file in that directory, and then sets the file permissions to 600 all in one go.
After you've run these commands, the config.json file should be under ~/.config/shell-ai/, and it should have 600 permissions, meaning that only the owner can read and write to the file.
You can open the config.json file using a text editor of your choice. Here are some ways to do it:
Using Terminal-based Text Editors:
Using Vim
vim ~/.config/shell-ai/config.json
To insert text, press i.
To save and exit, press Esc, then type :wq and press Enter.
Using Nano
nano ~/.config/shell-ai/config.json
To write changes, press Ctrl + O.
To exit, press Ctrl + X.
Using GUI-based Text Editors:
Using Sublime Text (if installed)
subl ~/.config/shell-ai/config.json
Using Visual Studio Code (if installed)
code ~/.config/shell-ai/config.json
Using TextEdit on macOS
open -a "TextEdit" ~/.config/shell-ai/config.json
Any of these commands will open config.json in the text editor you choose, allowing you to view or modify its contents. After you're done, save your changes and close the editor.

Thanks for contributing this guide :) I’ll close it to keep the Issues focused but people who need it can still find it in the list of all issues/through search engines.


bot-sso-adaptivecard

There are many issues with this sample and it doesn't work as shown.
I have followed all the steps to configure Azure AD and Azure Bot Service. I am also able to test the OAuth connection in the Azure Portal with no issues, so I'm confident that the configuration is fine.

adaptivecards-templating package is missing which causes npm start to fail.
After attempting to sign in, the app displays an error.
, most likely as the InvokeResponse is awaited instead of returned in the createAdaptiveCardInvokeResponseAsync function.
An sso token is always returned when inspecting the context value property in the onInvokeActivity function. Due to this the onInitiateSSO function is never executed, I assume this is why the Azure AD consent prompt is never displayed.

@garrytrinder - Thanks for raising this. We will check at our end once and will update you accordingly.

@garrytrinder - We are able to repro this issue.
On installing npm i adaptivecards-templating, adaptivecards-templating package is missing issue got resolved. However, other issues we also encountered as you did.

We have raised a bug for the same. We will inform you once we get any further update from engineering team. Thanks!

Thanks for the update @Prasad-MSFT

Hello @garrytrinder - Sorry for delay in response.
We will check on the bug status with engineering team and let you know the updates.

Hi @ChetanSharma-msft we are facing this issue as well. Any update on when can we expect the fix? Thanks!

Hello Everyone - We are actively looking into it and let you know the updates.

We are closing this issue for now, Please feel free to reopen it, if required.


Select2's input has a searchbox role when it should have a combobox role.

Steps to replicate:

Open any select2 e.g. the basic usage example on your site https://select2.org/getting-started/basic-usage

Inspect the input.  Notice that it has a role of searchbox.
Searchbox means a text input.  Combobox means a text input with an associated listbox that is controlled by the input.  Since select2 is a select with a listbox, it should have the "combobox" role.  https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/searchbox_role https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/combobox_role
The combobox role makes it clearer for screenreader users that there will be an attached listbox dropdown to select from.

Use an automated accessibility checker such as axe devtools.  You will see that an error is thrown saying that aria-expanded is not a permissible property. That is because it doesn't make sense for a searchbox to expand.  If you add the combobox role instead, this error will go away.

I notice this is fixed in your latest version


bug video stream with autoplay enable and mute audio disable

Environment
Docker
Version
0.14.1
Describe the problem
When you add the Audio Stream widget and you enable Autoplay BUT disable Mute Audio, the autoplay stops working
Logs
No response
Context
No response
Please tick the boxes

[X] I confirm that I attached the proper logs
[X] I've read the docs
[X] I've checked for duplicate issues
[X] I've tried to debug myself

That is intended behaviour by your browser. This is done to prevent random websites from spamming you with loud video. There is nothing we can do about this and you must resolve it in your browser configuration. Hope that helps!
Let us know if you have an further questions


Add support for #[feature(cfg_target_has_atomic)]

This is just a temporary PR to show what I described in #7.

As discussed in #7, waiting a couple months for the stabilized target_has_atomic to hit stable and then implementing it without feature flags, is the preferred option at this point. Would you like to update this PR in that way? Alternatively, I could (and would) implement it myself and then we could close this PR now. Whatever you prefer!


Fix testsuite

These commits fix some of the errors in the testsuite and mostly concern unicode handling and retention policy tests.

It seems like the test have failed due to an unrelated HTTP error. I have launched the test suite again!

Hmm what is going on...

OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Unable to establish SSL connection.

I'll open a PR against your branch.

Feel free to fix them!

I'll merge this as it is a great improvement on what we had before.
Thank you for your time @babilen

You are welcome, let's see if we can tackle the remaining issues in due course.


Add scrutinizer.com badge

I saw there is a lot of work done regarding flake8, pylint and other static code analysis checks with Travis.
This is proposal to add scrutinizer (which uses pylint too) and include that another one "opensource-welcome" badge :)

I've polished Scrutinizer config synchronizing it with pylint disabled checks, so Scrutinizer shows only meaningful issues.
For example I liked this bug warning, not sure why it didn't showed with make pylint, maybe Scrutinizer has some unique sniffs.
More: https://scrutinizer-ci.com/g/armab/st2contrib/issues/master

PS. To enable this, just don't forget to add repo in https://scrutinizer-ci.com/

does not use .flake8 and .pylintrc?

Yes and No :)
They have Pylint check which reads .pylintrc, but it's kind of separated check and config is not merged with their own named parameters.
So .pylintrc could be used: https://scrutinizer-ci.com/docs/tools/python/pylint/ for some results, but to get more custom sniffs still need to tick/test those named parameters in their UI.

Also CodeClimate introduced Python checks 1 month ago maybe, in beta for the moment:
https://twitter.com/codeclimate/status/587614231681310721
But they don't have anything useful for now: https://codeclimate.com/github/armab/st2contrib/issues

I have some personal gripes about using something like scrutinizer. We already have linter, flake8, pylint etc. This adds more friction to committing code without much perceivable benefits. What values does scrutinizer add that is not available from flake8, pylint etc? Maybe I am missing something.

they have some custom code checks
it's possible to hide specific false-positive via web interface, instead of suppressing entire rule like this: https://github.com/StackStorm/st2contrib/blob/master/.pylintrc#L10
it shows extended things on classes/modules like Duplication/Size/Complexity/Rating in easy web interface: https://scrutinizer-ci.com/g/armab/st2contrib/code-structure/master
it shows repository statistics/improvements over time: https://scrutinizer-ci.com/g/armab/st2contrib/statistics/
it doesn't seems it would bring some overhead when committing new code
it becomes clear that repo follows some usual coding standards just from the first sight
badge with rating

It looks like those badges doesn't matters, but I believe that people more likely to pay attention when they see such signals such as code coverage/build/license in graphic form, visual perception is very effective.
So in my understanding the biggest benefit here is showing "code quality" flag and attitude to community that repo is alive, active and friendly.

Ok,
I just disabled build failure conditions for Scrutinizer, so the build won't be Red and never annoy anyone.
This allows Scrutinizer to be just optional with their custom checks, web interface and code quality rating.

@armab: As long as these are suggestive and are not going to break the build, I am +1 to merging this.
Thanks for pointing out scrutinizer metrics. Indeed the visual metrics are great.

Yeah, I'm also fine with that as long as the metrics are suggestive and don't block / break the build.

Cool! :tada:


coxcomb positon of inital slice moves depending on total number of slices

Issue:
The position of the first slice on a coxcomb chart moves depending on the number of slices in the chart. Even if the Rotation property is set to 0. This is different to the pie chart where the first slice is always in the same place.

#
Pie
Coxcomb

3

4

5

Expected behavior: the position of the first slice is always in the same page.
ScottPlot Version: 5.0.39
Code Sample:
double[] values = { 5, 2, 8, 4, 8 };
for (int j = 3; j <= 5; j++)
{
    ScottPlot.Plot myPlot1 = new();
    myPlot1.Add.Pie(values.Take(j));
    myPlot1.SavePng("pie" + j + ".png", 400, 300);

    ScottPlot.Plot myPlot2 = new();
    myPlot2.Add.Coxcomb(values.Take(j));
    myPlot2.SavePng("coxcomb" + j + ".png", 400, 300);
}

I think the problem might be the first canvas rotation is done twice:
https://github.com/ScottPlot/ScottPlot/blob/743c9427e63692d31920cc424a0e62b12d6eec4a/src/ScottPlot5/ScottPlot5/Plottables/Coxcomb.cs#L51-L55
so moving line 55 to the end of the for block might fix it

Hi @johndoh,
Looks like you've got it all figured out pretty well. I've tested your solution, everything works as it should. Would you like to do a PullRequest?
The alternative would have been to skip the first rotation more explicitly:
  if (i != 0)
      rp.Canvas.RotateDegrees(rotationPerSlice);

resolved in #4305


Divmod is broken

Code / what did you do
I tried this code:
actor main(env):
    print(divmod(9, 3))
    await async env.exit(0)

Expected outcome
I expected to get the output of divmod, like so
(3,0)

Actual outcome
But I get a segfault
Segmentation fault

If I do something silly, like:
actor main(env)
    a, b = divmod(9, 3)
    print(1*a)
    await async env.exit(0)

I get:
140616826621360

is this some pointer or what am I looking at?
Meta

actonc --version:
acton <IP_ADDRESS>108<IP_ADDRESS>

Fixed by #168. Closing.


Focus visible & remove reach ui

Buttons should only show a focus ring when being focused by keyboard.
Replaced reach-ui by the already included @headless-ui lib.
Added Menu transition

oh noo. merge conflict.. ;)

@bumi fixed


[admin] (Typo) Changing quotation marks to standard character

Docs Build status updates of commit c4d736a:
:clock10: Pending: waiting for processors (23 builds ahead of you)
:warning: Docs Build is busy, currently there are 23 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit c4d736a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/excel/configure-your-add-in-to-use-a-shared-runtime.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


The metadata API needs to expose runtime information to enable tools to show components

There is no way to get the list of components (or health information) on a running Dapr instance that can then be used in tooling such as the CLI, or Dashboard. This feature is to provide a list of components through the metadata API so that the CLI "dapr components" works in self hosted mode (currently only "dapr components -k" works) and the Dapr dashboard https://github.com/dapr/dashboard/issues/135 and VS Code extensions can also show this information.

@msfussell Not sure if this is what you want. I checked the code, and found out it's already supported: https://github.com/dapr/dapr/blob/master/pkg/http/api.go#L1156, but at the same time, I noticed that grpc's impl doesn't align with http's impl, see this:
gPRC's response
	response := &runtimev1pb.GetMetadataResponse{
		ExtendedMetadata:     temp,
		RegisteredComponents: registeredComponents,
	}
	return response, nil

http's response
	mtd := metadata{
		ID:                   a.id,
		ActiveActorsCount:    activeActorsCount,
		Extended:             temp,
		RegisteredComponents: registeredComponents,
	}

	mtdBytes, err := a.json.Marshal(mtd)
	if err != nil {
		msg := NewErrorResponse("ERR_METADATA_GET", fmt.Sprintf(messages.ErrMetadataGet, err))
		respond(reqCtx, withError(fasthttp.StatusInternalServerError, msg))
		log.Debug(msg)
	} else {
		respond(reqCtx, withJSON(fasthttp.StatusOK, mtdBytes))
	}

@artursouza @yaron2 the difference is design or kind of things to sync?

@daixiang0  - Yes, you are right. See https://docs.dapr.io/reference/api/metadata_api/ however you may have discovered a bug in the implementation 👍

This is a bug. The GRPC and HTTP implementations should be equivalent.

In summary, this feature already exists but there is an unrelated bug as per the code sample above.


Combines many dependabot PRs into one

Description of what I changed
I ran merge_all_dependabot_PRs.sh to extract all commits (but needed to make some modifications to the script; will send in a separate PR).

E2E test

TESTED:
Relied on unit/e2e test.
Checklist: I completed these to help reviewers :)

[ ] I have read and will follow the review process.
NOTE: This intentionally has multiple PRs that correspond to dependabot ones, plus extra fixes.

[x] I am familiar with Google Style Guides for the language I have coded in.
No? Please take some time and review Java and Python style guides.

[x] My IDE is configured to follow the Google code styles.
No? Unsure? -> configure your IDE.

[ ] I have added tests to cover my changes. (If you refactored existing code that was well tested you do not have to add tests)

[x] I ran mvn clean package right before creating this pull request and added all formatting changes to my commit.

[x] All new and existing tests passed.

[x] My pull request is based on the latest changes of the master branch.
No? Unsure? -> execute command git pull --rebase upstream master

Update: Everything together failed the e2e with a timeout. Trying to find the culprit, I ran e2e on individual dependabot updates and merged them separately. It seems that this MySQL dep update is the culprit as the same timeout behavior can be seen in this e2e run. Updated this PR with remaining changes except MySQL.

Merging per successful e2e run and the fact that this is only dep updates.


Number of bases not enforced when tax_abundance is set?

Hello,
Thank you for your tool. I have encountered something I don't understand. However I am not sure if it is a bug or if it is wanted.
MeSS version
v0.9.1. Built from source.
Describe the bug
When using an input table with the tax_abundance value set and the --bases argument of mess simulate, the produced samples have bigger sequencing depth than set with --bases.
Minimal example
Use the following input table using example genomes:
fasta	tax_id	tax_abundance	sample
GCF_000418345.1	1280	0.2	sample1
GCF_003812505.1	1290	0.8	sample1
GCF_000418345.1	1280	0.1	sample2
GCF_003812505.1	1290	0.9	sample2

Run the following mess simulate command:
mess simulate --input test_table.tsv --fasta mess/test_data/fastas --threads 10 --bases 2G

Check simulated samples stats:
seqkit stat mess_out/fastq/*

file
format
type
num_seqs
sum_len
min_len
avg_len
max_len

mess_out/fastq/sample1_R1.fq.gz
FASTQ
DNA
24926434
3738965100
150
150.0
150

mess_out/fastq/sample1_R2.fq.gz
FASTQ
DNA
24926434
3738965100
150
150.0
150

mess_out/fastq/sample2_R1.fq.gz
FASTQ
DNA
24173018
3625952700
150
150.0
150

mess_out/fastq/sample2_R2.fq.gz
FASTQ
DNA
24173018
3625952700
150
150.0
150

For Nanopore:
mess simulate --input test_table.tsv --fasta mess/test_data/fastas --threads 10 --bases 2G --tech nanopore
seqkit stat mess_out/fastq/*

file
format
type
num_seqs
sum_len
min_len
avg_len
max_len

mess_out/fastq/sample1.fq.gz
FASTQ
DNA
837930
7478571786
95
8925.1
75727

mess_out/fastq/sample2.fq.gz
FASTQ
DNA
810676
7252585866
93
8946.3
75844

Samples don't have 2 Gbp.
Is it normal behavior since --bases is described as "per sample base counts" ? If so, what is the correct way to simulate samples with taxa abundances and sequencing depth both set?
Thank you in advance.

Hello @baptwr and thank you for using mess !
We realized with @CarraraAlessia  that tax_abundance calculations were wrong and we fixed them in the dev branch  (fixed with a59196d2d993a9f79ec6ef8fb59892ed3315d318 and 2dbd7f36095a70fcff4bdfe8d3338588e45e2d90)
Can you try to checkout the dev branch and update us if it fixed your bug ?
The changes will be included in the next release.

Hello @baptwr,
I did some more digging and it turns out that the bug is due to concatenating fastqs several times. This happens when the input contains more than one sample with the same genomes. Which is the case in the example below:
fasta	tax_id	tax_abundance	sample
GCF_000418345.1	1280	0.2	sample1
GCF_003812505.1	1290	0.8	sample1
GCF_000418345.1	1280	0.1	sample2
GCF_003812505.1	1290	0.9	sample2

I fixed the issue with 61ab8592d383889d647a71911e72fc11ace2155e in the dev branch, and reran mess for both Illumina and Nanopore :

Illumina

mess simulate --input test_table.tsv --fasta fastas --threads 17 --bases 2G -o mess_out/illumina --sdm apptainer
seqkit stats mess_out/illumina/fastq/*

file
format
type
num_seqs
sum_len
min_len
avg_len
max_len

mess_out/illumina/fastq/sample1_R1.fq.gz
FASTQ
DNA
6666096
999914400
150
150.0
150

mess_out/illumina/fastq/sample1_R2.fq.gz
FASTQ
DNA
6666096
999914400
150
150.0
150

mess_out/illumina/fastq/sample2_R1.fq.gz
FASTQ
DNA
6666041
999906150
150
150.0
150

mess_out/illumina/fastq/sample2_R2.fq.gz
FASTQ
DNA
6666041
999906150
150
150.0
150

Nanopore

mess simulate --input test_table.tsv --fasta fastas --threads 17 --bases 2G -o mess_out/nanopore --sdm apptainer --tech nanopore
seqkit stats mess_out/nanopore/fastq/*

file
format
type
num_seqs
sum_len
min_len
avg_len
max_len

mess_out/nanopore/fastq/sample1.fq.gz
FASTQ
DNA
223587
2000000361
95
8945.1
70023

mess_out/nanopore/fastq/sample2.fq.gz
FASTQ
DNA
223825
2000000279
94
8935.6
75844

I will include the fix in the next release.
Let me know if you find any other issues !


[numbers] support JUnit 5 tests

I think the recommended way is to use the JUnit Bill of Materials which contains all the versions which work together:
  <dependencyManagement>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <!-- define this in properties -->
        <version>${numbers.junit.bom.version}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <!-- Include what you require without version numbers.
       They are all in the BOM. -->
  <dependencies>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- For IDE support -->
    <dependency>
      <groupId>org.junit.platform</groupId>
      <artifactId>junit-platform-launcher</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- For JUnit 4 support -->
    <dependency>
      <groupId>org.junit.platform</groupId>
      <artifactId>junit-platform-runner</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.vintage</groupId>
      <artifactId>junit-vintage-engine</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

You can see what it bundles on Maven repository org.junit:junit-bom:5.4.2.
I am not sure how it works with the legacy junit 4 dependency. I would try deleting that from the POM and just trying with the vintage engine dependency.

Coverage remained the same at 93.642% when pulling 7401e53077aa7691f574156f749aadc027305fb4 on grimreaper:eax/junit5-support into d01c9e71ab1e2eb843951af641ee712ab9178a12 on apache:master.

@aherbert what about this iteration? aherbert
(also, you're allowed to push to this branch if it'd help)

Looks fine. Let's see if Travis can run all the tests.

Updated. Travis failed previously on coveralls related errors but not on the core tests.

Pushed as fccc6fee3d69b42b1f201a0ff9458131ccfcc5f0. Hope I did that right.

I've pulled master and the changes are there. Downstream PRs for the switch to JUnit 5 should all be OK.

actually see 6bcc6d9a16bea265243f68b298713d10abb09224


Quick fix: banner to indicate service disruption due to openAI

This is to merge fast. Meanwhile, will improve for it not to overwrite the logo etc.

:+1:


Async methods

I think it could be useful with async methods too, when you not only want to prevent abuse, but also don't want the regex matching to block other work, which can be important in a server context.
We could do the matching on a worker thread and then send the result back to the main process. This should be possible on both Node.js and the browser.
This is not something I plan to work on, but a good pull request would be welcomed if you need this.
See https://github.com/sindresorhus/crypto-hash/blob/main/index.js for an example of how it could be done.

Create worker
Run task on worker.
If task doesn't complete before the timeout, terminate the worker and restart it with every other task.

Revised:

Create worker
Run task on worker
Close worker

Timeout shall apply to the worker and not the function executed by it.

I made something for this: https://github.com/sindresorhus/make-asynchronous

A nice thing about the async approach is that the worker can be terminate at any time, so it could be used to stop regexes in any environment.


Proto file with keyword dyn fails to compile

Repro
Was trying to compile: https://github.com/googleapis/googleapis/blob/master/google/api/expr/v1alpha1/checked.proto
which has a oneof definition that includes:
  // The kind of type.
  oneof type_kind {
    // Dynamic type.
    google.protobuf.Empty dyn = 1;

I didn't create these proto definitions and do not control them. dyn seems like a poor choice for a name but that's what it is.
Actual Results
error: expected identifier, found keyword `dyn`
   --> src/protos/checked.rs:361:5
    |
361 |     dyn(::protobuf::well_known_types::Empty),
    |     ^^^ expected identifier, found keyword
    |
help: you can escape reserved keywords to use them as identifiers
    |
361 |     r#dyn(::protobuf::well_known_types::Empty),
    |     ^^^^^

Expected results
I'm thinking either the generated name needs some generated prefixed or as the compiler indicates the r# prefix added.

Should be fixed in 2.10.2. Thanks!


[4pt]  - Create feature: add new comment - Student B

Implement the "add new comment" form on the Comments pop up according to the wireframe:

When the user clicks on the "Comment" button, the data is recorded in the Involvement API and the screen is updated.

Hi @ikennarichard ,
Good job on:

Adding a comment to API on form submission
Updating comment display
Fixing linter errors

Best,


Updating tsconfig

Closes #188
Also some folder cleanup for templates and unused path aliases

This PR should allow us to build locally again. @ericvalcik @ChcJohnie

Nice fix, was wondering how to fix the failing local build. Can we remove .vercelignore now since package/cli is already being excluded by tsconfig?

@ericvalcik good catch! I missed this.


Add Light Theme light.js and clean up colors.js

Details

In this PR, I am adding a V1 of our light theme as well as doing a first pass clean up of our colors.js file.

Added all of our brand colors as well as the new theme colors to color.js
created a new file light.js to house the new light theme.
Renamed the dark mode color keys from green____ to dark____ to match the theme name.

i.e greenIcons -> darkIcons

Removed a few rogue colors (not in our design system) i.e. greenborderLighter, blueTextPreview
Removed most duplicate color keys in colors.js
Removed an old, unused function getLoginPagePromoStyle() that was referencing old colors

Fixed Issues

$ https://github.com/Expensify/App/issues/21016
Tests

[ ] Verify that no errors appear in the JS console

To Test V1 of Light Mode:

[ ] Add import lightTheme from './light'; and change the export to lightTheme in default.js

To test changes to .storybook/theme.js

[ ] Run storybook following these instructions:

To test the color changes (removed color keys) in dark theme:

[ ] Visually QA tooltips and skeleton UI to match these mocks:

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console

To test the color changes (removed color keys) in dark theme:

[ ] Visually QA tooltips and skeleton UI to match these mocks:

[ ] No light theme QA, will be done when theme switching is live.

PR Author Checklist

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

[ ] I added steps for local testing in the Tests section
[ ] I added steps for the expected offline behavior in the Offline steps section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover 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 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).

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] 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)
[ ] I followed proper code patterns (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

[ ] 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:

[ ] 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 followed the guidelines as stated in the Review Guidelines
[ ] 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)
[ ] 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
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] 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
[ ] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[ ] 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(themeColors.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 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 author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@shawnborton
https://github.com/Expensify/App/assets/38015950/cb09ba3c-c6f3-468c-a1f4-5cb11caa4401
I've added the light theme V1 in this PR. I think the main tweaks we may make to the theme are in the hovers / icon hovers.
We can either QA this with this PR or QA when we go live- do you have the bandwidth to do a first pass of the theme to see if there's anything that needs to be tweaked? I can send screenshots as needed

Are you able to spin up a test build so I can test it locally?

Assigned @allroundexperts ! I'll fix merge conflicts

Fixed merge conflicts!

@allroundexperts could you QA tooltips, skeleton UI, and link previews to ensure that the colors match that in the description

@allroundexperts for the above, just QAing dark mode is fine!

For the toggle color, let's try it with colors.border, and it should look good on both light and dark.
When you say the tooltip colors are inconsistent, can you explain exactly what the inconsistency is?

That's working as intended. If a user does not have a display name set, their primary login becomes their display name and thus uses the bold/dark font.

Will update this PR!

@allroundexperts thank you so much for your patience here! I've merged main and addressed the switch colors. I'm going to run a test build to help ease QA, so you should see that in ~1 hour.

Use the links below to test this build in android and iOS. Happy testing!

:test_tube::test_tube: Use the links below to test this build in android and iOS. Happy testing! :test_tube::test_tube:

android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/22986/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/22986/index.html

desktop :computer:
web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/22986/NewExpensify.dmg
https://22986.pr-testing.expensify.com

This is ready now, removed an antipattern for colors

@allroundexperts fixed lint error, now we should be good for review 🙏

:test_tube::test_tube: Use the links below to test this build in android and iOS. Happy testing! :test_tube::test_tube:

android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/22986/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/22986/index.html

desktop :computer:
web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/22986/NewExpensify.dmg
https://22986.pr-testing.expensify.com

:test_tube::test_tube: Use the links below to test this build in android and iOS. Happy testing! :test_tube::test_tube:

android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/22986/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/22986/index.html

desktop :computer:
web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/22986/NewExpensify.dmg
https://22986.pr-testing.expensify.com

Tests pass on adhoc build

@thesahindia sorry for the ping, forgot we changed the logic to assign C+ before engineers.
I need to have this PR merged today @allroundexperts

Looks good! All set to merge @grgia?

@allroundexperts thank you again! I appreciate your speedy C+ review here 🙏

: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.

🚀 Deployed to staging by https://github.com/grgia in version: 1.3.71-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

@grgia What do we check in mweb, desktop and iOS?

@allroundexperts @Li357 Could you help us with what to validate in mweb, desktop and iOS?

🚀 Deployed to production by https://github.com/thienlnam in version: 1.3.71-12 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Print conda packages installed in container

It’s better to print conda packages installed inside the container. This would be super helpful for debug purpose.
2019-12-27 14:45:00.875 [60/start/230 (pid 32448)] [118a3700-e4fe-4474-9c13-c24fde012a96] Downloading code package.
2019-12-27 14:45:00.875 [60/start/230 (pid 32448)] [118a3700-e4fe-4474-9c13-c24fde012a96] Code package downloaded.

You can access the conda packages installed using the client API. Look at the attributes available for the task object.