Inconsistency between Debug and serialized representation of Entity

Bevy version
0.13
What went wrong
There is an inconsistency between the Debug representation of an Entity:
impl fmt::Debug for Entity {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "{}v{}", self.index(), self.generation())
    }
}

And its Serialize representation:
impl Serialize for Entity {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: serde::Serializer,
    {
        serializer.serialize_u64(self.to_bits())
    }
}

This makes it difficult to debug serialized outputs, since the serialized entity IDs cannot be easily mapped to runtime entities via human inspection. Ideally, these representations should be consistent for easier debugging.
Additional information
I wanted to just open a PR on this, but I think the issue warrants some discussion. Mainly on two points:

Which representation is "correct"?
If we swap to #v# format for serialized data, are we ok with invalidating existing scenes?

Ah: I know what we should do. The serialized representation should stay the same, optimized for information density. This is just an opaque identifier. However, we should make the debug representation more verbose, and report index, generation and raw_bits separately.
In the future, we will be packing more information into here (e.g. entity disabling) that we want to add to the debug output, but we should avoid adding bloat (or semantic meaning) to the serialized representation.

I like that idea.
My only concern there is that the current "#v#" format for Debug is very compact. This makes it very useful for log messages, since the user can just do info!("{entity:?} is a cool entity!").
This would output something like:
"2v2 is a cool entity"
I'm concerned if we make the Debug more verbose, we'd lose this feature. This would open the door to people using either the entity index/generation or the raw bits in log messages, which would produce highly inconsistent log outputs.

I'm concerned if we make the Debug more verbose, we'd lose this feature. This would open the door to people using either the entity index/generation or the raw bits in log messages, which would produce highly inconsistent log outputs overall.

That seems like a prime case for a Display impl then: "pretty, humand-readable output" is what belongs there. Debug should be maximally clear and helpful IMO.

Just a random idea I had on this topic:
If we take this approach, we could make the Debug impl compact as well. Maybe if we pick a format like: #v#[raw_bits]
So then Display could look like 12v7. And Debug could look like 12v7[12345678] or 12v7.12345678
Alternatively, we could make Display use the 12v7.12345678 format, and Debug to be even more verbose with field names as needed.

I like 12v7[12345678] for the display impl, and then a properly verbose Debug impl :)

I want to re-open this issue. I don't think the fmt::Debug and fmt::Display implementation we proposed in the discussions here actually solves the initial problem. Additionally, it introduces a new issue that I was originally concerned about.
The Problem
The serialized output of Bevy scenes uses the raw bit representation of entities, i.e.<PHONE_NUMBER>.
Many systems, including internal Bevy code, currently log entities using fmt::Debug (i.e. {:?}).
This is because previously, fmt::Debug has format #v#, which was short and concise, but didn't include the raw bits.
After this change, the fmt::Debug implementation is now derived. This means now any log that uses {:?} now displays:
Entity Entity { index: 16, generation: 3 } does not exist
Unless we retroactively fix existing log outputs, this is currently producing very ugly logs, not just for Bevy, but for everyone downstream!
Additionally, this still doesn't fix the initial problem, because fmt::Debug still doesn't include the raw bits.
I can't easily map Entity { index: 16, generation: 3 } to<PHONE_NUMBER>.
My Proposal
To me, Entity should not have a fmt::Display implementation.
99.9% of the time an entity is only being displaying for debug purposes.
Because of this, I propose fmt::Debug should be what fmt::Display is now, in addition to the raw bits: i.e. #v#[rawbits]
This not only avoids the need to retroactively fix logs, but also solves the initial problem by including the raw bits into the debug output.
Any specialized debugger that needs to show additional data for the entity most likely would need to format it explicitly. Trying to implement fmt::Display as a "pretty debug" output is not something I believe Bevy should handle.

The only other alternative I see around this issue is that we retroactively fix existing log locations to use {} instead of {:?} and include the raw bits where appropriate. To me, this is a much more intrusive change.


Recommended way to use FastAPI with SQL Server 2019

Hello,
we've been having some really good fun using FastAPI, so congratulations to the community on delivering such a marvel.
Issue is we use pyodbc DBAPI to connecto to MS SQL Server 2019 and that's not possible to make any async calls from what I understand. So we end up seeing our users queued and sometimes even get timeouts.
Do you know if there are ways to use SQL server in FastAPI? The thread below does not seem to mention it.
https://fastapi.tiangolo.com/advanced/async-sql-databases/
I cannot really find any clue on what DBAPI to use so fearing that may not be supported.
Thank you in advance for the help!
Julien

Have you tried https://github.com/aio-libs/aioodbc ?

Than you Mause,
this one worked like a charm!
Julien

Thanks for the help here @Mause ! :clap: :bow:
Thanks for reporting back and closing the issue @ravyouli  :+1:

Hi Ravyouli, Can I see how did you manage to integrate aioodbc with FastAPI ?

@ravyouli Are you implementing aiodbc with sqlalchemy?  Curious how you implemented.

@ravyouli can you pls share snippet of how you used aiodbc in fastapi

You can refer to below code, if it helps.
from aioodbc.cursor import Cursor
from fastapi import HTTPException
async def get_cursor() -> Cursor:
dsn = rf'Driver={DB_DRIVER};Server={DB_SERVER},{DB_PORT};Database={DB_DATABASE};UID={DB_USERNAME};PWD={DB_PASSWORD};Trusted_Connection=no;'
try:
async with aioodbc.connect(dsn=dsn, loop=loop, executor=ThreadPoolExecutor(max_workers=50)) as conn:
async with conn.cursor() as cur:
yield cur
except OperationalError:
raise HTTPException(status_code=status.HTTP_502_BAD_GATEWAY,
detail="DB connectivity failed")
def get_quoted(value):
return f"'{value}'"
async def get_fallout_details_db(db: Cursor, country: List,
start_interface_load_date: str,
end_interface_load_date: str,
record_status=False):
if record_status:
query = fr"select * FROM [PRISM].[PR_fallout_output] where Country in ({(', '.join(map(lambda x: get_quoted(x), country)))}) and Interface__Load_Date >= '{start_interface_load_date}' and Interface__Load_Date <= '{end_interface_load_date}' and Record_Status = 'Open';"
else:
query = fr"select * FROM [PRISM].[PR_fallout_output] where Country in ({(', '.join(map(lambda x: get_quoted(x), country)))}) and Interface__Load_Date >= '{start_interface_load_date}' and Interface__Load_Date <= '{end_interface_load_date}';"
await db.execute(query)
records = await db.fetchall()
column_names = [column[0] for column in db.description]
out = []
for record in records:
out.append(dict(zip(column_names, record)))
return out
@router.get('/get_fallout_details', status_code=status.HTTP_200_OK)
async def get_fallout_details(start_interface_load_date: str,
end_interface_load_date: str,
record_status=False, db: Cursor = Depends(get_cursor),
country: List[str] = Query(...)):
return await get_fallout_details_db(country=country, start_interface_load_date=start_interface_load_date,
end_interface_load_date=end_interface_load_date, record_status=record_status,
db=db)


"Error getting items for league, are you sure your league settings are correct?"

DebugInfo:
[25-05-2015 13:45]
Error: attempted to get items for the non existant league ''
Current leagues are:
Exception details :
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at Procurement.ViewModel.StashViewModel.getAvailableItems()
[25-05-2015 13:45] Application Version: Procurement 1.9.2
[25-05-2015 13:45]
CurrentCulture: en-SG
CurrentUICulture: en-US
Operating System: Microsoft Windows NT 6.2.9200.0
Current League:
[25-05-2015 13:45] System.NullReferenceException: Object reference not set to an instance of an object.
at Procurement.ViewModel.InventoryViewModel..ctor(InventoryView inventoryView)
at Procurement.ViewModel.ScreenController.b__0()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
Im currently running POE through Garena+, is this an issue?

Yes, unfortunately Garena is not currently supported in Procurement.


Maximize test coverage

Run existing tests with coverage, see what's not covered, cover it.

I still can't test a few things because of a lack of permissions:

Accounts: create and update - both fail (Forbidden)
Find Transactions: request succeeds, but I never get any transactions back.

Currently, line coverage by tests (including the DemoServerTest integration test) is 90 %. The bulk of the missed lines are POJO getters.

Find Transactions is still empty, but leaving this for now. Closing.


Write to file

Is it possible to dump the output to a GeoJSON file?

I am also wondering the same: I am pretty new to python (just landed to it) and I would like to make a query to Overpass and store the results in a geospatial format (e.g. GeoJSON).
After reading this documentation page I came up with the following code:

import overpy

API = overpy.Overpass()

# Fetch highways within Granollers' city.
result = API.query("""
    area[name="Granollers"][admin_level=8];
    // query part for: “highway=*”
    (way["highway"](area);
    relation["highway"](area);
    );
    // print results
    out body;
    """)

Unfortunately, I am not familiar at all with python and I don't know how to store result as a GeoJSON file (Honestly, I don't even know what kind of thing result is -I tried with type(result) and I get overpy.Result as an output, which doesn't mean much to my poor knowledge). I have been reading overpy documentation but I haven't been able to figure it out.

There is a library to do osm to geojson osmtogeojson, but it requires to have the raw data (xml or json) as returned by Overpass API. I consider that doing geojson conversion is probably off-topic for overpy, but could be nice to have something like a raw str result  returned from overpy to use as input for other tools like osmtogeojson

There is a library to do osm to geojson osmtogeojson, but it requires to have the raw data (xml or json) as returned by Overpass API. I consider that doing geojson conversion is probably off-topic for overpy, but could be nice to have something like a raw str result  returned from overpy to use as input for other tools like osmtogeojson

osmium-tools with "export" command is not well known but do the same (osm to geojson) efficiently (c compiled).

There is a library to do osm to geojson osmtogeojson, but it requires to have the raw data (xml or json) as returned by Overpass API. I consider that doing geojson conversion is probably off-topic for overpy, but could be nice to have something like a raw str result  returned from overpy to use as input for other tools like osmtogeojson

osmium-tools with "export" command is not well known but do the same (osm to geojson) efficiently (c compiled).

There is a library to do osm to geojson osmtogeojson, but it requires to have the raw data (xml or json) as returned by Overpass API. I consider that doing geojson conversion is probably off-topic for overpy, but could be nice to have something like a raw str result returned from overpy to use as input for other tools like osmtogeojson

Overpass Python Wrapper gives back GEOJSON and also raw XML/JSON data in just a few lines of code.
https://github.com/mvexel/overpass-api-python-wrapper


[RFC] Automatically voiding pending transfers based on timeout.

This RFC:
This RFC is based on [WIP] Scan API #1054. The focus is to discuss the design since the implementation will likely change as the Scan API gets reviewed.
State machine:

During the operation's prefetch, search for all pending transfers such timestamp + timeout <= prepare_timestamp and prefetch the debit and credit accounts.

Before the operation is executed, iterate over all expired transfers and (a) Reverse the pending credit/debit for the mutable account involved; (b) Insert the Posted object with .fulfillment = .voided; and (c) Remove the expires_at index entry so that this transfer won't be returned again in the future.

Unlike the manual process where the user inserts a new transfer for voiding the pending one, in the automatic process no void transfer is inserted, only the balance and the Posted groove are updated.

Changes:

New derived index Transfers.expires_at, which is inserted only for pending transfers with timeout>0 and calculated based on timestamp + timeout. This index allows us to search all transfers about to expire in a given timestamp.

TransferPendingExpiry buffer to hold the maximum number of pending transfers we can process in a single operation.
This point is very sensible for the design since we are expiring transfers passively (triggered by operations). The query can return unlimited pending transfers to process at a given timestamp.

Testing:

Benchmark gets 30% of pending transfers chance, to stress the expiration process.

Demo unit test implemented for the Java client: creating a pending transfer, waiting for it to expire, and looking up again.

Great @batiati!
What guarantees will we give re: exactly when a pending transfer is timed out? Will we timeout everything before beginning to execute the batch? What if an expiry timestamp intersects the middle of the batch?

Great @batiati!
What guarantees will we give re: exactly when a pending transfer is timed out? Will we timeout everything before beginning to execute the batch? What if an expiry timestamp intersects the middle of the batch?

I pondered that, but as long we are not recording a new transfer to void the pending one (which would be the evidence of when we did it), it is virtually free of temporality. We can expire all transfers before the first commit, or one by one at the exact timestamp, and it won't change the result that is visible to the user at the end.

I pondered that, but as long we are not recording a new transfer to void the pending one (which would be the evidence of when we did it), it is virtually free of temporality. We can expire all transfers before the first commit, or one by one at the exact timestamp, and it won't change the result that is visible to the user at the end.

I think this does impact what is visible to the user. Suppose I create a batch of transfers, and they are assigned timestamps 10,11,12,...,20.
If there was already a pending transfer due to time out at T=15, then depending on whether the expiring transfer is voided before or after these transfers, the balance in the expiring transfers will be different. Any of these new incoming transfers may reuse the same account(s) as the pending transfer, so differences in the balance are user-visible.

StateMachine's timestamps and timeouts are both nanoseconds.
If timeouts were set with millisecond precision instead (leaving timestamps as nanoseconds), then we could guarantee that timeouts never land in the middle of a batch.
That is, between every millisecond, there are 1e6 nanoseconds, which is more than 8191 (transfers/batch). So if a timeout would land in the middle of a batch, expire the timeout + bump the statemachine timestamp before executing the batch.

I think this does impact what is visible to the user.

@sentientwaffle , you are absolutely right, I explained the thing very poorly 😬.
I was referring to the moment at which the transfer is voided not being visible to the end user, but the way transfers are processed in this RFC is flawed regarding the *_pending components of the balance, whether their expires_at timestamp intersects with the batch or not:

TransferPendingExpiry buffer to hold the maximum number of pending transfers we can process in a single operation.
This point is very sensible for the design since we are expiring transfers passively (triggered by operations). The query can return unlimited pending transfers to process at a given timestamp.

Considering the following example (exaggerated for illustration purposes, but it might happen at any time scale) :

Suppose the user sets a fixed timeout of 24 hours for each pending transfer and then submits 100k pending transfers during the entire day.

Now, let's say the day after is a holiday, so there's no activity in the cluster.

At Day+2's first operation, it will find 100k transfers to expire, but the state machine can only deal with a limited number of them during each operation, ignoring the rest.

I was thinking of solving this issue by processing only the pending transfers for accounts involved in the current batch (we could even check if credits_pending > 0 or debits_pending > 0 before querying). In this case, if an account had an expired transfer, it would remain expired indefinitely until some operation touched it (eg a new transfer or an account lookup).
However, it adds a lot of complexity to prefetch logic, and I feel like I'm just moving the problem around because we can still find an arbitrarily large number of pending transfers per account basis.

If timeouts were set with millisecond precision instead (leaving timestamps as nanoseconds), then we could guarantee that timeouts never land in the middle of a batch.
That is, between every millisecond, there are 1e6 nanoseconds, which is more than 8191 (transfers/batch). So if a timeout would land in the middle of a batch, expire the timeout + bump the statemachine timestamp before executing the batch.

The timeout being expressed as milliseconds makes much more sense to the business logic :+1:
Also, tricking the state machine timestamp is an elegant solution for the intersection problem, although I think it would work orthogonally to the timeout being ms.

Implemented by #1657


"objectID" attribute included in retrieved attributes even when attributesToRetrieve does not specify it

Version 3.12.0
I have the attributesToRetrieve parameter configured to only include a limited specified number of attributes. That works as expected. However, in addition to the list attributes, the objectID is also included. I would prefer to not include the objectID. How can I do this?
If it's not possible to exclude this parameter, I suggest the documentation be updated to indicate that this attribute will be included regardless.

I do think this attribute is always retrieved

This is by design, we will update the documentation


Swift Package Manager Import in Xcode 11.3.1

Swift Package Manager in Xcode 11.3.1, cannot resolve the dependency graph due to tag issues.
It makes no difference if I specify an explicit version or a range. I've verified that this works with a number of other repositories, so it does seem to be related to SwiftyDropbox.

I'm closing it, since there is nothing I can do about it from within this library


Update to use Jupyter Notebook 4.1

[x] bump base image to jupyter/minimal-notebook:761010eda90d
[x] update scala spark kernel build steps
[ ] get resolution to SciRuby/sciruby#45 (can't install sciruby)

After commenting out the ruby-related bit, everything else builds fine. I'll see if I can fix the nmatrix problems.

PR #85 disabled sciruby for the time being.


Failed to load module "window-decorations-gtk-module"

Describe the bug

Please provide following details

JiraCLI Version:1.4.0-1

Are you using Jira cloud or on-premise jira server?Cloud

SERVER INFO
-----------
Version:         1001.0.0-SNAPSHOT
Build Number:    100234
Deployment Type: Cloud
Default Locale:  en_US

What operating system are you using? Also mention version.Arch Linux (23.08.14)

What terminal are you using? Also mention version.Kitty 0.29.2-1

To Reproduce
Steps to reproduce the behavior:

$jira issue list
 on any listed issue
See error appearing between lines of listed issues

Expected behavior

No error messages /  opens issue

Effectively a dupe of #547

Closing as this seems to be system dependent and out of scope of this project.


add payload cost

This proposal will require bundling additional data into JS engines. In order to evaluate the trade-off value we need to estimate the cost.

I take a slightly closer look
location | VVV | Los Angeles |
longLocation | VVVV | Los Angeles TIme
in deed would need a lot of extra data. (my prototype were based on those data filter out and show no localized text) I would put down more estimate about that and recommend not to include them. But four other formats looks like won't cost that. much. Stay tune of the number.

Here is my finding about the data size. I put how I get the number in the README.md. I also change my proposal
(notice the below calculation only count the size for the "value", not including the size for the "key", you can estimate the extra size for the key, by using the number of items, the size for the key heavily depend on how the data were encoded)

the shortGMT and longGMT use one pattern per locale, so to cover ALL the locales in icu data set (not just the one shipped with Chrome) it took 263 items, total 1826 bytes in UTF8 and gzip compressed 392 bytes together.
to support the shortWall, since it fallback to pre-existing pattern if absent, to cover ALL the locales in icu data set (not just the one shipped with Chrome) it took 332 items, 1719 extra UTF-8 bytes, and gzip 311 bytes together.
to support the longWall, since it fallback to pre-existing pattern if absent, to cover ALL the locales in icu data set (not just the one shipped with Chrome) it took 10047 items, 278103 extra UTF-8 bytes, and gzip 69526 bytes together.

Chrome already include all the data for the above 3 for the locales we already supported, so it present no extra data size impact for chrome. Just list above to show what happen if a new implementation will take if they previously only support the minimum data for short and long and they now need to include more data for that if they want to support ALL locales. If they want to support the same number of Locales chrome support, the size will be smaller.
(UTF8 bytes mean the size in UTF8, instead of in UTF16, which could be more bytes, or less bytes)
I also agree location and longLocation will take too much data size increase and change my position and would like to against to support them. The two formats basically use the same amount of data (the long one just use an extra pattern per locale ) support either one or both of them will take 45924 items,  664784 bytes in UTF8 and compressed to  196639 bytes which v8/chrome would like NOT to implement them.
as I mentioned in https://github.com/FrankYFTang/proposal-intl-extend-timezonename/issues/2 I also believe one of the format Steven strawman were for toISOString (since it format ISO8601 for machine to read not for human to read) and not here for ECMA402.

@zbraniecki with the information I put into README.md, do you think I can close this issue?

Yeah! Thank you for doing that!
Can you add the longWall estimate to the README.md as well? You only put location and longLocation`'s payload.
I think the longWall remains the only debatable item which you want to include but cost - 278kb on disk and 69kb zipped. Ballpark I can see us debate in Stage 2 over :)
One more thought, maybe for @sffc to consider for his guidelines - increasing payload size has consequences not just on the entry barrier for a strawman "new implementer". It also changes the tradeoff for including more locales.
If an engine ships 50 locales, and the Product evaluates adding 20 more locales, and we increase the cost by 10kb per locale, then the Product is evaluating +200kb which may tilt the decision.
In other words, the larger ECMA-402 payload is, the higher the entry barrier is to be added to locales handled by the engines and in result to be represented on the Web.
As ECMA-402 becomes popular solution to the common problem, the odds of client-side solutions that will handle the additional locales, are getting lower, because the tradeoff of a Product Manager for a website is becoming "0kb to handle 50 locales" vs "Xkb to handle additional locales" where X is non-zero.
That as well increases the odds that the website will only support locales supported by ECMA-402 engines.
I think this realization increases our responsibility to balance the value of adding 5th time zone format vs. supporting 5 more locales on the Web.

I think we must consider the two data axes separately.
Beyond the top 50-60 locales, there is a very long tail.  The best way to support that tail is to use the "language pack" model, where browsers or implementations download packs of data when you set up your browser or change your language preference.
As a general principle, I don't think it is good to compare "5th time zone format vs. supporting 5 more locales on the Web."  If Firefox in particular has that constraint, you should bring it up when we talk about implementability for Stage 3.  I just don't think we will get very far by putting constraints based on theoretical future implementations whose requirements we can only guess.

If Firefox in particular has that constraint, you should bring it up when we talk about implementability for Stage 3.

I don't think this is Firefox in particular issue. I would expect the same question and tradeoff to be faced by any implementer.

I just don't think we will get very far by putting constraints based on theoretical future implementations whose requirements we can only guess.

I don't think this is what I'm bringing. I'm claiming that since payload costs, every payload increase in one axis, costs the other and we should be aware of that.

Beyond the top 50-60 locales, there is a very long tail.

The cut-off is artificial and arbitrary.

The best way to support that tail is to use the "language pack" model, where browsers or implementations download packs of data when you set up your browser or change your language preference.

And I hope we'll get to such model, but ICU4C doesn't support it well. I hope to get there with ICU4X, but until that is validated, I think that "vertical" (adding more data per locale) vs "horizontal" (adding more locales) is a real tradeoff.

Can you add the longWall estimate to the README.md as well? You only put location and longLocation`'s payload.

I did. It was always there. Notice there are two table. I put that in the top one. since I remove the location and longLocation, I also put the number for that in the lower table since I remove these two from the top table.

Close this issue because the issue is to add payload cost info and I did. We can debate which particular one should keep/remove in other ticket.

Ah, I see! Those two tables are a bit confusing, since the former one has a cell with information that is missing in the corresponding cell in the bottom table. But the data is in README, so I'm fine :)
Thank you!


bob run pre+post scripts

Run Workflow
Assumption
Pre can be handled by dependencies. --> No need for further implementation.
Post is meant to be done after a Task has finished. Since our run tasks are meant to stay alive it doesn't make sense to do anything after stopping this task.
Init is meant to run as soon as the run task is in a running state (e.g. docker-compose up has all containers in running|healthy state). This is what is meant to be implemented with this ticket.
Leads to following run workflow:
flowchart TD
  A[$:bob run environment] --> B{Has dependencies?};
  B -- Yes --> C[Build dependencies!];
  B -- No --> D[Start Runtask environment!];
  C ----> D[Start Runtask environment!];
  D --> E{Is running?};
  E -- No --> F[Wait];
  F --> E;
  E -- Yes --> G{Has Init Task?};
  G -- No --> H[Done. Wait for SigStop.];
  G -- Yes --> I[Run Init Task!];
  I --> H;

A usecase for a post script would be to clean up some files that could have been generated during the run time of an interactive task, e.g. logfiles.

I agree for our current usecase init is the behaviour we want. The unclear question is how a init task is triggered?
We made the experience that often script can only be executed after preconditions are fullfilled like a /health route returning 200. Same for database rampup as it takes a while till a database is functional when started detached.
I suggest we have a run task with this semantics.

I agree for our current use case init is the behavior we want. What should be the trigger for init to run?
Executing Init
This seems to be a good place https://github.com/benchkram/bob/blob/main/pkg/ctl/commander.go#L16 to start the init script. binary&compose start procedure is over. Control is given to the TUI as early as possible to assure output is correctly streamed to the user.
Working together with the TUI

the init cmd should stream the output correctly to the TUI
the init cmd must react correctly to a Stop() signal from the TUI

From a implementation standpoint it seems to be required that init must fullfill the Control interface https://github.com/benchkram/bob/blob/main/pkg/ctl/commander.go#L164 to receive the stop/cancel cmd from the TUI correctly. Though it requires us to reuse the shell from the build tasks... the implementation could be relatively easy as restart is not required and the shell can handle a canceable context, see https://github.com/benchkram/bob/blob/main/bobtask/run.go
Run task
A run-task with init looks like this?
run:
  server:
    type: binary
    path: ./build/server
    init: |-
      ./run-database-init.sh

In the case of init: being used on multiple levels in a pipeline the init cmd's should only be executed when the umbrella task triggers. Could make signal handling much easier.
Out of scope:
We made the experience that often script can only be executed after preconditions are fulfilled like a /health route returning 200. Same for database ram pup as it takes a while till a database is functional when started detached. Tough i would leave those kind of preconditions checks to the script called with init.

Pre scripts closed by #84


Add new locale  ?

How can I integrate another locale to plugin? So countries will be displayed with another language ?

How can I integrate another locale to plugin? So countries will be displayed with another language ?

Sadly this is only possible by building your own version:

Fork and clone the repository and npm install.
Change the imported langs in src/bootstrap-select-country.js#L4-L6
Test your new version with: npm start.
Build a new bundle with npm build.


add to favorites

add a bandname to favorites.  We should put this function in the band name generator and also the name search

This is what I'm imagining: You can add to favorites 1) from the band name generator, 2) from your profile page (adding new band names manually), and 3) when Spotify search returns no results (meaning the band name you searched is unique). Does it sound like we have the same vision?


types for jasmine (v2.8.3) does not match with those for TestScheduler

I have project with Angular 5, rxjs v 5.5.6, typescript v2.5.3
Now I am struggling with unite tests for rxjs. When I try to create a new TestScheduler, typescript start to complaining
const testScheduler = new TestScheduler(
      (actual, expected) => expect(actual).toEqual(expected)
    );

And typescript says:

[ts]
Argument of type '(actual: any, expected: any) => Promise' is not assignable to parameter of type '(actual: any, expected: any) => boolean | void'.
Type 'Promise' is not assignable to type 'boolean | void'.
Type 'Promise' is not assignable to type 'void'.

When I revert the version of types/jasmine form 2.8.3 to 2.5.38 everything is ok.
I am wondering is there something that I have missed? Or there is really mismatch with types

You're returning a Promise where one is not expected. The function you provide to TestScheduler should not return anything. Change it to:
const testScheduler = new TestScheduler(
  (actual, expected) => { expect(actual).toEqual(expected); }
);

It seems that I really missed something. Thanks!


Update Bot.py

change req new button

I hope you ran and tested it, since I haven't 😄

brother i just added the coordinates i tested nothing was at work ill try it now. for note you had me add the X Y on line 261 i will test now

I hope you ran and tested it, since I haven't 😄

running that particular edit locks up in same location any other ideas?

Done here https://github.com/MOj0/LoR-Bot/pull/41


changing from _ to 1 abd . to 1

Closes: #1
Updated validations.py python script.
Fixed the behaviour of validate_user function in validations.py
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

Closes: #1 Updated validations.py python script. Fixed the behaviour of validate_user function in validations.py
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ]  Tests pass
[ ]  Appropriate changes to README are included in PR


runtime(doc): change "VIsual mode" to "Visual mode" in :h SafeState

"Visual mode" is used everywhere else in the help when not referring to
something in the source code.

thanks!


clarify types hash values

i think the readme could be more explicit on how to set up a configuration. this goes along with #39 to help with that

Closing as it has been merged with #39

Closing as it has been merged with #39


Exception in E/Config:Grabber:GameModeImComponents when calling play

Each time I call AudioPlayer.play, the following error appears in the error log (but the audio plays anyway):
E/Config:Grabber:GameModeImComponents(31855): Exception:Value 2dfb8af(...)f986538a7e of type java.lang.String cannot be converted to JSONArray

There isn't enough information on this issue for us to act on. Please edit this, or open a new one and please follow the issue template.
Feel free to comment here and we can re open this eventually.


[THORN-2034] Introduce Jose Fraction

Motivation
See https://issues.jboss.org/browse/THORN-2034
Modifications
New "jose" fraction, testsuite-jose (testing the currently default Apache CXF implementation) and testsuite-jose-jose4j (testing Jose4j based one) are added. Apache CXF is 3.2.5-SNAPSHOT (to be released end of May - early June). The default implementation can be easily switched (as shown in the testsuite-jose-jose4j) as required. The feature has the experimental tag.
Result
Users will apply JOSE with ease to their application service and filter code. It is not tied to JAX-RS contexts and can be used anywhere the data integrity/confidentiality are important

Tests run without RunAsClient. The goal is to test a non-Inject lookup as well - given that Inject works in ApplicationScoped beans only while the Jose fraction is expected to work in different scopes

Hi @starksm64, can you please review as well ?

retest this please

@sberyozkin, I'll try to take a look at this Tuesday night UK time as I'm in Newcastle for a meeting. I have some MP-JWT changes that I have been testing out for the MP-JWT 1.1 release due out by June 1 that I'll have to merge into these efforts. Unfortunately it looks like I forgot to push the changes to my fork so I don't have anything for you to look at, but they changes are relatively minor.

Hi @starksm64, thanks, have a look please when you get some spare time. This new fraction is about the generic JOSE support at the Thorntail level. Ken agreed that when it eventually makes to the master it will only be available to the upstream users initially, so the product won't be affected until some interest for it is expressed.

retest this please

retest this please

The docker subproject is failing all the time for this specific PR

retest this please

I probably need to close this pull request and create a new one

Reopening it as it has all the comments, sorry for the noise, Ken spotted it was related to the current SNAPSHOT dependency

Is there a release for the dependency that can be used yet?

I've updated the versions, can have a look in a week on the status.

both jose and jose4j tests pass on Linux, strange warning on Win around accessing a keystore resource, but all jose tests are shown as passed.
@kenfinnigan, @starksm64, what do you think ?

The exception didn't appear to fail the tests, which is unusual.
Build appears to fail because the enforcer found temp files present

@kenfinnigan interesting, I've tried to move it above the Keycloak server tests, Keycloak server explodes all the themes to the temp folder by default (have a pending PR to optionally disable it)

H Martin, can you please have a look, when you are back, at the way testsuite-jose is setup ? I wonder if there is something there that can be improved to avoid it consistently failing on Win with the enforcer-plugin error... thanks

@sberyozkin the BulkheadAsynchTest.testBulkheadClassAsynchronousDefault failure can be safely ignored on windows.

@mkouba, @kenfinnigan if you OK with it then please consider merging; I look forward to doing some more work around it going forward, thanks

Windows build is green :-). Has been awhile since I saw it passing...


Guid changes

It seems that since 2.12.0 (added StringLiteralCharacter) there has been one less zero in the Guids, (last part). Doesn't seem intended.
""00000000-0000-0000-0000-000000000000""
vs
"{slc}00000000-0000-0000-0000-00000000000{slc}"

thanks a lot! my mistake
fix release in https://github.com/AdaskoTheBeAsT/Typewriter/releases/tag/v2.15.0


create app in cartoview1.8.1

when I try to create app it give me message that apps has not been installed, is there a program should be installed to create app?

Cartoview Version : (1.8.1)

can you specify which app is not creating an instance


Feature Request: Vscode extensions

It would be super helpful if nvfetcher could manager vscode extensions. Here is how nixos updates vscodes extensions
I think the toml would look like
[myextension]
src.vscodeMarketplace = "publisher.name"
fetch.vscodeMarketplace = "publisher.name"

[myextension2]
src.openVSX = "publisher.name"
fetch.openVSX = "publisher.name"

and would produce
Using vscode Marketplace
  {
    myextension = {
    pname = "myextension";
    name = "LiveServer";
    publisher = "ritwickdey";
    version = "5.6.1";
    src = fetchurl {
      sha256 = "077arf3hsn1yb8xdhlrax5gf93ljww78irv4gm8ffmsqvcr1kws0";
      url = "https://ritwickdey.gallery.vsassets.io/_apis/public/gallery/publisher/ritwickdey/extension/LiveServer/5.6.1/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage";
    };

  };
Using OpenVSX
  {
    myextension2 = {
    pname = "myextension2";
    name = "LiveServer";
    publisher = "ritwickdey";
    version = "5.6.1";
    src = fetchurl {
      sha256 = "1hzk5g7m3mvgi5jyv3xfw6q8rz21vwa1r1a8f8iik9pgma3pkymq";
      url = "https://open-vsx.org/api/ritwickdey/LiveServer/5.6.1/file/ritwickdey.LiveServer-5.6.1.vsix";
    };

  };

I have created a simple and poorly written (but functional) shell script to demonstrate the URLs nvfetcher would need to use to get versions and extensions.
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p curl jq
set -eu -o pipefail

# Helper to just fail with a message and non-zero exit code.
function fail() {
    echo "$1" >&2
    exit 1
}

# Helper to clean up after ourselves if we're killed by SIGINT.
function clean_up() {
    TDIR="${TMPDIR:-/tmp}"
    echo "Script killed, cleaning up tmpdirs: $TDIR/vscode_exts_*" >&2
    rm -Rf "$TDIR/vscode_exts_*"
    rm -Rf "$TDIR/openVSX_*"
}

function mkSourceGenerated() {
    cat <<-EOF
  {
    $1 = {
    pname = "$1";
    name = "$2";
    publisher = "$3";
    version = "$4";
    src = fetchurl {
      sha256 = "$5";
      url = "$6";
    };

  };
EOF
}

function vscodeGetVersion() {
    if [ ! -z $1 ] && [ ! -z $2 ]; then
        publisher=$1
        extName=$2
        read -r -d '' jsonPayload << EOJ
{
   "filters":[
      {
         "criteria":[
            {
               "filterType":8,
               "value":"Microsoft.VisualStudio.Code"
            },
            {
               "filterType":10,
               "value":"${publisher}.${extName}"
            },
            {
               "filterType":12,
               "value":"4096"
            }
         ],
         "pageNumber":1,
         "pageSize":2,
         "sortBy":0,
         "sortOrder":0
      }
   ],
   "assetTypes":[

   ],
   "flags":946
}
EOJ
        paramsArr=(
            "-H 'Accept: application/json;api-version=6.1-preview.1'"
            "-H 'Referer: '"
            "-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.51.0 Chrome/83.0.4103.122 Electron/9.3.3 Safari/537.36'"
            "-H 'X-Market-Client-Id: VSCode 1.51.0'"
            "-H 'Content-Type: application/json'"
            "--data-binary '${jsonPayload}'"
            "--compressed"
        )

        params=$(printf "'%s' \\" "https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery")
        for arg in "${paramsArr[@]}"; do
            if [ "$arg" = "${paramsArr[-1]}" ]; then
                params=$(printf "%s\n  %s" "${params}" "${arg}")
            else
                params=$(printf "%s\n  %s \\" "${params}" "${arg}")
            fi
        done

        getResp=$(printf "curl --silent --show-error --fail %s\n" "${params}")
        resp=$(eval "${getResp}")
        version=$(echo "${resp}" | jq -r '.results[0].extensions[] | {version: .versions[0].version}' | awk '{print $2}' | sed 's/"//g' )
        echo $version
    elif [ ! -z $1]; then
        fail "Forgot extension name"
    else
        fail "Forgot publisher and extension name"
    fi
}

function getExtension() {
    if [ ! -z $1 ] && [ ! -z $2 ] && [ ! -z $3 ]; then
        publisher=$1
        extName=$2
        pname=$3
        # Will use OpenVSX if provided 4 arguements
        if [ $# == 4 ]; then
            version=$(curl --silent --show-error --fail https://open-vsx.org/api/${publisher}/${extName} | jq  .version | sed 's/"//g')
            URL="https://open-vsx.org/api/${publisher}/${extName}/${version}/file/${publisher}.${extName}-${version}.vsix"
            EXTTMP=$(mktemp -d -t openVSX_XXXXXXXX)
        else
            version=$(vscodeGetVersion ${publisher} ${extName})
            EXTTMP=$(mktemp -d -t vscode_exts_XXXXXXXX)
            URL="https://${publisher}.gallery.vsassets.io/_apis/public/gallery/publisher/${publisher}/extension/${extName}/${version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage"
        fi
        vsixFile="${publisher}.${extName}-${version}.vsix"

        # Quietly but delicately curl down the file, blowing up at the first sign of trouble.
        curl --silent --show-error --fail -X GET -o  "${EXTTMP}/${vsixFile}" -L "${URL}"

        sha256=$(nix-hash --flat --base32 --type sha256 "${EXTTMP}/${vsixFile}")
        genNix=$(mkSourceGenerated ${pname} ${extName} ${publisher} ${version} ${sha256} ${URL})

        # Clean up.
        rm -Rf "$EXTTMP"
        # I don't like 'rm -Rf' lurking in my scripts but this seems appropriate.

        printf "$genNix\n"
    elif [ ! -z $1] && [ ! -z $2 ]; then
        fail "Forgot pname"
    elif [ ! -z $1]; then
        fail "Forgot extension name, and pname"
    else
        fail "Forgot publisher, extension name, and pname"
    fi
}

# Try to be a good citizen and clean up after ourselves if we're killed.
trap clean_up SIGINT

getExtension ritwickdey LiveServer myextension
getExtension ritwickdey LiveServer myextension2 "true"

NOTE: You will have to scroll to view source.

I'm sorry I am not familiar with haskell or I'd send a PR.

Thanks for you detailed feature request. Unfortunately, nvfetcher itself does not yet support tracking upstream souces (we call nvchecker to do that). The logic to get the version of vscode extension should be implemented in nvchecker imho, so could you please open a ticket on their repo: https://github.com/lilydjwg/nvchecker/issues?

Feature added in nvchecker in PR 195


Upgrade to DataFusion 8.0.0

We probably won't stay on the official version for long since we'll need to upgrade again to pick up new features, like OFFSET support, but I thought it would be good to use the official release that was just published.

Codecov Report

:exclamation: No coverage uploaded for pull request base (datafusion-sql-planner@7030909). Click here to learn what that means.
The diff coverage is n/a.

@@                    Coverage Diff                    @@
##             datafusion-sql-planner     #533   +/-   ##
=========================================================
  Coverage                          ?   54.10%
=========================================================
  Files                             ?       70
  Lines                             ?     3456
  Branches                          ?      693
=========================================================
  Hits                              ?     1870
  Misses                            ?     1467
  Partials                          ?      119

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


tried adding a runnable pointing to a different file panic

thread '<unnamed>' panicked at 'tried adding a runnable pointing to a different file: DocTest { test_id: Path("macros::point") } for FileId(63)', crates/ide/src/runnables.rs:132:13
stack backtrace:
   0: rust_begin_unwind
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:498:5
   1: core::panicking::panic_fmt
             at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:116:14
   2: ide::runnables::runnables::{{closure}}
   3: ide::runnables::runnables::{{closure}}
   4: ide_db::helpers::visit_file_defs
   5: ide::runnables::runnables
   6: ide::annotations::annotations
   7: ide::Analysis::annotations
   8: rust_analyzer::handlers::handle_code_lens
   9: std::panicking::try
  10: <F as threadpool::FnBox>::call_box
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

macros::point do you have the source for this part perhaps? ( sounds like this might be happening since I've merged ModuleDefs and MacroDefs now )

Yeah, somewhere in https://github.com/georust/geo/, in the geo-types crate, possibility on a test. I don't know how easy it is to reproduce.

I think this happens when opening geo-types/src/lib.rs.

Oh this might be triggered by #[macro_export] macros.


Bump docs-action to v1.0.5

Proposed changes
Bump docs-action to v1.0.5.
Adds support for latest hugo and nginx hugo theme version.
Checklist
Before creating a PR, run through this checklist and mark each as complete.

[x] I have read the CONTRIBUTING doc
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have checked that all unit tests pass after adding my changes
[x] I have updated necessary documentation
[x] I have rebased my branch onto main
[x] I will ensure my PR is targeting the main branch and pulling from my branch from my own fork

I have hereby read the F5 CLA and agree to its terms

@nginx-jack we have a bot for this kind of updates, there’s no need to do it manually https://github.com/nginxinc/nginx-gateway-fabric/pull/2565


eWeLink Devices disappear from Homebridge randomly and after restart the homebridge service

What issue do you have? Please be as thorough and explicit as possible.
eWeLink Devices disappear from Homebridge randomly and after restart the homebridge service.
Is there an option, to keep the devices persitent permanently?
Details of your setup.

Do you use Homebridge (with config-ui?) or HOOBS?
Homebridge with config UI

Which version of Homebridge/HOOBS do you have?
1.1.6

Which version of this plugin (homebridge-ewelink) do you have? Has the issue started since upgrading from a previous version?
3.15.0

Which eWeLink devices do you have that are causing issues? Please include product models if applicable.
Sonoff Basic, TH16, B1, RF

Do you use your main eWeLink credentials or do you use a secondary eWeLink account for Homebridge?
I use a secon eWeLink Account with shared devices from my main account.

Please paste any relevant logs below.

Hi @axelweichert
The plugin only removes accessories from Homebridge (on restart) if they are no longer found in your ewelink account.
The plugin will also remove and re-add rf bridge devices if it detects a change to the number of linked devices.
Without logs to see what’s going on, it’s very difficult to get an idea of why this is happening.
You state you use a secondary ewelink account, I would recommend using your main ewelink account credentials instead.
thanks

Hello, unfortunately the same for me :(
Do you use Homebridge (with config-ui?) or HOOBS?
Homebridge with config UI
Which version of Homebridge/HOOBS do you have?
v1.3.0-beta.31
Which version of this plugin (homebridge-ewelink) do you have? Has the issue started since upgrading from a previous version?
v3.17.0 no it was also with 3.16.1
Which eWeLink devices do you have that are causing issues? Please include product models if applicable.
ALL - Sonoff Basic, TH16/10, G1, S20  ...
Do you use your main eWeLink credentials or do you use a secondary eWeLink account for Homebridge?
I use a main eWeLink Account
Thank you in advance for any help.

Hi @romanplzen there is nothing in your logs to show that devices are being removed from Homebridge? What exactly do you mean by "all goes offline"?

Hello Ben, thank you for your quick reply. Sorry for that, I should have been more specific. I meant that after while of normal function there is a change of status to "actualization" and then new status "without an answer". At the same time all devices in generic Ewelik works well.
Thank you

@romanplzen the “no response” error, does this appear for all homebridge devices? or just ewelink devices in homebridge?

Sorry, that i am answerimg that late. Exactly the same here. When restart the the Homebridge Service, some of the eWelink Devices (Baic, Basic RF, TH16, POW, S20) has disappeared from my Homebridge / Home environment. When i toggle the power state of the device it appears again in homebrige and stays there until next restart. This occures only on the 20 of 60 eWeLink devices, but not on Osram Lightify or eQ3-Max devices. All plugins are up to date and i am using my main eWeLink Account.

@romanplzen and @axelweichert
the next time a device or devices say “no response” or “disappear” from homebridge, please have a look at the homebridge logs to see if there are any error messages or anything that doesn’t look normal.
Without logs, it’s almost impossible for me to determine what the issue could be and even whether you are both experiencing the same problem or something different

@bwp91 “no response” error for  just ewelink devices in homebridge, IKEA Tradifi works.
I already sent my HB log, but it doesn´t show anything suspicious. I think we have different kind of problem and want to apologize I have opened topic with just similar name.

Mine doesn't show anything suspicious too. Normal start behavior, but not all of my devices are discoverd. When i toggle the power state of the device, the will be discovered and appear in homebridge.

@axelweichert this isn’t a plugin that “discovers” devices, it obtains a definitive list of your ewelink devices via your ewelink account. did you change your config to use your main ewelink account details?

Strange, because all devices appear always as state "Online" in my eWeLink account. I did not change my config within the last 2 years.
My Amazon Alexa ist working also well with the eWeLink devices.

Is there a pattern to which devices don’t appear? eg. specific models?

If either/both of you want to message me directly on my discord channel, might be a little bit easier/quicker:
https://discord.gg/cMGhNtZ3tW

Hello Ben,
after logging enabled there is something appeared, but devices are still "without answer" ... thank you for your time.
[8. 12. 2020 9:23:59] Homebridge v1.3.0-beta.31 is running on port 51107.
[8. 12. 2020 9:23:59] [eWeLink] HTTP API host received [eu-apia.coolkit.cc].
[8. 12. 2020 9:23:59] [eWeLink] Sending HTTP login() request.
[8. 12. 2020 9:24:01] [eWeLink] Web socket host received [eu-pconnect7.coolkit.cc].
[8. 12. 2020 9:24:02] [eWeLink] Sending WS login request.
[8. 12. 2020 9:24:05] [eWeLink] [21] eWeLink devices loaded from the Homebridge cache.
[8. 12. 2020 9:24:05] [eWeLink] [21] primary devices loaded from your eWeLink account.
[8. 12. 2020 9:24:05] [eWeLink]  → [Garazova vrata] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Kůlna VĚTRÁK] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [POE panel] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [POE půda] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [POE kůlna] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [POE sloupek] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [NVR obývák] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Lampa obývák] initialised but LAN mode unavailable as device doesn't support it.
[8. 12. 2020 9:24:05] [eWeLink]  → [Osvětlení DETSAK] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Osvětlení KUCHYNĚ] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Osvětlení PRACOVNA] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Osvětlení LOŽNICE] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Osvětlení OBÝVÁK] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Osvětlení OBÝVÁK 2] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [S20 zásuvka ] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Whirlpool ] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Whirlpool temperature ] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Krmení ] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Kůlna ZAVLAŽOVÁNÍ] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [Test] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink]  → [PCH Brána ] initialised but LAN mode unavailable as device is unreachable.
[8. 12. 2020 9:24:05] [eWeLink] eWeLink sync complete. Don't forget to ⭐  this plugin on GitHub if you're finding it useful!
[8. 12. 2020 9:47:24] [eWeLink] WS message received.
[8. 12. 2020 9:47:24] [eWeLink] [Kůlna VĚTRÁK] WS update received and will be refreshed.
[8. 12. 2020 10:22:01] [eWeLink] WS message received.
[8. 12. 2020 10:22:01] [eWeLink] [Kůlna VĚTRÁK] WS update received and will be refreshed.
[8. 12. 2020 10:24:05] [eWeLink] Web socket host received [eu-pconnect3.coolkit.cc].
[8. 12. 2020 10:24:05] [eWeLink] Web socket gracefully closed.
[8. 12. 2020 10:24:05] [eWeLink] Sending WS login request.
[8. 12. 2020 10:42:27] [eWeLink] WS message received.
[8. 12. 2020 10:42:27] [eWeLink] [Kůlna VĚTRÁK] WS update received and will be refreshed.
[8. 12. 2020 10:48:58] [eWeLink] WS message received.
[8. 12. 2020 10:48:58] [eWeLink] [Osvětlení DETSAK] WS update received and will be refreshed.
[8. 12. 2020 11:04:23] [eWeLink] WS message received.
[8. 12. 2020 11:04:23] [eWeLink] [Kůlna VĚTRÁK] WS update received and will be refreshed.
[8. 12. 2020 11:24:05] [eWeLink] Web socket host received [eu-pconnect3.coolkit.cc].
[8. 12. 2020 11:24:05] [eWeLink] Web socket gracefully closed.
[8. 12. 2020 11:24:05] [eWeLink] Sending WS login request.
[8. 12. 2020 11:41:36] [eWeLink] WS message received.
[8. 12. 2020 11:41:36] [eWeLink] [Kůlna VĚTRÁK] WS update received and will be refreshed.
[8. 12. 2020 12:24:05] [eWeLink] Web socket host received [eu-pconnect5.coolkit.cc].
[8. 12. 2020 12:24:05] [eWeLink] Web socket gracefully closed.
[8. 12. 2020 12:24:05] [eWeLink] Sending WS login request.
[8. 12. 2020 13:24:05] [eWeLink] Web socket host received [eu-pconnect1.coolkit.cc].
[8. 12. 2020 13:24:05] [eWeLink] Web socket gracefully closed.
[8. 12. 2020 13:24:05] [eWeLink] Sending WS login request.
[8. 12. 2020 13:30:27] [eWeLink] WS message received.
[8. 12. 2020 13:30:27] [eWeLink] [Kůlna VĚTRÁK] WS update received and will be refreshed.
[8. 12. 2020 14:24:05] [eWeLink] Web socket host received [eu-pconnect8.coolkit.cc].
[8. 12. 2020 14:24:05] [eWeLink] Web socket gracefully closed.
[8. 12. 2020 14:24:05] [eWeLink] Sending WS login request.


Function that takes a module list and all local modules, and converts it into a dependency graph. This should also load from the cluster.

Implemnted in #965


fix(preset/near-operation-file): accept skipDocumentsValidat

Reverts dotansimha/graphql-code-generator-community#413

looks like it's working @HermanBilous 🎉


Hooked up delegate calls & changed DetailViewController lifecycle.

Several of the delegate protocol calls weren't getting called, so I hooked them up based on my understanding of your intent.
Also, cardDidTapInside was being called twice for CardGroup.

Great ! Nothing to say. Thanks ✨


[CI] Test out new comment trigger worflows from fork

Similar to #1104 but from a fork, which seems to not be working.

[test ITensorGaussianMPS]

Codecov Report

Merging #1105 (dc77c82) into main (f116018) will decrease coverage by 31.58%.
The diff coverage is n/a.

:exclamation: Current head dc77c82 differs from pull request most recent head 6879863. Consider uploading reports for the commit 6879863 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff             @@
##             main    #1105       +/-   ##
===========================================
- Coverage   85.11%   53.53%   -31.58%
===========================================
  Files          86       85        -1
  Lines        8305     7770      -535
===========================================
- Hits         7069     4160     -2909
- Misses       1236     3610     +2374

see 65 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

/deploy

[test ITensorGaussianMPS]

[test ITensorUnicodePlots]

Closing this, looks like the new comment trigger workflows are working now (including for PRs made from forks, which was broken before since the workflow was fetching from a URL derived only from the branch and not accounting for the fork).


moment.locale() does not work

Hi,
i tried using
// app/routes/applicaton.js
import moment from 'moment';

export default Ember.Route.extend({
  beforeModel() {
    // sets the application locale to Dutch
    moment.locale('nl');
  }
});

But it doesn't set the language at all, it still stays at 'en'. Anything else i need to configure first to make this work?
(im on the latest version)

Strange, will investigate tonight.  Is your app public?  Did you include the locals via your app config?

Sorry forgot to close this, it was my fault I didn't include the locales, I expected them to be included since moment includes it standard. Maybe add that to the readme?
Sent from my iPhone

On 23 Jul 2015, at 21:18, jasonmit<EMAIL_ADDRESS>wrote:
Strange, will investigate tonight. Is your app public? Did you include the locals via your app config?
—
Reply to this email directly or view it on GitHub.

I can make it so it includes all by default but few apps will target all the locales, so that won't be optimal.  Feel free to send a quick readme patch to cover the issue you found.

https://github.com/stefanpenner/ember-moment/releases/tag/3.1.0 be sure to re-install via ember install since the generator needs to run.

Oh awesome! Thank you :)


"error":"bad server response"

Describe the bug
I can't authenticate and get an ""error":"bad server response" in my report logs, and I am using the latest version of watermint.
This is related to issue https://github.com/watermint/toolbox/issues/670

@nevch1983 Could you try with the latest version?
Your version is 111, but 113 is the latest.
https://github.com/watermint/toolbox/releases/tag/113.8.795

it worked! thanks!


Pushing changes fails

Currently problems updating the main branch. Error when trying to push changes upstream.

You have to pull first, and then merge any files where you have diverging changes.


docs(root): remove trailing slash from site

Summary of the changes
remove the trailing slash on the site to prevent the flicker on the initial render
Checklist

[x] I have manually accessibility tested any changes, if relevant.
[x] I have raised this pull request against the develop branch

I think this makes it worse, don't merge


[BUG] New menu when opening the roblox

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[ ] I did not answer truthfully to all the above checkboxes.

What problem did you encounter?
with the new update, it is no longer convenient for me to open bloxtrap and besides, bloxshade is no longer installed on bloxtrap
Bloxstrap Log

You can configure direct launch shortcut in the settings.


access token error after Yale Home update

Hi, thanks for making the Yale Home updates so quickly. It looks like I got kicked off the old API today, so I updated yalexs, but now I'm hit with this error:
yalexs.exceptions.AugustApiHTTPError: The operation failed because: access token - user migrtated
How do I update my access token?

Ok, thanks. After some digging I found out that I needed to set the brand as such:
from yalexs.const import Brand
...
self.yale_api = Api(timeout=20, brand=Brand.YALE_HOME)

However I'm now stuck waiting for the validation code. Am I missing any other changes, or do you think there's an issue at Yale's end?

I might have missed something when I added support since I only tested the async api

It turns out the emails were very delayed and everything is working as expected! Thanks again for a great library.

Once again I'm waiting 30+ minutes for the codes to arrive in my inbox. Has Yale changed something and broken this library, or are they just very slow at sending the emails? Is it broken for anyone else?

...and once again after leaving it alone for awhile I retry the auth and suddenly get a flood of code emails from Yale. Something odd must be up with their email queuing.


"No response received"

Hi,
From time to time I see the error "No response received" in my log.
I see it comes from:
if (responseObject == null)        responseObject = new ApiResponse<T> { Ok = false, Message = "No response received" };
and I checked that responseString is empty:
responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
my question is: do we know why no response is received?
Is the problem from my side or Telegram?

I've contacted Telegram support and they said calling sendMessage should always return a Message object or error... any idea of why I'm receiving an empty response?

I think it's because there is a timeout of 10 sec. If sendMessage doesn't reply before this period, then responseString will be empty, right?

Hi,
i observed this in cobination with a bug in sending files (fixed in 9a09320a631893c4bda2e08b7872a56e0781a392)
if the request timesout, there should be an Exception (i think a TaskCanceledException)
cann you ty the v12 beta?


[Feature] Add mod support through BepInEx

Valheim has a bunch of mods available on NexusMods that work when loaded through the BepInEx modding framework / https://www.nexusmods.com/valheim/mods/4 . Downloading them and shoving them on the volumes on this docker doesn't work because it needs extra setup on unix. https://bepinex.github.io/bepinex_docs/master/articles/user_guide/installation/index.html?tabs=tabid-nix

I've tried adding BepInEx myself but I'm beat... The loader startup scripts just sets up some env variables which can be done in docker-compose with:

DOORSTOP_ENABLE=TRUE
DOORSTOP_INVOKE_DLL_PATH=/home/steam/valheim/BepInEx/core/BepInEx.Preloader.dll
LD_LIBRARY_PATH=/home/steam/valheim/doorstop_libs
LD_PRELOAD=libdoorstop_x64.so
DYLD_LIBRARY_PATH=/home/steam/valheim/doorstop_libs
DYLD_INSERT_LIBRARIES=/home/steam/valheim/doorstop_libs/libdoorstop_x64.so

The library download is at https://builds.bepis.io/projects/bepinex_be and needs copying to the right volume location.
They also mention needing gcc 10+ so a modified image is required with that installed:
RUN echo 'deb http://deb.debian.org/debian testing main' >> /etc/apt/sources.list
&& apt-get update && apt-get install -y --no-install-recommends -o APT::Immediate-Configure=false gcc g++
It's just crashing with undefined symbol errors:
ln: symbol lookup error: /home/steam/valheim/doorstop_libs/libdoorstop_x64.so: undefined symbol: dlopen

Adding belpix support wouldn't be too hard <3

Before I write any code, is BepInEx the only framework used for modding Valheim?

Before I write any code, is BepInEx the only framework used for modding Valheim?

Looks to be this way only. Maybe one day the devs will add in official support but why would they even bother when HarmonyX does the job

Just to throw it out there, ValheimPlus also incorporates BePinEx and this seems to load the server component. I'm not certain what the most elegant approach is for handling it, but maybe take a look at their newest 0.8 release for Linux/Unix servers and you can see how it loads/runs, too.

@kachunkachunk done. See #148


ci(release): avoid permission issues with wasm artifacts

Self explanatory

Summary by CodeRabbit

Chores

Updated version control settings to exclude specific build artifacts.
Modified configuration for release management to adapt to new directory structure for WebAssembly files and artifacts.

size-limit report 📦

Path
Size

target/wasm32-unknown-unknown/release/okp4_objectarium.wasm
440.47 KB (0%)

target/wasm32-unknown-unknown/release/okp4_law_stone.wasm
654.01 KB (0%)

target/wasm32-unknown-unknown/release/okp4_cognitarium.wasm
833.65 KB (0%)

target/wasm32-unknown-unknown/release/okp4_dataverse.wasm
670.78 KB (0%)

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


NO-TICKET: update casper-updater crate to match new repo structure

This PR copies over the casperlabs-updater from the old repo.  The bulk of the new files only have small changes relating to references to the old EE path.  The main source of changes is in regex_data.rs.
I also added execution of this binary with the --dry-run flag to the drone file.
The final commit brings over the publish.sh script and contains some cleanup related to publishing the crates.

bors r+


⚠ ClamAV has degraded performance

In 59ec972, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 107 ms

Resolved: ClamAV performance has improved in 06e1d47.


Update policy.css

made css beatiful and webpage also

🛠 Fixes Issue

👨💻 Changes proposed

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

📷 Screenshots

We are not looking for changes in this section.


inline thread_id() does not play with multiple compilation units (GCC 4.9)

The decl of thread_id as inline static causes issues with multiple compilation units under GCC 4.9, for example:
In the test directory create a new file getWorkerIdForCurrentThread.cpp:
#include <worker.hpp>
size_t getWorkerIdForCurrentThread() { return *thread_id(); }
size_t getWorkerIdForCurrentThread2() { return Worker::getWorkerIdForCurrentThread(); }

Declare the new functions at the top of thread_pool.t.cpp:
size_t getWorkerIdForCurrentThread();
size_t getWorkerIdForCurrentThread2();

Update doTest("post job"), add the following line in the lambda after std::packaged_task<int()> ....:
printf("\nThread id(1): %lu, id(2): %lu, id(3): %lu, id(4): %lu\n",
  Worker::getWorkerIdForCurrentThread(), *thread_id(),
  getWorkerIdForCurrentThread(), getWorkerIdForCurrentThread2());

Build and run thread_pool.t.cpp as usual, the output will show the new line:
Thread id(1): 7, id(2): 7, id(3):<PHONE_NUMBER>, id(4): 7

Compile with -O3 and we get even worse output (due to aggressive inlining):
Thread id(1): 7, id(2): 7, id(3):<PHONE_NUMBER>, id(4):<PHONE_NUMBER>

In essence getWorkerIdForCurrentThread.cpp contains another instance of tss_id per thread since it was inlined by GCC and is never initialized to a valid value by the thread pool. Now when we call these functions we always see -1ul regardless of the thread we call from.
This limits the usefulness of the thread pool - at best you have to be extremely careful what you call and where when you have multiple CPPs.

Thanks, Craig. I tried to keep all code header-only, that is the reason of inline static. I'll look how to fix this issue,  but now I think you can do simple workaround by moving 'thread_id()' implementation to .cpp file.

@inkooboo I like the cleanness of your header approach - you have made some nice code here. I wasn't viewing the issue as a defect more of a warning to the wary - it took me a good few hours to figure out why the ids were going nuts. ;)

Fixed https://github.com/inkooboo/thread-pool-cpp/commit/75c1ad5cec88711ed192f528c97d58fb539df941
It was my error. It is incorrect to use 'static inline' in this case. Just 'inline' works fine. Read more


Terraform plugin throws version error with op CLI

Your environment
Terraform Provider Version: 1.4.1
Connect Server Version: n/a
CLI Version: 2.23.0-beta.01
OS: MacOS Ventura 13.4.1
Terraform Version: 1.6.4
What happened?
run a terraform plan and recieve the following error:
Error: failed to get version of op CLI: Version segment starts with 0 (input is: 2.23.0-beta.01)
What did you expect to happen?
The main.tf:
provider "onepassword" {
account     = XXXXXXXXXXXXXXXXXXXXXX
op_cli_path = "/usr/local/bin/op"
}
data "onepassword_item" "ans_pub_key" {
vault = XXXXXXXXXXXXXXXXXX
title = "ansadmin_dev_key"
}
output "one_pass" {
value = data.onepassword_item.ans_pub_key
}
Steps to reproduce

Create main.tf with the above code.
execute terraform plan  in the same directory

Notes & Logs
I can run the op command just fine. I needed to upgrade the op client to get the terraform plugin.

@herda05 Hi. The problem is that you used a beta version. As per semantic versioniong,   the beta version is considered less than prod version aka v2.23.0-beta01 < v2.23.0. The provider is required to use version >=v2.23.0.
So, to use it, either install cli v2.23.0 or the next stable v2.24.0.


Make matches more explicit

This matches the query tian xia. Why?

This is fixed, we were previously searching in the alternative titles, but not displaying them. Better be explicit.


Creating custom artifacts

I'm currently looking into solutions to "bootstrap" project skeletons for the Symfony2 framework, which comes with a standard distribution: https://github.com/symfony/symfony-standard.
Based on this standard distribution, there are very common setups with additional configuration and bundles/plugins. These setups need to be configured manually when the project is created, so using a maven artifact to do this automatically would be handy.
The documentation only mentions the main/test/site structure for projects, but the Symfony2 framework needs it's own structure. Is there a way to create custom artifacts using this maven plugin?

Hi. This is not available for know. But in future versions we will support various frameworks. There will be plugins that are aware of creating framework related packages.
There is no timeline yet. What type of setup do you need?

i'm looking for a generic solution which is not framework dependent. This would improve the process of setting up php projects with recurring configurations, for example:

Symfony2 + BundleA + BundleB + BundleC
Simple plain PHP page using Silex Twig Templating engine
Zend + Twig templating engine
etc...

So basically, if you have one of the above setups finished, you can create an archetype from that which will re-initialize any future project with the same skeleton.
If i can help out with that, please let me know.

First of all you should devide projects that are simply requiring a directory layout from those that require additional work.
For example a typical Zend project simply requires a directory layout. It will be nicrely integrating with php-maven since the only task is to setup a proper bootstrap for phpunit execution and the project itself. A archetype may only contain a bootstrap script to run the zend autoloader, the dependencies to zend itself and one or two examples.
The typical web project from scratch devides several folders. They will nicely integrate with php-maven as long as a) src/main/php contains all the needed files (index.php as well as library). For example src/main/php/webroot may contain the index.php and src/main/php/lib may contain the class files.
b) Some aaditional output folders should be configured, Maybe via pom.xml inclusion of an additional build action. I am thinking of folders like smarty template cache.
The third one is more dificult to be that generic. Let us think of flow3 (typo3 phoenix). It contains a package manager. Well, only unpacking the stuff won't work. And it contains a different directory layout requiring to have the test cases at a very different location. However before starting there need to be some additional setup.
It may integrate with php-maven and with a huge pom.xml that adds some additional actions to the whole build process. However for this one I don't see any point why using php-maven at all.
And that's the point: Everything that is really some kind of "php-like" stuff, will be working.
Project types such as flow3 won't be working with php-maven ever.  Some kind of stuff that tells php-maven that the project is not a "normal" php-project at all. This requires to use a different packaging type. Maybe packaging:flow3pck instead of packaging:phar. This prevents anyone from loading a flow3pkg within a non-flow3 web application. Simply because the php-maven core does not know how to handle a flow3pkg dependency. But the flow3 extension will know how to load a normal jar file for 3rd party library inclusion.
Another example is the pre-work that is needed to generate ddl and other things from models. Php-maven will never support this one directly. But - and that is important - maven itself supports to configure additional invocations during build. There is already a small goal in php-maven 2.0 that is able to invoke any php script during build. Typically generating resources is a build phase in maven. You are able to invoke some configuration scripts that automatically create some files a framework needs. You are even able to creat them in target/classes so that they are packed in the phar.

This weekend I will publish some research document with a possible solution. Targeted for version 2.1. I will publish a link here.


Fixed to be able to use Tab key for IME candidate selection

When typing Japanese, type alphabet corresponding to the Japanese you wish to input, select the desired character from the candidates the IME produces, and type it in.
The Tab key is used to select the candidate, but I could not use it with this mod installed.
So, I made it so that the Tab key does not respond when the IME is in select a candidate.

ohhh, thank you for adding this - this never crossed my mind as I've never used that sort of input method before!

(I think harmonylib doesn't need actual dll.
<PackageReference Include="Lib.Harmony" Version="2.2.1" />

sls on discord had the deciding hint - I forgot that I had the standalone version installed too but without mods, which made it use the wrong path


Allow top-level overrides to be stored in the manifest

It is quite frequent that a dependency needs to be changed temporarily for various reasons and committed upstream. The paths override is not appropriate for this use case because these overrides need to be committed upstream.
Top-level overrides should use the pkgid syntax for determining which dependency should be overridden, and the dependency itself should be encoded into the metadata somehow. Note that the override should also find its way into the lockfile.

I'd love something like this to let me use github urls while waiting for someone to publish the crate to crates.io. Needing to clone the repo is tedious, and doesn't scale when I push the PR to Travis.

Another note is that the top-level overrides should also allow specifying features to be activated for dependencies as well (so they may not be overridden, just adding new features)

Would this resolve #1481?


Unable to init vscode-neovim: Cannot call write after a stream was destroyed

I've installed:
VS Code v1.55.2
NVIM v0.5.0-dev+1309-g516551319
Extension v0.0.78
and get these error on start up:
Unable to init vscode-neovim: Cannot call write after a stream was destroyed
2021-05-08T15:25:02.149Z MainController: Neovim spawn error: spawn /home/user/bin/nvim-linux64 EACCES
2021-05-08T15:25:02.160Z MainController: Neovim was disconnected
What is the problem here?

The problem was that the path to the executable was not correct.


UI: Istio Integration Alpha

UI for https://github.com/rancher/rancher/issues/19087

Version: Master (v2.3) (6/5/19)
A UI test plan was created to thoroughly test the new feature. As the majority of test cases have been completed and passed I am going to close this issue. Some final testing will continue with the feature and as more testing is done new issues may be created, if necessary.

Pages Added:
This adds the "Service Mesh" menu option to Tools at the cluster level. This brings you to the "Cluster Service Mesh" page which is for configuration.
Nav:

Cluster Service Mesh Config:

This also adds the "Service Mesh" page at the project level.
Nav:

Page:

This also adds a new entry when creating/editing a namespace
Note, the default option is Disabled.

To Set up the Service mesh successfully, you should generally be using the default configuration on the Cluster Service Mesh (config) page, but should opt-in to enable the Istio Gateway so you can get traffic metrics (charts). This is optional, though.
You also need to ensure that the namespace(s) where you will be deploying your apps/workloads has "Istio sidecar auto injection" Enabled. If you fail to do this, then you will need to manually create istio sidecars yourself so we can have the istio-proxy for each workload you would like to monitor.

For testing we recommend using the istio example app "bookinfo" including the bookinfo-gateway. This was used for testing.
We ensured that the Cluster Service Mesh config is working as expected (although there are a handful of edge cases to test remaining), the Service Mesh > Traffic Graph and Traffic Metrics tabs are working correctly, and that we can access the UI pages for Kiali, Jaeger, Grafana, and Prometheus.
RBAC testing was also done in this area and future testing will involve fuzzing the text fields/API and upgrade checks per the internal test plan. As we continue to add more enhancements in this area testing will continue and the test plan will be appended with new test cases.


MODSEC-311: Modsecurity CoreRuleSet V 2.2.3: Rule 981244

MODSEC-311: Modsecurity CoreRuleSet V 2.2.3: Rule 981244 (modsecurity_crs_41_sql_injection_attacks.conf) creates false positives because of expressions, that have SQL- Keywords. An example from a  text field asking what your favorite quote is :
"time sure flies when you are having fun!"

CRS 2.2.3 wasn't designed to be FP free it was designed to be configured. Try running this with the much more recent and tuned CRS 3.0

@rwells9444 please try following @csanders-git suggestions.
If you're still having issues specifically with the CoreRuleSet, please direct those to CoreRuleSet Github here:
https://github.com/SpiderLabs/owasp-modsecurity-crs

csanders. thanks for the help!  Sorry for the delayed response. It took two days for my web hosting provider to make the correction, and I wanted to verify it was corrected before I replied. I'm up and running thanks to you!!
Victor, thanks for the url.  I've got it bookmarked!!


no normaliz.lib

normaliz.lib  needed?

It should be there now, if it isn’t just go google for it


new(tests): add ASan to e2e tests

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind feature
Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area tests

Does this PR require a change in the driver versions?
No.

What this PR does / why we need it:
Add AddressSanitizer support to the e2e tests as well.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: LucaGuerra
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [LucaGuerra]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

So @Molter73 to recap:

After merging #983 ASan checks run fine :) Symbols are already resolved
UBSAN does not work out of the box for me, and not necessarily due to UB faults but because of an unexpected segfault, meaning that it could either be an actual UB check that put the program in that state or issues with the instrumentation itself
Performance looks good as the runtime difference with regular tests (amd64) is minimal
I think we can merge this one and see if it is flaky or we identify other issues

LGTM label has been added.  Git tree hash: 40d99b7e626180b7964122bbee5126076eef7abc

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: LucaGuerra, Molter73
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [LucaGuerra,Molter73]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jasondellaluce, LucaGuerra, Molter73
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [LucaGuerra,Molter73,jasondellaluce]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/milestone 0.11.0


Connection timeout on SMTPConnection

I have set up correctly the email's parameters (with the Google's app password) and I am having this error (I've hidden the sensitive data):
[2020-10-01 18:08:40.310 +0000] ERROR (39 on 81dbc2ba74d2): Error sending email. Please check your configuration,
    emailConfig: {,
      "smtpHost": "smtp.gmail.com",
      "smtpPort": 587,
      "emailSenderAddress": "", // With my email address
      "emailSenderName": "Epic Games Captchas",
      "emailRecipientAddress": "", // With my email address
      "secure": false,
      "auth": {,
        "user": "", // With my email address
        "pass": "", // With my Google's app password
      },
    },
[2020-10-01 18:08:40.311 +0000] ERROR (39 on 81dbc2ba74d2): Connection timeout,
    Error: Connection timeout,
        at SMTPConnection._formatError (/usr/app/node_modules/nodemailer/lib/smtp-connection/index.js:784:19),
        at SMTPConnection._onError (/usr/app/node_modules/nodemailer/lib/smtp-connection/index.js:770:20),
        at Timeout.<anonymous> (/usr/app/node_modules/nodemailer/lib/smtp-connection/index.js:235:22),
        at listOnTimeout (internal/timers.js:549:17),
        at processTimers (internal/timers.js:492:7),
[2020-10-01 18:08:40.317 +0000] ERROR (39 on 81dbc2ba74d2): Connection timeout,
    Error: Connection timeout,
        at SMTPConnection._formatError (/usr/app/node_modules/nodemailer/lib/smtp-connection/index.js:784:19),
        at SMTPConnection._onError (/usr/app/node_modules/nodemailer/lib/smtp-connection/index.js:770:20),
        at Timeout.<anonymous> (/usr/app/node_modules/nodemailer/lib/smtp-connection/index.js:235:22),
        at listOnTimeout (internal/timers.js:549:17),
        at processTimers (internal/timers.js:492:7),

Is it something I'm doing wrong? I have recreated the password from Google's security parameters to try but no success. I have also tried to change the smtp port.
The first time I go to the UI the captcha page shows correctly, then when I get this error and I refresh the page, a Bad Gateway message appears.

Thanks, I will have a look to the post 👍
I accessed the captcha page directly from my domain url, no email was sent before. I am using the service with docker. No email was sent.

I have tried with a different email address with no 2FA and I get the same error. Another thing to notice, when in the logs tells to go to a URL to solve the captcha but I access the UI from the root url, the captcha ID is null (obvious); then the logs show he POST message with id:null, I don't know the side effects of this.

You need to visit the page with the captcha ID in the URL. Without the ID, it just loads a default captcha and has no ID to report for when finished.
Your issue appears to be a networking setup where your network or Google is blocking SMTP requests. It doesn't have much to do with this application itself.


Warn on use of unsafe decodeUtf8

decodeUtf8 throws an exception, this is quite unexpected. There has been various discussion about this over time:

https://github.com/haskell/text/issues/247
https://github.com/NorfairKing/haskell-dangerous-functions#datatextencodingdecodeutf8
https://www.fpcomplete.com/haskell/tutorial/string-types/

However, I think many people are unaware that this is partial - it doesn't look partial. So a hint is helpful.
I'd like some feedback, though: it's not clear to me what the RHS of such a rule should be. In particular, I don't know whether it's expected to typecheck. The "simplest" rule is what I've written here: replace decodeUtf8 with decodeUtf8', but the latter has a different type. I could instead make the RHS something like \bss -> case decodeUtf8' bs of { Left e -> error "fixme"; Right t -> t }?

Thanks for the patch. As a general rule, the RHS should be equivalent to the RHS - in this case fromRight undefined . decodeUtf8' might be a reasonable RHS, since it's equivalent and more obviously partial.
However, if decodeUtf8 is manifestly wrong and people shouldn't use it, why not have the upstream text library deprecate it? It seems that the authors of the text library should really be making the call about which functions shouldn't be used, and if they make that call, there are better ways for them to enforce it. Given the ownership of the text library has changed several times since the linked ticket, perhaps reraise it there first?

That's fair, a deprecation would be better. I'll raise it again, but I'm not hugely hopeful.
I guess I am effectively asking for a back-door deprecation via hlint. It's fair enough if you'd rather leave that to upstream, but I do think it would be a service to the ecosystem to start nudging people to avoid it.
(This was prompted by me discovering a use of this in an upstream library that rendered a nominally-pure parsing function impure - and this vulnerable to malicious input. It's quite a nasty problem!)

Another thing worth mentioning is that even if it gets deprecated in text, that won't reach users until they upgrade to the newest version of text, whereas hlint lets us "backport" the recommendation.

If you get upstream agreement, even to mark it with a documentation comment saying "don't use this", that's enough to make it clear that HLint should warn against it. Happy to use HLint to backport these suggestions.

The text maintainers seem to be active once more, with new releases, so you might have more chance of getting a response from them now.


Try to unroll loops in tensor3.h

Completed class methods
Todo: products

Complete most unrolling. A bit of thought might be put into dot

This will be closed for now, but can be reopened when there is need to it.


Error C:\Python27\ was unexpected at this time

Information

Apktool Version (apktool -version) - s.4.0
Operating System (Mac, Linux, Windows) - Windows 10 Pro 64
APK From? (Playstore, ROM, Other) - APK Pure

Steps to Reproduce

C:\Users\xxx>apktool -version
C:\Python27\ was unexpected at this time.

Frameworks
If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files
(.apks that live in /system/framework or /system/priv-app)
Questions to ask before submission

Have you tried apktool d, apktool b without changing anything? Yes
If you are trying to install a modified apk, did you resign it? No
Are you using the latest apktool version? Yes

Apktool has no Python, so not sure what is report is about.

Heya, given #1488 , this one, and the one I'm getting (\Microsoft was unexpected at this time.), I suspect there might be an issue in the way some %PATH% envvar parsing is done somewhere (perhaps in apktool itself? maybe some dependency of yours?). Given three exact instances (counting my case) of the same weird error with something apparently totally unrelated, but all involving some path, I'd say https://github.com/iBotPeaches/Apktool/issues/1488#issuecomment-508882386 was onto something...


[Nuxt Bridge - Pinia - Tailwind] Update meta API with the new useHead composable

Nuxt Bridge provides a new Nuxt 3 meta API that can be accessed with a new useHead composable.
Acceptance criteria:

[ ] Enable this feature explicitly in your nuxt.config
[ ] Add @vueuse/head to your package.json file for it to work properly.
[ ] Replace the native Nuxt 2 head() to the new composable useHead

Closing because the kit has been discarded


Hide keyboard approcahces in Flutter. Keyboard reappear even after FocusScope.of(context).unfocus()

I have an issue in understanding of FocusScope.of(context).unfocus() vs FocusManager.instance.primaryFocus?.unfocus() it seems like FocusManager.instance.primaryFocus?.unfocus() is the actual working solution or custom FocusNode is another option which is holding reference of FocusManager.instance.primaryFocus.
** Solution1 which seems to to be working but getting auto focus after any action like after closing bottomsheet**
//solution1
final fc = FocusScope.of(context);
        fc.unfocus();
        print(
            "FocusScope Info: ${fc.nearestScope}"); //Info: FocusScopeNode#6e22f(_ModalScopeState<dynamic> Focus Scope [IN FOCUS PATH])(context: FocusScope, IN FOCUS PATH, focusedChildren: [FocusNode#c394a([PRIMARY FOCUS])], traversalEdgeBehavior: TraversalEdgeBehavior.parentScope)

** solution2 which seems to actually working**
//solution2
        FocusManager.instance.primaryFocus?.unfocus();
        final fcPrimary = FocusScope.of(context);
        print("FocusManager Info: ${fcPrimary.nearestScope}"); //FocusScopeNode#9dfd6(_ModalScopeState<dynamic> Focus Scope [IN FOCUS PATH])(context: FocusScope, IN FOCUS PATH)

class ChatPage extends StatefulWidget {
  const ChatPage({super.key});

  @override
  State<ChatPage> createState() => _ChatPageState();
}

class _ChatPageState extends State<ChatPage> {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {

        //solution1
        final fc = FocusScope.of(context);
        fc.unfocus();
        print(
            "FocusScope Info: ${fc.nearestScope}"); //Info: FocusScopeNode#1h34f(_ModalScopeState<dynamic> Focus Scope [IN FOCUS PATH])(context: FocusScope, IN FOCUS PATH, focusedChildren: [FocusNode#c865b([PRIMARY FOCUS])], traversalEdgeBehavior: TraversalEdgeBehavior.parentScope)

        //solution2
        /*FocusManager.instance.primaryFocus?.unfocus();
        final fcPrimary = FocusScope.of(context);
        print("FocusManager Info: ${fcPrimary.nearestScope}");*/ //FocusScopeNode#7hfd3(_ModalScopeState<dynamic> Focus Scope [IN FOCUS PATH])(context: FocusScope, IN FOCUS PATH)
      },
      child: Scaffold(
        body: Stack(
          children: <Widget>[
            Align(
              alignment: Alignment.bottomLeft,
              child: Container(
                padding: const EdgeInsets.only(
                    left: 10, bottom: 10, top: 10, right: 10),
                height: 60,
                width: double.infinity,
                color: Colors.white,
                child: Row(
                  children: <Widget>[
            const SizedBox(
        width: 15,
      ),
                    const Expanded(
                      child: TextField(
                        decoration: InputDecoration(
                            hintText: "Message here...",
                            hintStyle: TextStyle(color: Colors.black54),
                            border: InputBorder.none),
                      ),
                    ),
                    const SizedBox(
        width: 15,
      ),
                    FloatingActionButton(
                      onPressed: () {
                        _buildBottomSheet();
                      },
                      backgroundColor: Colors.blue,
                      elevation: 0,
                      child: const Icon(
                        Icons.share,
                        color: Colors.white,
                        size: 18,
                      ),
                    ),
                  ],
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }

  _openBottomSheet() => showModalBottomSheet(
      context: context,
      builder: (builder) {
        return Container(
          height: 250.0,
          color: Colors.transparent,
          child: Container(
              decoration: const BoxDecoration(
                  color: Colors.white,
                  borderRadius: BorderRadius.only(
                      topLeft: Radius.circular(14.0),
                      topRight: Radius.circular(14.0))),
              child: const Center(
                child: Text("Modal sheet"),
              )),
        );
      });
}

@noureen
When you trigger showModalBottomSheet, it will open a new route. And it comes with isDismissible as true by default, which means the model is dismissed when tapping outside. This is actually calling Navigator.pop method. If you use Navigator.push to a new page instead when tapping on the avatar, you will also see the same issue.
This is a known issue at https://github.com/flutter/flutter/issues/145155 (or https://github.com/flutter/flutter/issues/48464). You can find a workaround at https://github.com/flutter/flutter/issues/145155#issuecomment-2203536461.
Closing this as a duplicate of these issue. If you disagree, write in comments and I'll reopen it.

Thankyou @darshankawar  I understand your point but the thing is when I call
FocusScope.of(context).unfocus() and mode to another route and back again keyboard get the focus again event I have called unfocus before that.
By checking other threads I got to know that primaryFocus?.unfocus() is the working solution.
FocusManager.instance.primaryFocus?.unfocus()
So my point is why is there a need to mention that FocusScope.of(context).unfocus()  can actually hide the keyboard? But in real it is just hiding the keyboard temporarily but keeping the referece of primary node.


Improve documentation to install Karavan-app on minikube

I have followed the exact steps documented to install on Minikube, but the steps needed some updates.

Are you able to help update the documentation? For example send a PR with doc updates?

Yes, that's my goal. I would like to start contributing to the project

The latest update by @mgubaidulli has fixed minikube deployment steps.  I have verified that the deployment is successful by following the steps .  I think some documentation about karavan-operator will be helpful.

Minikube deployment is successful.


Update default value for alpha_rayleigh_uh

Purpose

We want the default value for alpha_rayleigh_uh to be zero. This was missed in ClimaAtmos PR#2021 I think.
To-do

Content

[ ] I have read and checked the items on the review checklist.

And could I make a patch release? Or do you want to update all other repos to the breaking release first?


Fix: Workshop1 comments

This branch addresses comments 1,2,4,7,9,11

added dynamic links for workshop4 and 1


 It has to be replaced with a promisified approach.

Use async/await and promises

Check out herokuDeployjs

can I work on this issue?

Sure, go ahead 👍

Can I work on this issue?

Hi @ani-sha , glad to see you interested in this issue. But this has already been assigned to another participant. The other participant is hopefully working on it and may send a PR. We can assign you this if the previous participant fails to do so. Till then I request you to have a look at other issues. I recommend you #81 . The participant assigned to #81 has not been responsive, so if you are interested, we can assign #81 to you.

@anto-christo Sorry for the late reply I was out of station.
Yes i would like to work on #81 issue. Please assign me.