More ergonomic asset loading to avoid "check if asset is loaded" boilerplate

What problem does this solve or what need does it fill?
Assets need to be loaded before they can be delayed. However, with good reason, the asset loader does not block. In order to deal with this, you either need to wait until all of the assets are loaded or handle the possibility that your assets might not exist.
What solution would you like?
Bevy has a first-class built-in solution with minimal boilerplate. The state solution seems like a nice building block, but I'm not sure exactly what the correct API should be.
What alternative(s) have you considered?
State solution from examples.
Resource solution from cheatbook.
Both of these require a great deal of complex boilerplate.
Additional context
Async systems (#1393) might be the tool to solve this. Distill integration (#708) might also solve this.

What would be interesting to know is why people want to wait for asset to be loaded?

display a loading screen while it's loading? the state solution is perfect for that
transform the asset once it's loaded? #1665 can do that without blocking
display the asset as soon as it's loaded? that should always be handled by the component that holds the asset handle, and bevy's built in components do it correctly

What are the other needs?

why people want to wait for asset to be loaded?

I will describe the situation that I have.
I have a plugin that works with assets and needs to wait until the assets are loaded.
We have two types of assets:

assets with data,
assets with meta data that determines how the data assets are grouped.
The second type is a collection of handles for the first type.
The plugin needs to build a resource that depends on all asset of both the first and second types (asset's content).
In my case, state solution works great - i wait and change plugin's state.

But how the end user will check the plugin state?
He needs to create an additional system that will check the plugin state and change the game state accordingly.
Perhaps (this is just a guess) it would be more convenient to have combinators for states:
.add_system_set(SystemSet::on_update(GameState::Initialize `AND` PluginState::Done))

that should always be handled by the component that holds the asset handle, and bevy's built in components do it correctly

Does this mean that the plugin resource should return a Not Loaded error if you try to access it early?
@mockersf Could you link to this handling?

We have two types of assets:

assets with data,
assets with meta data that determines how the data assets are grouped.

If I understand correctly, you are loading in your plugin directly the two types of asset, and once everything is loaded you bind them together according to the second type.
Ideally, your meta asset loader should handle itself loading the assets with data:

load the meta asset, get the handle

the file will be loaded asynchronously

in meta asset loader, load the meta asset file (we're asynchronous here)

parse how to organise the data assets, load their files, and get their handles. Organise everything with handles

those files will be loaded asynchronously

the meta asset is now holding handles to the data assets

in data asset loader, load the data asset file (we're asynchronous here)

load the actual data

to use your data, you have to wait for the meta asset to finish loading

after that, ideally you just use the handles to the data assets in your components
your plugin systems will be responsible to correctly handle the fact that the handle is not finished loading

to "bypass" the fact that you have to wait for the meta asset to finish loading to access a data asset that you know how to access through a stable identifier, there is the notion of labeled asset.
The Gltf loader is doing all that if you want to take a look.
Of course, if this is even possible really depends on how the assets you want to load are formatted...

Could you link to this handling?

For example rendering will ignore meshes that are not yet loaded:
https://github.com/bevyengine/bevy/blob/45b2db70705da24a89426e6b6e77d603a3983025/crates/bevy_render/src/pipeline/render_pipelines.rs#L97-L101
For assets that holds themselves an Handle (for example, Gltf can have handles to StandardMaterial, Mesh, ...) as the first level of Handle isn't used before it's loaded, and transitively for the handles it contains

What would be interesting to know is why people want to wait for asset to be loaded?
* display a loading screen while it's loading? the state solution is perfect for that

* transform the asset once it's loaded? #1665 can do that without blocking

* display the asset as soon as it's loaded? that should always be handled by the component that holds the asset handle, and bevy's built in components do it correctly

What are the other needs?

While I think the state approach is not bad, I can imagine that keeping track of your essential assets will be annoying and error prone. Imagine forgetting to add your ground collider mesh. On a slower systems they might be not present on-time and the player falls into the void, or even worse, only in 25% of the time.
I would suggest that every asset you load will be part of the essential group, unless explicitly overriden. You would check if your essentials has loaded by something similary like:
 if let LoadState::Loaded =
        asset_server.get_load_state() //name not final...
    {
        state.set_next(AppState::Finished).unwrap();
    }

Assets that are marked as non-esssential or can be streamed (textures, sounds, etc...) can be part of another group, so they don't delay the loading process to long. Something like asset_server.load_lazy("not_so_important_audio_file.ogg");

the essential group

I like that! We would have to discuss the exact API/naming/handle handling... but it would certainly simplify something very common

Here are some questions we need to answer:

How does the user specify "essential assets"?
How does the user specify which systems start immediately vs wait for essential assets?
Is waiting for assets on a system opt in or opt out?
How does a user extend this when they want to customize waiting behavior?

How does the user specify "essential assets"?

@julhe proposal is to have them essential by default and have an optout with load_lazy, I think offering an api like asset_server.load_in_group("myasset.png", MainGame); would be better and allow multiple group

How does the user specify which systems start immediately vs wait for essential assets?
Is waiting for assets on a system opt in or opt out?
How does a user extend this when they want to customize waiting behavior?

This wouldn't handle waiting by default and wouldn't change what is currently available, it just adds a method asset_server.get_group_load_state(MainGame) (actually this method already exists and takes an Iter of handles). The user is still responsible for waiting with a run criteria, a state, ...
Another question is:

does it keep strong or weak handle?

if strong, when are they removed from the assez server to allow cleanup?
if weak, the user still have to record all their handles in a struct somewhere so it doesn't change much

Another question is:
* does it keep strong or weak handle?

  * if strong, when are they removed from the assez server to allow cleanup?
  * if weak, the user still have to record all their handles in a struct somewhere so it doesn't change much

A reference counter should be fine! At the end of each frame, the asset system checks the reference count for each asset and frees up unused ones. (But keeping unused assets around in editor mode?)

How does the user specify "essential assets"?

@julhe proposal is to have them essential by default and have an optout with load_lazy, I think offering an api like asset_server.load_in_group("myasset.png", MainGame); would be better and allow multiple group

How does the user specify which systems start immediately vs wait for essential assets?
Is waiting for assets on a system opt in or opt out?
How does a user extend this when they want to customize waiting behavior?

This wouldn't handle waiting by default and wouldn't change what is currently available, it just adds a method asset_server.get_group_load_state(MainGame) (actually this method already exists and takes an Iter of handles). The user is still responsible for waiting with a run criteria, a state, ...

I think allowing for custom groups is overkill. You could get the same effect by bundeling components into scenes and wait for load completion on theses scenes instead. For now, I would make the API slim:

asset_server.load() -> Handle<T> for most cases.
asset_server.is_loading() -> bool you can check if all assets are ready or display a loadscreen. My idea is that if you use load() while the game is running, all simulation systems hold. Ugly, but neccessary to avoid any error state I mentiont earlier (missing colliders, etc.). Also avoidable by the user.
asset_server.load_lazy() -> Handle<T> for assets you need soon (like an upcomming cutscene). Doesn't block the simulation.

@NiklasEi has made a community crate to address many of these pain points: https://github.com/NiklasEi/bevy_asset_loader
I'm going to experiment with it some more, but I think this is an excellent candidate for integration into the engine itself once it matures a bit more.

Yeah I think it makes that particular pattern much nicer. But before adding a new concept / high level abstraction like AssetCollection, I'd like to see how things like "async system + async asset loading" work out in terms of ergonomics. Ideally we can have lower level primitives that interact with each other ergonomically and allow developers to compose the desired behavior without need to provide higher level abstractions on top.
But if we can't make that work well enough I think integrating something like AssetCollection is probably the right call.

A new user tried to implement this functionality for our Breakout example game as part of #2094. Here's what they found:

as far as I understand, there's no (Bevy) idiomatic way of accomplish this. I've thought of 3 possibilities:

implement states ("loading" and "game"), with the assets loaded on the loading state, which then would switch to the game state once completed; I think this is something very interesting to put on a showcase example. unfortunately (as far as I understand) this is incompatible with the fixed time step; there are hacks to work this around, but I suppose that's not something one would put in an official example (I suppose  that additionally, breakout is one of the first/most commonly looked examples)
implement assets loading as a setup system with a (ugh!) while loop. this works, but I guess it's very unidiomatic
I've seen that Bevy had AssetServer#load_sync on v0.1, which I guess does a synchronous load, but it's not present anymore on 0.5.

Based on the above, it seems that Bevy's not ready for a clean implementation of this functionality. But of course, if you have any indication, I'm happy to implement it :slight_smile:

The gist of it is that #1295 is still frustrating, blocking the most natural solution.

For now, we're going to proceed with a synchronous blocking loading solution, using a loop that sleeps to avoid eating all of the user's compute.

Hi there! I'm the user who tried to implement the above.
First, the use case, in relation to this:

What would be interesting to know is why people want to wait for asset to be loaded?
[...]
What are the other needs?

Error checking :) I may be missing something here, but in the breakout example, if an asset load fails, the game proceeds, without text, and with a warning in the console.
For reference, the related code is this:
TextStyle {
    font: asset_server.load("fonts/FiraSans-Bold.ttf"),
    font_size: 40.0,
    color: Color::rgb(0.5, 0.5, 1.0),
},

I don't see any direct way to control error cases. Maybe there are ways to handle this, but I think that error handling is a legitimate case.
Regarding the solutions:

implement states ("loading" and "game"), with the assets loaded on the loading state [...]
implement assets loading as a setup system with a (ugh!) while loop. this works, but I guess it's very unidiomatic [...]
I've seen that Bevy had AssetServer#load_sync on v0.1, which I guess does a synchronous load, but it's not present anymore on 0.5.

I was wrong (sorry :grimacing:). Solution #2 does not work. As per @TheRawMeatball suspicion, loading assets needs another system to do the work, so blocking the system in a loop will actually not exit, and block the whole game. So, it's even worse :grimacing:

@NiklasEi has made a community crate to address many of these pain points: https://github.com/NiklasEi/bevy_asset_loader

Based on a quick look, I think this uses states, which is my favourite solution, but AFAIK makes it incompatible with FixedTimeStep without trickery.
It'd be interesting to see the trickery that the Bevy Cheatbook mentions.

Error checking

The idiomatic way would be with states... which may be hard to get to work with a fixed time steps.
You could go the old way to do states:

have a resource that hold your state value
start loading your assets, set your resource state to Loading
have a system that run every frame listing to asset loading event

on success, change the resource state to "Game"
on failure, do... whatever you do with asset loading error

in your game play systems that run on a fixed time steps, look at your resource state and exit if it's not Game

@saveriomiroddi there might actually be a good way to do this: impl FromWorld for the assets, and then use app.init_resource. If I understand correctly, this should result in synchronous loading ahead of time and is still idiomatic.

@alice-i-cecile How? You can't load assets synchronously thought the AssetServer.
You could load them manually synchronously, but synchronous means blocking. If you do it during the init phase, it will block either before opening the window, or with an empty window, that doesn't seem something we want?

Oh wait, no, you're right there. AssetServer will never block. Hmm.

Error checking

The idiomatic way would be with states... which may be hard to get to work with a fixed time steps.
You could go the old way to do states:
* have a resource that hold your state value

* start loading your assets, set your resource state to `Loading`

* have a system that run every frame listening to asset loading event

  * on success, change the resource state to `Game`
  * on failure, do... whatever you do with asset loading error

* in your game play systems that run on a fixed time steps, look at your resource state and exit if it's not `Game`

Phew :sweat_smile: I think I won't implement (propose) this in the breakout, though. Unfortunately, the asset loading is part of a setup system (scoreboard), so implementing this strategy (which seems the only one :scream:) would require moving it to the main (as in "running game") systems, which I think is an odd design, at least, something I wouldn't put in an official example/tutorial.
I think it'd be good to put in the Cheat Book, though. I'll open a PR once my current PR on the same subject is merged.
Ultimately, I think the root of the problem is having a FixedTimeStep compatible with states, which is something that @TheRawMeatball at some point will bake :cake: :smile:.

bevy_asset_loader by @NiklasEi has a great write-up of the approach they're using in that crate. Once that's matured a bit more I think we should seriously consider upstreaming much of that approach: it's a serious win.
Of course, it probably also makes sense to see where states end up...


Add config for plugins receving actions from all forms

One possible solution to: https://github.com/erikras/redux-form/issues/4310
If this seems like something we'd want to do, I can polish up this PR more.

Published in v8.1.0.


how to divide levels into sections like indie cross and w.i

Describe your problem here.
I would like to know how to divide the levels into sections such as story mode, bonus song like indie cross or w.i. and no, I'm not going to copy their code, I don't do that.
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No

I'm not entirely sure what indie cross does for levels, but here's an example file I made a few days ago messing with shit and d-sides cycles.

To divide songs into different weeks, you have to create a new week manifest for each "section" you want to add.
Here's an example file for adding a week.
When viewing songs in freeplay, they are ordered by the week sequence (as defined in the json as "weekNext" and "weekBefore", and then those songs in a single week are displayed in the same order as defined in the "songs" part of the json.

To divide songs into different weeks, you have to create a new week manifest for each "section" you want to add. Here's an example file for adding a week.
When viewing songs in freeplay, they are ordered by the week sequence (as defined in the json as "weekNext" and "weekBefore", and then those songs in a single week are displayed in the same order as defined in the "songs" part of the json.
If you want to add "bonus," freeplay-only songs, the whole week file has to define "hideStoryMode" and set its value to true to stop that week from showing up in story mode.

Seriously sorry for the delay but thank you very much, I'm going to try it


Here is my console

To solve this I ran the command npm install --save-dev lint-staged@beta
I could then successfully commit but this changes package.json file which results in travis CI test fail as in my PR https://github.com/webpack/webpack.js.org/pull/3436 compilation failure on running npm start. What should I do?

Please run git commit -a -m "your message" --no-verify

Works, thanks @montogeek


Updating Template before CSS causes template to not pick up scoped class name

I've observed some funky behavior within the new addon, specifically around creating elements with a style class before the class exists, the template never receives the scoped class definition, even after the class has been created and the template has been changed. Additional classes don't necessarily trigger a scoped class name update, only in certain cases where the element has some specific changes to it.

Create a template file containing a div with a single style

// hbs

foo

Create an accompanying css file with the style for the div

// css
.foo {
 	color: red;
 }

Observe the rendered HTML does not have a scoped class name for foo

// html output

foo

Update the template file with a second div with a second single style

// hbs

foo

bar

Observe the rendered HTML after build has applied the scoped class name for foo

// html output

foo

bar

Update the CSS file with a style definition for bar

// css
.foo {
 	color: red;
 }
 .bar {
 	color: green;
 }

Observe the rendered HTML after build to see there has been no change to the scoped class definitions.

// html output

foo

bar

Save the template file with no changes

// hbs

foo

bar

Observe the rendered HTML after build to see there has been no change to the scoped class definitions.

// html output

foo

bar

Add a single space character after "bar" and save the template file

// hbs

foo

bar

Observe the rendered HTML after build to see the first definition is scoped, but there has been no change to the second scoped class definition.

// html output

foo

bar

Add a div with no styles after the "bar" div and save the template file

// hbs

foo

bar

baz

Observe the rendered HTML after build to see there has been no change to the scoped class definitions.

// html output

foo

bar

baz

Add a "baz" style to the latest div and save the template file

// hbs

foo

bar

baz

Observe the rendered HTML after build to see there has been no change to the scoped class definitions.

// html output

foo

bar

baz

Update the CSS file with a style definition for bar

// css
.foo {
 	color: red;
 }
 .bar {
 	color: green;
 }
.baz {
	color: blue;
}

Observe the rendered HTML after build to see there has been no change to the scoped class definitions.

// html output

foo

bar

baz

18. Add a "foo" style to the last div and save the template file
```hbs
// hbs

foo

bar

baz

Observe the rendered HTML after build to see there has been no change to the second scoped class definition, but the third has updated.

// html output

foo

bar

baz

Add a second "bar" style to the second div and save the template file

// hbs

foo

bar

baz

Observe the rendered HTML after build to see there has been no change to the scoped class definitions.

// html output

foo

bar

baz

Add a fourth div with a "bar" style and save the template file

// hbs

foo

bar

baz

biz

Observe the rendered HTML after build to see there has been no change to the second scoped class definitions, but the new fourth div has generated a scoped definition.

// html output

foo

bar

baz

biz

The second div with bar never updates, even though a newer div with the same style does. Definitely appears to be some sort of caching issue, hopefully these steps help!

Something else to note, if you redo the first few steps without adding another div, but adding a second class to the second div:

Create a template file containing a div with a single style

// hbs

foo

Create an accompanying css file with the style for the div

// css
.foo {
 	color: red;
 }

Observe the rendered HTML does not have a scoped class name for foo

// html output

foo

Update the template file with a second div with a second single style

// hbs

foo

bar

Observe the rendered HTML after build has applied the scoped class name for foo

// html output

foo

bar

Update the CSS file with a style definition for bar

// css
.foo {
 	color: red;
 }
 .bar {
 	color: green;
 }

Observe the rendered HTML after build to see there has been no change to the scoped class definitions.

// html output

foo

bar

Add a second "bar" class to the second div and save the template file

// hbs

foo

bar

Observe the rendered HTML after build to see the scoped class definitions applied.

// html output

foo

bar

After running into the issue again, I decided to do some digging and discovered that part of the issue is that the babel plugin only runs on hbs changes. There may be some order of operations happening with making the hbs change first before the class exists, then adding the class which doesn't run the babel plugin, and finally trying to resave the hbs file doesn't re-trigger the babel plugin which I am assuming is due to some caching, which I have verified is happening by returning the file to a state that had previously been processed. Making a new change (that has never been saved and processed) and saving the hbs file will eventually retrigger.
So ultimately, the issue appears to be:

Changes to css files do not trigger the scoped-babel-plugin
Changes to hbs files that have already been processed by the babel plugin do not run again, which can cause a state where a css class will never be picked up unless the hbs file has a change that has not been processed by babel.

I'm not sure exactly what the answer is, but that appears to be the source of the issue.

Pinning and re-opening because the implemented solutions has caused some confusion, and the problem goes away if we adopt a solution similer to https://github.com/cardstack/glimmer-scoped-css (have everything in one file)

A way to solve this (that we talked about at the onsite), was being explored here, but we can't currently pursue that implementation because it would mean we lose HOT loading of CSS, which is a requirement for us internally due to how numerous our dozens of app MB are.
We may have to

give up on hot loading of CSS (to potentially solve this problem)
or migrate to embroider/vite all at once (maybe via flag so folks can beta test)


Update UG, DG and PPP based on implementation

Update UG, DG and PPP. Solves Issue #35

Codecov Report

Merging #38 (96dad77) into master (cad8d87) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #38   +/-   ##
=========================================
  Coverage     65.98%   65.98%
  Complexity      404      404
=========================================
  Files            78       78
  Lines          1361     1361
  Branches        140      140
=========================================
  Hits            898      898
  Misses          430      430
  Partials         33       33

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Add support for creating IBM Cloud services

Create a new IBM Cloud VPC if not provided while using IBM Cloud services
Create a new Subnet in VPC if not provided
Create a Transit Gateway and attach VPC and PowerVS connection to it.
Create a Cloud Connection (non-PER) if not provided.

Important Note: This may break existing flows. Users should set the transit gateway name and cloud connection name if pre-created or the automation will try to create it. Transit Gateway is a new way, we will remove cloud connection once all locations are PER enabled. If you still need to use the old code without the Transit Gateway then please use the tag v5.0.0.

/cc @Prajyot-Parab @pravin-dsilva


DCDC converter needs reworking

Feedback track should not go under the inductor and tracks should be as short as possible.

Fixed in commit abf19ead8a0773d469e5b664175c62ed65a1bd63


Unable to create token

Postgres 16.1
PHP 8.3.1

SQLSTATE[22P02]: Invalid text representation: 7 ERROR:  invalid input syntax for type bytea
CONTEXT:  unnamed portal parameter $5 = '...'

The payload contains an url. Upon json_encode, it will add backslashes to escape the uri i.e http:\/\/<IP_ADDRESS>:8080\/ which I guess somewhat invalid for bytea column. Removing the URL from the payload resolves the issue.

Hello. Could you reopen this in https://github.com/cycle/database?


Performance tweaks for GCP

This PR adjusts behaviour of the GCP storage implementation slightly to improve performance, and avoid having to redo work due to GCS update limits.
#23

Codecov Report
Attention: Patch coverage is 0% with 6 lines in your changes missing coverage. Please review.

Project coverage is 26.55%. Comparing base (46ec9c2) to head (fa1e5b6).
Report is 28 commits behind head on main.

Files
Patch %
Lines

storage/gcp/gcp.go
0.00%
5 Missing :warning:

cmd/example-gcp/main.go
0.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #109      +/-   ##
==========================================
- Coverage   35.80%   26.55%   -9.25%
==========================================
  Files          16       19       +3
  Lines        1363     1830     +467
==========================================
- Hits          488      486       -2
- Misses        801     1270     +469
  Partials       74       74

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


fix docs example

Codecov Report
Patch and project coverage have no change.

Comparison is base (1a997b8) 92.88% compared to head (c4b68ea) 92.88%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #104   +/-   ##
=======================================
  Coverage   92.88%   92.88%
=======================================
  Files           4        4
  Lines         253      253
=======================================
  Hits          235      235
  Misses         18       18

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


Fix coq metacoq checker

What is the status of inclusion of metacoq in platform?

@yforster : sorry for the long delay - we had to work on the generic infrastructure before we could handle package additions.
I am not sure what to do with this PR. Is this an experiment to test patched opam packages in Coq Platform CI before pushing them upstream to the opam repo?
@mattam82 : currently I don't see a request to add MetaCoq to the Coq Platform. Do you want it to be added to 2021.09 8.13 and/or 8.14+beta1? We still have a few days left (I will likely release on Monday waiting for a bug fix in another package). To make it happen I would need an issue here by you or another maintainer requesting the addition and stating that you agree to the spirit of the Coq Platform charter.


What's our bundle size / performance budget?

Lit is great, and definitely worth it. We've used material-web on top of that, but I'm actually really disappointed about how massively it impacts our bundle size. We're still <90 KiB uncompressed, but it's probably way overkill for our use-case. To illustrate, ~15 KiB of that are for the ripple effects, which are cool, but we don't need to support every edge-case that's significant for a generic library.
Personally I'm not too worried about bundle size, and, to be fair, we've pulled in most significant parts of MWC already, perhaps except for <mwc-input> & friends. Should we set a target size? I know @glennhartmann had concerns here.
Would like some other opinions 😃

#51 decreases our uncompressed JavaScript bundle size by 49KiB, whereas #50 adds tooling to make it easier to keep track of what's in the bundles to start with. I think that we should strive to keep our bundle as small as possible, and do optimizations where it makes sense, but, given our scope, don't feel we need an explicit ceiling.


Header styles for iOS big headers

Follow the app layout and iOS style for big headers.
https://react-navigation.canny.io/feature-requests/p/ios-11-large-header-text

Please assign to me.


April 11th - RTHack

We're going to have a hack day using realtime web technologies.
More structure to come, but tech wise we can use stuff like

websockets
webrtc
mesh networks (we've still got some pretty cool hardware for emerging tech weekender)
chromecast (I'm working on something with this - think we could do some really interesting things here)

LIST OF THINGS

[x] set up meetup/eventbrite
[ ] any extra equipment?
[ ] choose food/refreshments
[ ] party plans?
[ ] sponsorship

Eventbrite?

Thought it would be good to charge £5-10 to make sure people turn up, and give us options for food/party funds.  Don't know if you can collect payment on meetup - but eventbrite is all setup at WO

\o/

Hello all, take a look a these logos. An idea we had was to make the clock show the actual time on the website. fun!

@matthewhh these are so SO AWESOME! Thanks so much.  I've added numbers if people want to vote for a particular one

7 or 8 look great, and both have the option of being used as a real clock using some css/js magic, perhaps as a count-down to the date, or counting down from the start until the end of the actual day

I like #8 the best. (Though they're all cool!)

I like 8 best :)

Also :8:

Could we use 10 to show the real time and also on the day the strength of the wifi signal? jk

Or something like, number of people that said they would attend vs number of people that have actually attended -- hopefully the "signal" would be full!

:8ball:  :smile:

How about this, we could add a clock in somewhere, or maybe just flash the time every minute for a 4-5 seconds.

:+1:  :shipit:

So who's the residential CSS master that can throw this together?

I love this,  though the current time might be a bit confusing - the clock face was a bit more subtle.

I quite like the current time idea. And say every 10 seconds or so have it do the "airport board" spinning thing to show JS RT
e.g. http://www.shutterstock.com/video/clip-716875-stock-footage--d-animation-from-a-airport-billboard-with-the-word-boarding.html

Perhaps we could have a few things and cycle between them?
JS   -
-    RT

J  S
R  T

RE AL
TI ME

11 04
20 15

Rather than the current time - I'd expect this to be a countdown
DA YS
   10

HO UR
S  05

MI NS
   15

SE CS
 2 24

I made this, it's bonkers (the pseudo element use) and could do with being made over. http://codepen.io/omgmog/pen/KwGQMP

OMG @OMGOMG!

@OMGOMG is an imposter, but yes indeed :smile:

Someone has too much time on their hands and not enough work to do ;)

Ah - I'd totally misunderstood this; thought it was 2x2 rather than 2x1.  Flashing between stuff makes sense.
You're no imposter @omgmog! you are jsoxford

I was having a productive lunch playing Project Zomboid, but I died, so whipped that up -- plenty busy otherwise!

You guys are wizards. This is a potential real time clock and new design mash up.

But I love the airport board idea. There's a lot of potential there and I think once people see that it updates it could be pretty fun. Also, you could add a one or two word heading built in. Date / days until / time / hack day / etc.

http://codepen.io/anon/pen/azRYbY?editors=110

The font is   font-family: Source Sans Pro;

Meetup has been updated - http://www.meetup.com/JSOxford/events/221085527/
If anyone sees any issues, could you plonk it in here?

schedule
(comments welcome)
9.30 - start (pastries & coffee)
9.40 - hello, overview of data / tools
10.00 - project pitching / choosing
10.30 - kick off
12.45 - retrospectives
1.00 - lunch
5.30 - show & tell
6.30 - drinks at Joe Perks

updated meetup

Looks good. Might be worth having meetup email out the update (if possible?) so people see it.

Jo perks is booked - and they're going to have a special realtime based cocktail for us

Realtime cocktail?


Any further update for database?

I do like this website and would like to introduce it to couple of my team-mates,
it is extremely awesome and so unexpected its existence,
AMAZING I would like to say so.
KEEP GOING.

Thank you! Just updated the data. Also want to add a list view to have filters besides the map. I'm open to feedback if you have things in mind.

As a Malaysian passport holder,
I would like to say,
Taiwan island, (the island nearby china and Japan),
is visa free to Malaysian passport holder,
and part of the China (excluded the mainland part),
the coastal area,
such as,
Hong Kong,
Macau,
is literally visa-free to Malaysian passport holder too.
It should be okay to add it in,
cos,
few days ago,
I have just travel back to Taipei (where I'm residing),
from Shanghai (I got china visa),
thru couple days of stay at Hong Kong,
and couple days of stay at Macau.


Mismatched type error in batch causes points to get registered but not written

Bug report
When writing point batches that contain a mismatched type, some points get registered in the index but not written.
This appears to only happen for some points that appear in the batch before the mismatched type point.
System info: [Include InfluxDB version, operating system name, and other relevant details]
current master (commit 8c2cfd1)
Steps to reproduce:

Create database: > create database telegraf
Write test measurement:

$ curl -i "http://localhost:8086/write?db=telegraf" --data-binary "test value=1"
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: e88b50c9-d74f-11e6-8009-000000000000
X-Influxdb-Version: v1.1.0
Date: Tue, 10 Jan 2017 16:14:48 GMT

Show measurements:

> show measurements
name: measurements
name
----
test

Write test2 and test3 measurements in a batch with a mismatched type test point at the end:

$ curl -i "http://localhost:8086/write?db=telegraf" --data-binary "test2 value=1
test3 value=1
test value=1i
"
HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: fc6afa4c-d74f-11e6-800b-000000000000
X-Influxdb-Version: v1.1.0
Date: Tue, 10 Jan 2017 16:15:21 GMT
Content-Length: 125

{"error":"field type conflict: input field \"value\" on measurement \"test\" is type integer, already exists as type float"}

Observe that show measurements now shows test3:

> show measurements
name: measurements
name
----
test
test3

But there is no data in test3, and it disappears on restart:

> select * from test3
>

Additional info: [Include gist of relevant config, logs, etc.]
> show shards
name: _internal
id database  retention_policy shard_group start_time           end_time             expiry_time          owners
-- --------  ---------------- ----------- ----------           --------             -----------          ------
1  _internal monitor          1           2017-01-10T00:00:00Z 2017-01-11T00:00:00Z 2017-01-18T00:00:00Z

name: telegraf
id database retention_policy shard_group start_time           end_time             expiry_time          owners
-- -------- ---------------- ----------- ----------           --------             -----------          ------
3  telegraf autogen          3           2017-01-09T00:00:00Z 2017-01-16T00:00:00Z 2017-01-16T00:00:00Z

> show diagnostics
name: build
Branch Build Time Commit                                   Version
------ ---------- ------                                   -------
master            800da5732b91c816b0a097acf8887fa2af1efa1a v1.1.0

name: network
hostname
--------
tars

name: runtime
GOARCH GOMAXPROCS GOOS   version
------ ---------- ----   -------
amd64  8          darwin go1.7.3

name: system
PID  currentTime                    started                        uptime
---  -----------                    -------                        ------
6078 2017-01-10T16:16:52.058524797Z 2017-01-10T16:13:37.986046031Z 3m14.072478867s

Hrm, I believe this behavior changed since I wrote https://github.com/influxdata/influxdb/issues/4856#issuecomment-238402453. I'm fairly certain that when I wrote that, the points in the batch before the error were actually inserted. Not sure what version that was though.

closed by #7836


Build cleanup

Fixes a number of issues.

Gets player working correctly
Fixes build problems with transcripts breaking the build

Adding some notes here. Looks like '$server/ai/queries.js'; is the file breaking the build. something about server and client code leaking. Fixing now.


'kind' and 'order' are ignored by Series.sort

Is this desired? Is Series.sort needed when we have Series.order?

Alright I have this one all "sorted" (ha!)


Docs: Update "Advanced Topics" to include information on including a resource from an existing CFN template

Added information about including a resource from an existing CFN template.
By submitting this pull request, I confirm that my contribution is made under
the terms of the beta license.

I've moved this work into my dougsch/add-sharing-info branch.
Once I'm done and ready to review, I'll create a PR from that branch.
Once that PR is accepted, I'll delete it and this branch.


Error on Godot startup

Hello, I have Godot IDE 4.1.3 and just cloned your project, as soon as the IDE opened up I got a missing dependency error and another error on the main.tscn file error. Screenshot attached
What do I have to do?
edit: also for the sound files, but in this case they exist on the file system, wtf
Parser Error: Preload file "res://lib/globals/assets/sound/click.wav" does not exist.

edit2: I manually typed the path (it actually was listed on the autocomplete, so it sees the wav file) and tried to preload. Now it says:
Parser Error: Preload file "res://assets/sound/click.wav" has no resource loaders (unrecognized file extension).

"Loading failed due to missing dependencies"

"Error while loading main.tscn"

"Missing wav file"

Could you look into what the file contents of these files are, because I'm thinking this might be related to you missing GitLFS.

Could you look into what the file contents of these files are, because I'm thinking this might be related to you missing GitLFS.

For some reason I'm unable to open the ".wav" audio files, also they only weight 130 bytes
I'm on MacOS Ventura 13.4, I open up the audio files with VLC but nothing else happen

Ah yea, then my susspicion where right, you need to have https://git-lfs.com/ installed in order to being able to properly clone this project.
I will update the docs on this to be more precise.


Changes to release_notes_url and offering_docs_url

Changes to release_notes_url and offering_docs_url

@ocofaigh - Please review & approve this PR..thanks

@ocofaigh - Please review this PR again as many things are updated & merge the same. I have difficulty in creating a symbolic link so have placed the override.json file in a folder.

Also @NatarajBTI please have your content team review the updated reference architecture markdown updates

@ocofaigh - Have created symbolic link and Tejashree from ID team has approved the changes. Please re-review it. thanks

/run pipeline

I just updated for you, re-running..

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

@ocofaigh - Have reverted back the path changes & our doc is pointing to the override.json file under {path.root}/override-json-file folder..Please review and merge the same..thanks

/run pipeline

:tada: This PR is included in version 1.7.5 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Highlight current date

Is your feature request related to a problem? Please describe.
Is there a possibility to highlight the current day and a selected day?
Describe the solution you'd like
I would wish if you could highlight the current day and selected day differently.

This will be fixed in latest released as I can see this happening in Endloss


fix mds stat hang command

For some reasons, when the pool does not exist, the stat hangs.
Adding a timeout to the command fixes the issue.
Signed-off-by: Sébastien Han<EMAIL_ADDRESS>

jenkins test ceph_ansible-luminous-centos7-cluster

jenkins test ceph_ansible-luminous-centos7-cluster


[BUG] Unable to download OpenImage Dataset

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
FiftyOne installed from (pip or source): pip
FiftyOne version (run fiftyone --version): 0.14.3
Python version: 3.8

Commands to reproduce
import  fiftyone

dataset = fiftyone.zoo.load_zoo_dataset(
              "open-images-v6",
              split="train",
              label_types=["detections"],
              classes=["Bird"],
              max_samples=None,
          )

Above code will not issue any error message but Killed. at terminal.

The train split of Open Images v6 includes loading a large (multiple GB) labels file into memory which could result in OOM issues on some machines. Out of curiosity, are you able to load the validation split?
import  fiftyone

dataset = fiftyone.zoo.load_zoo_dataset(
              "open-images-v6",
              split="validation",
              label_types=["detections"],
              classes=["Bird"],
              max_samples=None,
          )

hey @ehofesmann, yes can confirm that validation set works. Is there any way that the memory could be loaded to disk?

Unfortunately, the way that the dataset was originally constructed was to store the labels in these large files that have to be read into memory one way or another. You could try working in Google Colab if you don't have access to a computer with more memory.

I get the same behaviour.
Also, even though classes is specified, the labels file still has all the classes (for example for validation). So, that filtering does not work for the labels.

@ogencoglu you can include only_matches=True if you only want to load exactly the classes specified in classes. By default, all labels for any image that contains >=1 class of interest will be loaded:
import  fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset(
    "open-images-v6",
    split="validation",
    label_types=["detections"],
    classes=classes,
   only_matches=True,
)

Or you could just filter after loading:
from fiftyone import ViewField as F

view = dataset.filter_labels("ground_truth", F("label").is_in(classes))

@brimoor
Yes, I have only_matching=True. It only works for the image filtering, not the label file filtering.

I can't reproduce. This works:
import fiftyone as fo
import fiftyone.zoo as foz

dataset1 = foz.load_zoo_dataset(
    "open-images-v6",
    split="validation",
    label_types=["detections"],
    classes=["Person"],
    max_samples=1,
    only_matching=False,
    dataset_name="all_labels",
)

dataset2 = foz.load_zoo_dataset(
    "open-images-v6",
    split="validation",
    label_types=["detections"],
    classes=["Person"],
    max_samples=1,
    only_matching=True,
    dataset_name="only_person",
)

assert dataset1.count("ground_truth.detections") > 1
assert dataset2.count("ground_truth.detections") == 1

Can you try with "open-images-v7" ? I realized I was using v7.


choropleth text controls

choropleth supports text but the widget isn't showing up. The easy fix is to add choropleth to the whitelist here https://github.com/plotly/react-chart-editor/blob/master/src/default_panels/StyleTracesPanel.js#L460 but this leads me to question why this is in a TraceTypeSection at all... what's the downside to just having this be a Section? Can someone dig into this please? :)

The TraceTypeSection is there, because we have a DataSelector in there - those are unconditionally visible, so we have to hide the section for certain traces.


add vocabulary page

add vocabulary page. No direct link in the nav yet.

Some feedback:

In "OData vocabulary components" section, put core libraries before capabilities?
Is there anything about the display name vocabularies?

@dingeins  Sure, I will put core before capabilities. But I don't quite understand "Is there anything about the display name vocabularies", can you provide more details?


Add courtformsonline.org metadata

Add the metadata needed to work with the new courtformsonline.org repo scanning tool (See https://github.com/SuffolkLITLab/courtformsonline.org/issues/8)

This one won't get published, so add unlisted: True in the metadata

Closed by 1053674


feat: cognito authenticator implementation

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Unit Test
[x] Manual Test

Test Configuration:

Toolchain:
SDK:

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented on my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Note (Optional)

Please use our organization git flow


Follow a certain order when listing blocks and arguments in documentation

Background
The document on best practices with writing Flow components should also include guidance on how to order blocks and attributes when listing them in a table. This will help make our documentation more predictable and easier to read.
Proposal
For example, we could propose that:

required attributes/blocks should be listed prior to any optional ones.
sections about blocks should appear in the same order in which the blocks were listed in the table. E.g. if an annotations block is listed before a filter block in the table, then the ### annotations block section should also appear before the ### filter block section.

It would also be nice if we could also add CI tests for this. But I'm not sure if this is possible.

Some drafting happening in this PR: https://github.com/grafana/alloy/pull/1630


[zh] Localize /feature-gates/index.md

Related to issue #44410
Add zh text to this page:
content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/index.md

A quick fix is to move the existing file content/zh-cn/docs/reference/command-line-tools-reference/feature-gates.md to content/zh-cn/docs/reference/command-line-tools-reference/feature-gates/index.md


Webhook JSON Objects

Would be great to have TypedDict objects to represent the JSON payloads from webhooks listed here:
https://clerk.com/docs/integrations/webhooks/sync-data#narrow-the-webhook-event-to-get-typing

Hey @iloveitaly we have this coming up in a future release of the SDK. Will keep you posted on a timeline as soon as we have it.


length is unauthenticated

There is a minor bug in this library, but in a crypto module every minor bug is serious.
Basically, since the length is unauthenticated it's possible to alter it and this can cause the application to deadlock in certain cases. I have a detailed description of this bug affecting another library here
It may be unlikely that a given application would be realistically harmed by this attack, but if it exists, it means you have to audit each application to check it doesn't use a given cryptotool in an unsafe way, which is much harder than just auditing the one crypto library.
I also have a similar streaming protocol here that does not have this bug, which you may be interested
https://github.com/dominictarr/pull-box-stream (it's also based on nacl)

Thank you for raising the issue! After thinking for 10 minutes, I don't see how this is a legitimate attack on the cryptographic protocol: the ultimate, cheapest scenario in the described attack for the attacker who can modify packets is to not retransmit the packet at all. If an application is not designed to have measures against this (e.g. timeouts), it will fall into the deadlock. I'll think about this more, and would like to listen to arguments.

Okay I'll accept the timeout thing, if you add timeouts to this module, or at the very least, document that requirement clearly.
I can't really make a rock solid, you-absolutely-should-do-this argument, but I can explain my philosophy on this: The security layer should be self contained and should not depen on the other layers. That means, you should be sure of the security properties by auditing the security layer. The only way you know a system is correct is by testing it, so optimize for testing - the easiest way is to split it into clearly defined modules, and test those well. To know a system is secure, we need to audit it. Auditing is hard (as is testing) so we need to optimize for auditability - just like modular development optimizes for testability. If the security of an application depends on both the security parts and the rest of the application parts, then you need to audit the whole thing, this is a lot more work than if you can be sure of the security properties by auditing the security parts.
So, the ideal, is if you get your security properties via the cryptoprotocol. So, using the method I propose, you can be sure of the length cryptographically, but if you rely on timeouts, you have to be sure that the other end, the peer with whom you are communicating with, has implemented the timeouts correctly.
If you don't have access to the other machine, you can't know they have timeouts correct (without invoking timeout errors, and checking it doesn't stall) but with a cryptographic assurance, you can tell that for them to be able to execute the protocol correctly, they are also assured of the properties!
So, I think this is a good security engineering principle.

I'm sorry, but I still fail to see how I can solve the problem of not having proper timeouts in the application in this crypto library.
Let's start with a solution — what do you think will fix this issue?


ci: update issue templates

What feature or improvement would you like to see?

Make it clear feature request also works for general enhancements
Require bug reports to provide a stack trace

take


Rebuilt Invoker Not Reflecting Changes in Logs

Description：
I am trying to make changes to the FunctionPullingContainerProxy.scala file in OpenWhisk’s invoker component. Specifically, I updated a log message in the Running state from "No more run activation ..." to "No more run Activation --testing-- is coming in state ...". However, after rebuilding the invoker image and redeploying OpenWhisk, the changes are not reflected in the logs.
Environment details:

ubuntu 22.04

Steps to reproduce the issue:

Modify the FunctionPullingContainerProxy.scala file in core/containerpool/v2:

      logging.info(
        this,
        s"No more run Activation --testing-- is coming in state: $stateName, action: ${data.action}, container: ${data.container.containerId}")

Rebuild the invoker Docker image:

./gradlew :core:invoker:clean :core:invoker:distDocker

Redeploy OpenWhisk using Ansible:

cd ansible
sudo ansible-playbook -i environments/local openwhisk.yml -e mode=clean
sudo ansible-playbook -i environments/local openwhisk.yml

Check the logs of the invoker:

cat /var/tmp/wsklogs/invoker0/invoker0_logs.log

Expected Behavior
The log message should reflect the updated text: "No more run Activation --testing-- is coming in state ...".

Observed Behavior
[2024-12-30T02:16:47.868Z] [INFO] [#tid_sid_unknown] [FunctionPullingContainerProxy] No more run activation is coming in state: Running, action<EMAIL_ADDRESS>container: ContainerId(8ae3468b23719f4ab251254997b1487fcc49171ce1a50596da75895d41093a2a)

Additional information you deem important:

Verified that the updated code is correctly written in the source file.
Rebuilt the invoker Docker image using :core:invoker:clean and :core:invoker:distDocker.
Observed the Docker image timestamp, and it reflects the recent build.
Also tried a more complex way to rebuild, but still not working.

export ENVIRONMENT=local
sudo ansible-playbook -i environments/$ENVIRONMENT openwhisk.yml -e mode=clean
sudo ansible-playbook -i environments/$ENVIRONMENT setup.yml
sudo ansible-playbook -i environments/$ENVIRONMENT prereq.yml
sudo systemctl stop couchdb
cd ..
./gradlew clean
export ENVIRONMENT=local
./gradlew distDocker
cd ansible
sudo ansible-playbook -i environments/$ENVIRONMENT couchdb.yml
sudo ansible-playbook -i environments/$ENVIRONMENT initdb.yml
sudo ansible-playbook -i environments/$ENVIRONMENT wipe.yml
sudo ansible-playbook -i environments/$ENVIRONMENT elasticsearch.yml
sudo ansible-playbook -i environments/$ENVIRONMENT openwhisk.yml
sudo ansible-playbook -i environments/$ENVIRONMENT postdeploy.yml
sudo ansible-playbook -i environments/$ENVIRONMENT apigateway.yml
sudo ansible-playbook -i environments/$ENVIRONMENT routemgmt.yml

Issue Resolved
The issue has been resolved successfully. The problem was related to how the invoker image was specified and deployed across multiple machines. Here’s the detailed explanation:
Root Cause
The problem occurred because:

Deployment Across Multiple Machines: I have a setup with two machines – one for the controller and one for the invoker. During the deployment process, there was a mismatch in how the invoker image was configured and deployed.
Temporary Ansible Configuration Change: At some point, I modified the ansible/roles/invoker/tasks/deploy.yml file to force the invoker to use the nightly tag from the Docker registry:

image: "{{ docker_registry }}openwhisk/invoker:nightly"

This change caused the deployment process to always pull the nightly image from the registry, ignoring any locally built or customized images.
Solution
To resolve the issue, I followed these steps:

Reverted the Ansible Configuration:
I updated the ansible/roles/invoker/tasks/deploy.yml file to use the correct dynamic image configuration:

image: "{{ docker_registry }}{{ docker.image.prefix }}/invoker:{{ 'cov' if (coverage_enabled) else docker.image.tag }}"

This ensures that the invoker deployment respects the tag specified in the docker.image.tag variable.

Built the Invoker Image Locally:
On the machine where the invoker image was being built (controller machine), I ran:

./gradlew :core:invoker:clean :core:invoker:distDocker

Transferred the Image to the Invoker Machine:

I exported the built image as invoker.tar:
docker save -o invoker.tar whisk/invoker:latest
Then transferred it to the invoker machine:

scp invoker.tar user@invoker-machine:~

Loaded the Image on the Invoker Machine:
On the invoker machine, I loaded the image:

docker load -i ~/invoker.tar

Redeployed OpenWhisk:
Finally, I redeployed OpenWhisk to ensure the correct image was used:

cd ansible
sudo ansible-playbook -i environments/local openwhisk.yml

Outcome
After completing the above steps:

The invoker is now using the correct image.
My code changes are reflected in the invoker logs, confirming that the updated image is being used.

Question: Simplifying Invoker Deployment in Distributed Setup
In a distributed OpenWhisk setup (separate machines for Controller and Invokers), updating the Invoker source code requires building the Docker image on the Controller machine, exporting it, transferring it to all Invoker machines, and then loading it.
Is there a simpler way to handle Invoker updates? For example:

Can Ansible automate the image transfer?
Is it possible to build the image directly on Invoker machines?

Looking for best practices to streamline this process. Thank you!

I resolved the issue by adding the following tasks to ansible/roles/invoker/tasks/deploy.yml:
- name: Save invoker Docker image
  command: docker save -o /tmp/invoker.tar whisk/invoker:latest
  delegate_to: localhost
  run_once: true

- name: Copy invoker image to all Invoker machines
  copy:
    src: /tmp/invoker.tar
    dest: /tmp/invoker.tar

- name: Load invoker Docker image on Invoker machines
  command: docker load -i /tmp/invoker.tar

This worked successfully, and the updated Invoker image was deployed across all machines.

You can use a private registry to share images in a distributed environment.
dockerRegistry options is available while building images.
https://github.com/apache/openwhisk/tree/master/gradle#build

Thank you! I’ve learned something new, and I really appreciate it!


LookUp error during deletion of broken builds

In cases where a fixed-arena-class is either broken or incomplete, the deletion method will crash on a LookUp error for the object that doesn't exist.
E.g During build process, workspace display fails to build. Deletion process will fail trying to delete the workspace display machine that never existed

Resolved with commit #aac2417


Add interception feature

Coverage remained the same at 100.0% when pulling 2449425dad2e0f96a314b7c6403cc19950215fda on ktutnik:master into 42c1dbb9e2950395846e7653cfe5598c8753e314 on kambojajs:master.


Upgrade aws-amplify to v5

Setting aws-amplify to 5.3.5 in package.json leads to two versions being installed due to the transient dependencies:
$ npm list aws-amplify
<EMAIL_ADDRESS>treehoose-egress-app-frontend
├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   └──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
This leads to a broken system
https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js/
In this case it worked on TREEHOOSE with federated login, but not on hic-tre staging without federation https://github.com/HicResearch/treehoose-egress-app-frontend/pull/27

FYI @AaronJackson

odd
can you bump ui-react to 5.3.2 and the same for aws-amplify ?
<EMAIL_ADDRESS>

Dependabot has tried, but there are breaking changes https://github.com/HicResearch/treehoose-egress-app-frontend/pull/32


FEATURE REQUEST: Add a flag and feedback to clear all existing local records

Detailed Description

It would be convenient to be able to use a flag on checkip to clear all existing records to check a set of addresses totally fresh, rather than running checkip -f or manually deleting the json records.
Context

This would permit a complete clear of all existing records from within the tool, which could streamline new investigations.
Possible Implementation

checkip -clear

Are you sure you want to clear ALL existing local records? (Y/N)

Local records cleared

Your Environment

Version used: Current
Operating System and version (desktop or mobile): macOS 11.4

I could see an argument for adding this in as a flag like:
checkip --fresh -ip <IP_ADDRESS> would create a fresh record. Would behave similar to checkip --force -ip <IP_ADDRESS> but would also be a destructive action.
could also see:
checkip --no-record -ip <IP_ADDRESS> if you want to avoid adding this ip to the record if you know you scan it a lot.
Long term adding all this into the config is planned eventually. But currently have no timeline for that

I think there's definite utility in both of those options, the, checkip --fresh -ip <IP_ADDRESS> and the checkip --no-record -ip <IP_ADDRESS>, but I would also find the option to totally clear all local records useful, especially since the security status of records continues to become less relevant as they age.

In practice are you asking for:
Option One
# note! no ip given
$ checkip --delete-cache

Which would delete all local records across the board. (i.e. the record and the report)

Yes! That's more what I was thinking of, an option to delete all local records across the board.

sounds good. Won't be in this current set of fixes. But could easily be on the shortlist of new features after that

local testing went well. Just need confirmation from @iamGBOX


[Form Validation] Initialize with one settings object, instead of two parameters

Form initialization expects the following syntax:
form(rules, settings)
It isn't obvious, but if you run: form(rules).form(settings) instead, the second call nukes the rules set by the first call.
The documentation should be more explicit about form initialization (to prevent this misunderstanding) or unify rules and settings to avoid this problem altogether.
Perhaps:
var myRules = [];
var mySettings = {};

form({
rules: myRules
settings: mySettings
});

Just add Parsley.js as the official form validation for Semantic UI :+1:


Add ONX (Onixcoin)

Hi, please add Onicoin
regards

Regarding the line setHdCoin(99);
Onixcoin doesn't seem to be listed in BIP44 - https://github.com/satoshilabs/slips/blob/master/slip-0044.md
Is there a reason why it's using 99 here (which is registered to 'SaveTheOcean' coin)?

Hi @iancoleman
Apparently 99 is correct value .
I tried to contact the ONIX developers to clarify this value.
I've tried this derivation and compared the official android wallet that uses BIP44
The result is that it generates the correct addresses But the xpub and xpriv not
Thank you for your observation, when I have the official values I tell you.

IMO ONIX needs to resolve their bip44 namespace conflict either through accepted PR to change decimal 99 in slip44, or pick an unused namespace. This is just sloppy. I would not merge this until conflict is resolved or you may mistankingly generate addresses under the wrong namespace if this changes in the future.

@jestevez 99 is NOT the correct value.  The correct value would be listed on slip44 page.  That is the source of truth.  Not what someone lazily slaps in a wallet.  Just because they program their wallet to use 99 does not mean it is correct.  They are in the very least noobs, and that mistake alone is enough to tell me they have no idea what they are doing and you should avoid investments in such sloppy amateur networks.

Hi @mikeyb Your right the 99 is not a correct value, but I was using it in your wallet. I have already opened an issue to change them to a correct value

Hi @iancoleman The correct code 174 has already been added although with 3 commits apologies for my error


all: duplicate functions should be removed from the standard library

Hello,
So I've been coding in Golang for a while and there are a few bugs here and there, but one of the issues I have with the standard library is that there are two random packages, which doesn't make sense because all the functions from one package overlap with the functions from the other, so I was wondering if we could have a single package that can do everything.
There will be less code for Golang maintainers to maintain, and it will be easier for new Golang users to figure out what to use, We may progressively remove the crypto/rand package and just use the math/rand package after that.
I'm not just talking about one package; I've seen so many identical functions that accomplish the exact same thing that it's ridiculous.

The duplication is there for a reason, as a general rule. crypto/rand and math/rand in particular expose the same API, but target different audiences. math/rand provides a pseudo-random number generator that is relatively fast, and suitable for a wide range of applications (random number generators in tests, for games, for rate limiting, etc.). However that generator is not cryptographically secure, meaning that given some range of attack vectors, it's possible to write an algorithm that figures out what future values will be. Because cryptography applications rely on the random number being hard to predict, that makes math/rand a bad choice. Hence the existence of crypto/rand, which provides these guarantees.
Closing this issue unless you have other specific examples. Please be aware that the Go project cannot remove any functions from standard library packages in order to maintain the Go 1 backwards compatibility guarantee. There may be situations in which some functions can be written in terms of others (and this does happen, see some recent io/ioutil functions being rewritten in terms of their non-deprecated os and io counterparts), so that would be the way forward in any of these situations. Please feel free to contribute any such deduplications directly, no need to file an issue. See https://golang.org/doc/contribute.
Again, do note that some actual duplication exists for a reason. There is one example that pops into my head, but that one, at the moment, is unavoidable (specifically, math/bits and runtime/internal/sys have some duplicate code).


Take advantage of LESS nesting

In some of our less files we take advantage of nesting i.e sl-input.less, in others we do not e.g sl-button.less, sl-menu.less and sl-tab-panel.less. We should take advantage of this less feature to keep code better organized and consistent across files.
Migrating to sass should not be an issue specifically for nesting as less and sass both follow same nesting rules.

Keep in mind the work we want to achieve in milestone v1.1.0 and make sure that the structure will not hinder our ability to extract just the styling declarations needed on a per-component basis.

mine

actually, @azizpunjani is apparently doing this

@notmessenger please assign to me, will do this while I'm doing the class work.


⚠ Bofrost.es has degraded performance

In da826f7, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1664 ms

Resolved: Bofrost.es performance has improved in 56c019f after 20 minutes.


Lots of errors are thrown when run on ExFAT drive

Background:  I'm first time user of cshatag, so please let me know if this is just user error.  I am on M1 Mac and have an external hard drive that's ExFAT formatted
Description of Error:

cshatag seems to run fine when creating checksum using cshatag -recursive, and I can see the the user.shatag.ts and user.shatag.sha256 attributes are written to files when I check using xattr -l.
However, when I run cshatag -recursive -qq then I see lots of errors because of files that start with ._, because it says "operation not permitted".  I tried to remove these dot files to see if cshatag can still check for errors, but that also removes the extended attributes.
cshatag -qq runs fine if I check just one file.

Question:

It looks like the extended attributes are written to dot files, and these dot files are throwing errors when cshatag runs a check.  Is this a problem because I'm using ExFAT drive on a Mac?
Maybe there's a setting that I've overlooked?

Thanks for helping/explaining how I should be using cshatag

Not the developer, but you're right in narrowing it down to ExFAT on a Mac.
cshatag needs extended attributes, which ExFAT does not support. MacOS has a compatibility layer where, on filesystems like ExFAT without xattr support, it will store them in a 'sidecar' file with the same name, prefixed by ._ The consequence of this is it won't allow you to read/write extended attributes on any files with a ._ prefix on these filesystems.
So in your example - the first time you run cshatag in recursive mode, it writes out the timestamp/checksum information to the extended attributes of all the files and Macos then creates the ._ files to store them. The next time you run cshatag in recursive mode, it sees the ._ files and tries to read the extended attributes on them, and then fails, since MacOS doesn't support xattrs on these sidecar files.
Given that the ._ format is proprietary to MacOS (other operating systems don't know/care that they are storing extended attributes for other files, so cshatag on a different platform would not be able to check the attributes), the easiest fix would be to just use a drive formatted as HFS+ (aka 'Mac OS Extended') or APFS.
If that's not going to work, your next best bet is to not use the recursive tag in cshatag, and instead run cshatag individually on the non ._ files (potentially automated via 'find' or the like)
Theoretically, cshatag could be modified to ignore ._ files when running in recursive mode when running on MacOS and when the filesystem doesn't natively support extended attributes (on filesystems with support, MacOS will handle xattrs on files prefixed with ._ ). However, I'm not the developer and this seems like it could get pretty messy.

@duncanbarth Thanks for sharing what you know about this.  I would like to hear the developer's thoughts on this as well.  As far as I can tell, it's the ._ files that are causing errors to be thrown because cshatag does not have permission to edit them.  I've already switched my hard drive data format over to APFS, and it does seem to resolve the problem.  However, I think a more sustainable solution for the cshatag project would be to ignore ._ files when running integrity checks, because the user doesn't care about the integrity of these ._ files.  This would give cshatag more universal appeal, so that users are less restricted to what kind of file format they use.
There one strange behavior I'm observing though.  Even after I've converted over to APFS, cshatag would still throw error at some .files that are generated by spotlight, which is not a big deal since there's not a lot of them.  However, this behavior is inconsistent, and sometimes it doesn't throw error at all because it's able to actually generate  a SHA tag for these . files as well.  This sounds like  a good thing, but it makes me wonder if cshatag is to tag those ._ files in ExFAT all along, but I didn't use it right.

The whole MacOS ._ workaround for filesystems without extended attributes support is a bit of a hack, has caveats you've run into, and to some degree breaks cross platform compatibility. But all this is a function of MacOS, not cshatag; cshatag requires extended attribute support and expects the operating system to be able to read/write extended attributes.
I believe ignoring the ._ files by default is a bad idea. In most cases (i.e. under Linux or MacOS with an xattr supported filesystem), ._ files are perfectly valid, support extended attributes, and it would be reasonable for end users to expect them to be processed like any other file. Given the whole point of the tool is validating file integrity, silently ignoring a class of files is problematic.
As an alternate solution, I could see potentially adding a new command line flag to cshatag. Something like '-skipdotbar' so that files beginning with ._ are ignored and reported to stdout via a new file status of .

Hi, I think https://github.com/rfjakob/cshatag/issues/23#issuecomment-1031962572 is spot-on.
Thinking about what to do. Maybe not printing errors for ._ files on MacOS with -qq.

PS: Detecting MacOS is easy, but detecting the filesystem under MacOS is kind of messy, so I would prefer to not do that :)


perf - mark times for creating workbench contributions

@jrieken given layer breaker, I added measure to your performance.js but I was not able to find a polyfill because that method talks to the underlying browser devtools to mark an entry in the timeline...

@jrieken fair enough, I have removed measure
What I do like is this bar you get from it in Performance tab of devtools:

Is there something comparable with the simple marks?

Is there something comparable with the simple marks?

The small lines should be marks. At any time you add a measurement between two existing marks, e.g from the console or anywhere in the code but I don't think that the perf tool updates after the recording has stopped

Oh yeah true, did not see them before!


Automated cherry pick of #10474

Cherry pick of #10474 on release-7.0.
/cc  @AshishDhama
NONE

Pull Request successfully merged
SHA: 999efb655c215a10fc99590a6a7273231ffa039b


Add FAQ schema block to browse & learn pages

The existing implementation of FAQ schema in Wagtail is customized for use on Ask CFPB pages and includes a very limited set of content types appropriate for Ask answers.
We've recently worked on two projects -- the conversion of the Repay Student Debt interactive tool into static pages & the redesign of the Submit a Complaint landing page -- that provide new opportunities to apply FAQ schema, but the Ask FAQ module does not meet the needs of either use case due to its content type limitations.
This PR adds two new ways to implement FAQ schema:

a FAQGroup block with more content options for Repay (and other learn / browse pages)
a FAQ toggle on the Expandable Group module for Submit a Complaint (and other pages with expandable FAQs, like the FOIA FAQ page).

While it would be possible to manage both use cases with a single FAQ block, it seems preferable to handle them separately for a couple of reasons, including:

Content type conflicts: To work for the Repay / other potential use cases, the FAQGroup module needs to allow content types (wells, info units, etc) that we don't permit in expandables.
Expandable FAQ content strategy: We often use expandables for FAQ-like information. It would be helpful to be able to easily add FAQ schema to existing expandables on the site without reflowing their content into a new block, and it might also be useful to consider whether FAQ schema is applicable any time we enter content in an expandable.

Notes
FAQ schema require a wrapper FAQPage designation, but this can only be declared once on a page. Since these new FAQ options make it possible to add multiple blocks with FAQ markup, the FAQPage declaration can't be made in the FAQ block templates. I'm currently detecting whether the content section contains a FAQ block at the page level and, based on this, outputting the FAQPage markup on the content section's wrapper div. I don't know if this is the best way to handle it, so I'm open to any alternate approaches...
Additions

FAQGroup block
faq-group jinja template
FAQGroup on browse and learn pages
FAQ toggle on ExpandableGroup
FAQ schema handling in expandable and expandable group templates
FAQ methods on base page type
Tests for is_faq_page context setting
Conditional FAQ schema application on the base page template

How to test this PR

Check out branch
Run migrations
Verify FAQGroup block:

In admin, create a new browse page and add a FAQ block
Verify that the content is output as expected
Verify the schema implementation by copying the source code into the schema.org validator

Verify FAQ ExpandableGroup option:

Navigate to one of the existing FAQ pages in the Wagtail admin and check the FAQ box on one of its expandable groups.
Verify that the content is output as expected
Verify the schema implementation by copying the source code into the schema.org validator

Screenshots
FAQ Group block

Expandable Group option

Checklist

[x] PR has an informative and human-readable title

PR titles are used to generate the change log in releases; good ones make that easier to scan.
Consider prefixing, e.g., "Mega Menu: fix layout bug", or "Docs: Update Docker installation instructions".

[x] Changes are limited to a single goal (no scope creep)
[x] Code follows the standards laid out in the CFPB development guidelines
[x] Future todos are captured in comments and/or tickets
[ ] Project documentation has been updated, potentially one or more of:

This repo’s docs (edit the files in the /docs folder) – for basic, close-to-the-code docs on working with this repo
CFGOV/platform wiki on GHE – for internal CFPB developer guidance
CFPB/hubcap wiki on GHE – for internal CFPB design and content guidance

Excellent work! 👍

Thanks for reviewing, @schbetsy and @mistergone!


Pr102 fix

This PR fixes a crash caused by the missing water texture from PR https://github.com/HalcyonGrid/halcyon/pull/102

It appears the Water texture the viewers need when the viewer has a rendering of water disabled did not make it into the PR.
Make sure the water texture is listed in TexturesLibraryItems.xml

Running the release Halcyon.0.9.44 threw this exception:
Halcyon 0.9.44 Error:
APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs
Exception: System.IO.FileNotFoundException: Could not find file 'C:\3DWorldz\Wor
ld\9500\assets\TexturesAssetSet\43c32285-d658-1793-c123-bf86315de055.jp2'.
File name: 'C:\3DWorldz\World\9500\assets\TexturesAssetSet\43c32285-d658-1793-c1
23-bf86315de055.jp2'
Actual filename:
43c32285-d658-1793-c123-bf86315de055.j2c
I changed the name of the file to 43c32285-d658-1793-c123-bf86315de055.jp2 and Halcyon loaded correctly so this is its only error in starting up.

New workarounds:

Rename the 43c32285-d658-1793-c123-bf86315de055.j2c file to 43c32285-d658-1793-c123-bf86315de055.jp2,
Or edit the file bin\assets\TexturesAssetSet\TexturesAssetSet.xml and in the section <Section Name="Water"> change 43c32285-d658-1793-c123-bf86315de055.jp2 to 43c32285-d658-1793-c123-bf86315de055.j2c

no workarounds needed folks, a fix is already incoming.

Why is that entry not a named texture entry also? I put the UUID on a cube to see what it was and its a dark blue marble sort of appearance.

It is supposed to be the water texture that viewers need when the water is set to an invisible in-world.  Can you send me a picture of what you are seeing via discord?

Done! :)

Some oddities. Not finding where to post this stuff!
Halcyon Prerelease 0.9.45:
The regions load way faster than expected, not appearing to load the Library XML or that process has been improved a 100% for speed operation! The file AssetSets.xml.loaded is being created on region startup. But the long wait while loading does not appear to happen.
I do not know what the name of the default water that was added is. No water named item appears in the Library textures list.
I did notice that the Library scripts list contains a folder for OpenSim Specific Scripts
containing osSetDynamicTextureData() or osSetDynamicTextureURL(). Of course none of the three listed scripts will work in Halcyon as is. Not sure those functions even exist in Halcyon. So I recommend that folder entry and referenced script assets be removed before official release.

You'd start by posting commentary in the Discord server. Issue comments should be limited to only info relevant directly to the issue.

As I already explained to Vinhold via discord, the water texture does not need to be listed in the TexturesLibrary.xml file.  It is only intended to be used by the viewer in the event the user disables transparent water settings via the viewer preferences.
I did not optimize anything else as far as the loading of the libraries so the fact is loading faster is a good thing.
The OpenSim Specific scripts probably can be safely removed as my understanding is that OSSL support was removed when InWorldz replaced the scripting engine with Phlox.  So the three OSSL scripts are not needed.


Support for IPv6 over BLE (IDFGH-5988)

Hi all.
Does esp-idf currently support IPv6 over BLE?

@david-cermak Hi David. Sounds great. I'll look into it.


Shift-click to select many groups (lineages/SNPs) at once

This should be easy to do in the legend and the table since everything is in a list. Not sure how i'll do that logic for the barplot though

Revisiting this issue – it should be very straightfoward to implement as we know the order of items in the lineage sidebar. It's less trivial for the barplots (GroupStack plot), since we'll have to pull out the Vega stack transform results from a ref to the Vega object. It's definitely still doable but will require some more engineering.
Changing this issue to be legend-specific, and I'll open another one for the plots themselves.

Relevant code is in src/components/Legend/TableLegendItem.js. Adding ctrl+click functionality should be straightforward – just adding a selected group instead of replacing the existing one.
For a shift-click to select a range of groups, we'll need the sorted list of groups, so the legend item will probably have bubble up a shift click event and have the list component handle it (since the list component knows about the order of items, the individual item components are oblivious)


[#115624569] Workaround terraform codecommit issue with default_branch property

#115624569 Implement locking for pipelines
What?
We did not catch this issue in the PR #173.
Terraform codecommit resource[1] has a bug managing the default_branch
property: https://github.com/hashicorp/terraform/issues/5641
Although this property is optional, terraform will try to manage it.
If defined, codecommit will fail during creation:
BranchDoesNotExistException: refs/heads/master does not exist

Meanwhile if default_branch is defined, codecommit it will fail as soon
as a branch is pushed to the repository. The reason is that AWS enforces
having at least one branch as default branch, failing when terraform is
trying to set it empty:
  * aws_codecommit_repository.concourse-pool: Error Updating Default
  * Branch for CodeCommit Repository: InvalidParameter: 1 validation
    * errors:
     - field too short, minimum length 1: DefaultBranchName

Scope
This issue will be reported upstream, but meanwhile we will workaround it by
passing the default branch as a variable, and quering it using awscli.
If the respository does not exist or does not have default branch, the
variable will be set to empty string "".
We additionally remove the bump of the pipeline-trigger in the init job, which is not required anymore.
How to test
Running from a environment without an associated codecommit git pool-resource
respository:

Run the bootstrap process SELF_UPDATE_PIPELINE=false BRANCH=$(git rev-parse --abbrev-ref HEAD) make dev bootstrap DEPLOY_ENV=...
Run the jobs up to concourse-terraform (the rest are not relevant)

concourse-terraform should finnish OK
the terraform apply output for the resource aws_codecommit_repository.concourse-pool should not refer to any default_branch

Rerun concourse-terraform it should end OK.
Run the lock-pipeline job in create-bosh-cloudfoundry
a. Upload the pipelines: SELF_UPDATE_PIPELINE=false BRANCH=$(git rev-parse --abbrev-ref HEAD) make dev pipelines DEPLOY_ENV=...
b. This will create a initial branch in the codecommit repo.
Back in the bootstrap concourse (http://localhost:8080), rerun concourse-terraform

It should finish OK
terraform output should not report any change

Who?
Anyone but @keymon

Haven't tested, but this look reasonable given the circumstances :ok_hand:

I did a PR on terraform to fix the issue, although I am not sure if this is the right way to implement it: https://github.com/hashicorp/terraform/pull/5904
One alternative can be just use the patched version and bundle it in the terraform container, but it that case we will have a dependency on that branch.

works well, merging


cargo build shouldn't access the network

... at least, not unless it's needed.
I have a project that builds a binary with dependencies from crates.io. The project has an updated Cargo.lock file.
I need to package this project, and the way any sane packaging system (such as Debian's, Gentoo's or NixOS's) works is that downloads are not allowed when building / compiling.
What I need to do is download the project's dependencies separately and then provide them to cargo when building.
I know about cargo fetch but it's not adequate for this purpose, because all it does is create an idiosyncratic directory structure in $CARGO_HOME, which 1) is not appropriate to save inside some package or tarball (it contains superfluous data such as the registry), and 2) is hard to reproduce manually as part of building a package without having network access.
So the way I'm doing this is downloading the dependencies manually, e.g. wget https://crates.io/api/v1/crates/time/0.1.12/download, extracting the tarballs and then, just before building the project, creating a .cargo/config file with contents such as:
paths = [ "/tmp/deps/abort_on_panic-0.0.4", "/tmp/deps/time-0.1.12", ... ]

I did this in the hopes that the manually downloaded dependencies override the registry dependencies specified in Cargo.toml, so that cargo doesn't need to download them. I made sure that all the manually downloaded dependencies' versions exactly match the ones in the Cargo.lock file.
This way, even if $CARGO_HOME is empty, it shouldn't be necessary to download anything, because all the dependencies' sources are already available in the overriden paths specified in .cargo/config.
However, even when I do this the cargo build command still tries to update the registry:
$ cargo build --release
    Updating registry `https://github.com/rust-lang/crates.io-index`
An unknown error occurred

To learn more, run the command again with --verbose.

Do you agree with my reasoning or is there a better way to manually provide the source code (or compiled library!) of crates.io dependencies to cargo so that building a package does not try to access the network?

I think you should prepare all dependencies of your project, then use an separate Cargo.toml file to change dependencies as local library, and pass the --manifest-file option to cargo build.
But I think the "An unknown error occurred" message should be improved, I may try to fix that.

The current method of achieving this functionality is indeed cargo fetch followed by cargo build (bugs like #1329 notwithstanding).
Path overrides were not intended for this purpose and the reason that you're still hitting the registry is that the dependencies still need to be located and resolved from the registry to generate the lockfile. The path overrides only come into effect after the lockfile has been created.
I'd be quite interested to learn about your woes with cargo fetch though! Would you be ok opening a new issue describing what you'd like to see out of cargo fetch and why it's not adequate today?

On Sat, Feb 21, 2015 at 7:15 AM, Alex Crichton<EMAIL_ADDRESS>wrote:

Path overrides were not intended for this purpose and the reason that
you're still hitting the registry is that the dependencies still need to be
located and resolved from the registry to generate the lockfile. The path
overrides only come into effect after the lockfile has been created.

I don't understand. As I mentioned, this project already had an updated
Cargo.lock file. So why does cargo build still need to download the
registry?
I'd be quite interested to learn about your woes with cargo fetch though!

Would you be ok opening a new issue describing what you'd like to see out
of cargo fetch and why it's not adequate today?

Ok, will do. Thanks!

So why does cargo build still need to download the
registry?

The download URL (where to look for on crates.io for the download) is located as a config file in the index which needs to be downloaded.

On Mon, Feb 23, 2015 at 8:38 AM, Alex Crichton<EMAIL_ADDRESS>wrote:

The download URL (where to look for on crates.io for the download) is
located as a config file in the index which needs to be downloaded.

But if the Cargo.lock file is already created (and updated), and all the
dependencies have been overridden in .cargo/config, then cargo doesn't
need the download URLs, right? Since all the dependencies are available in
the local system.
Or am I missing something?

The Cargo.lock file does not contain all metadata about a package. Information such as platform-specific dependencies, features, etc, is only stored in the index. This means that even with a Cargo.lock the index is needed to fully perform resolution.

The Cargo.lock file does not contain all metadata about a package.
Information such as platform-specific dependencies, features, etc, is only
stored in the index. This means that even with a Cargo.lock the index is
needed to fully perform resolution.

What do you mean, it's only stored in the index?
All that information should be in the sources of the dependencies, inside
~/.cargo/registry/src/*
The sources should be enough for cargo build, otherwise it wouldn't be
possible for Cargo.toml to point to non-registry dependencies, right?
I just don't see why the registry index has to be consulted during cargo build when all the sources have already been fetched and all information
is available locally (outside the local copy of the index)...
@alexcrichton I'm at my wit's end trying to package programs that use cargo.
Is there any chance that the output of cargo fetch (possibly with some
post-processing) can be made deterministic (meaning, the output will be the
same if the current source code being compiled is the same), and that if I
pass this deterministic output of cargo fetch to cargo build, then the
latter will not try to download anything from the network?
Because if not, I don't think cargo fetch can be used when building
cargoed rust packages in NixOS... (and without cargo fetch, it will be a
nightmare to use any other solution).

Sorry but I think I'm a little lost here. Are you running cargo fetch and then cargo build and the build step still accesses the network? If not, could you remind me what this is requesting?

Yes cargo build still try to access network although it doesn't download anything as cargo fetch has already been performed. Why does cargo build need network access then?
This makes it impassible to compile anything on debian (other than on local machine) even with bundled dependencies.

Can you help reproduce this behavior somehow?
On Jun 15, 2016, 08:50 +0100, Khurshid<EMAIL_ADDRESS>wrote:

Yescargo buildstill try to access network although it doesn't download anything ascargo fetchhas already been performed. Why doescargo buildneed network access then?
This makes it impassible to compile anything on debian (other than on local machine) even with bundled dependencies.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly,view it on GitHub(https://github.com/rust-lang/cargo/issues/1330#issuecomment-226113777), ormute the thread(https://github.com/notifications/unsubscribe/AABsigSo5xXcdrMVranJnG-NAx21FdCMks5qL664gaJpZM4DjqGB).