Replace RemovedComponents<T> backing with Events<Entity>

Objective
Removal events are unwieldy, so this attempts to begin a more simple solution that should map well to existing code, mostly the goal of this is to just consolidate removals with the benefits of Events<...> (such as double buffering and per system ticks for reading the events) and reducing the special casing of it.
Solution
This doesn't go the full length of change detection esque removal detection a la https://github.com/bevyengine/rfcs/pull/44.
Just tries to make the current workflow a bit more user friendly so detecting removals isn't such a scheduling nightmare.

Changelog
Migration Guide
~- Replace RemovedComponent<T> with EventReader<RemovedComponent<T>> and iters will need to deref into the Entity since it will be a RemovedComponent<T> event instead of an Entity.~

Add a mut for removed: RemovedComponents<T> since we are now modifying an event reader internally.
Iterating over removed components now requires &mut removed_components or removed_components.iter() instead of &removed_components.

~## Needs attention~
~- I'm not entirely sure how I should get the EventWriter<RemovedComponent<T>> from just a ComponentId and then send an event on it. I can get a PtrMut from the MutUntyped but I still don't really know the type of it so I can't cast it and I'm not sure that casting to a trait object would be ideal/possible. I'm thinking maybe just having a collection of systems (1 per component) that take a BTreeMap<ComponentId, Vec<Entity>> resource and queue themselves up individually, but would like thoughts on that.~
// What I'm thinking of doing more but this still seems a bit weird to me.
#[derive(Resource)]
pub struct RemovedComponentQueue(BTreeMap<ComponentId, Vec<Entity>>);

pub fn queue_removals<T: Component>(queue: Res<RemovedComponentQueue>, writer: EventWriter<RemovedComponent<T>>) {
    let events = queue.get(T::component_id())
        .iter()
        .map(|entity| entity.into());
    writer.send_batch(events);
}

I think re-thinking this I might just store the events in a SparseSet<ComponetId, Event<RemovedComponentUntyped>>
Where RemovedComponent<T> would be a system param that would automatically fetch this and get the correct one for reading.

Reworked this a good bit to be less invasive of the ECS stuff, I would like https://github.com/bevyengine/bevy/pull/5735 to get merged before this because right now it isn't really possible for me to return empty iterators of components that haven't been removed yet.

~Replace RemovedComponent<T> with EventReader<RemovedComponent<T>> and iters will need to deref into the Entity since it will be a RemovedComponent<T> event instead of an Entity.~

Why did you change course on this? This seems like a cleaner API, and I think I remember cart saying he preferred it.

Summary of why:
I can't name the Events<RemovedComponent<T>> type to send events on since I have to use a ComponentId`` to fetch it, which will only give me a type erased PtrMut. I could try registering closures or do something to make a proxy Events` in a resource, but those seem rather hacky.

bors r+


require('koa-body/unparsed.js') throws MODULE_NOT_FOUND error

Describe the bug
Node.js version: 18.12.0
OS version: docker node:18.12.0-bullseye
Description:
Documentation says that unparsed body can be accessed with const unparsed = require('koa-body/unparsed.js');. But it throws an error instead.
Actual behavior
MODULE_NOT_FOUND : Cannot find module 'koa-body/unparsed.js'

Expected behavior
It should require the unparsed script
Code to reproduce
const unparsed = require('koa-body/unparsed.js');
Fix suggestion
Maybe it is not the best fix, but it is possible to require the file by changing the path:
const unparsed = require('koa-body/lib/unparsed.js').default;
If it is a viable solution, README.md should be updated to reflect this.
Checklist

[x] I have searched through GitHub issues for similar issues.
[x] I have completely read through the README and documentation.
[x] I have tested my code with the latest version of Node.js and this package and confirmed it is still not working.

Note that the unparsedBody symbol can be used directly (i.e. without first importing it). Like this:
const rawBody = ctx.request.body[Symbol.for("unparsedBody")];


Possible inconsistency with Bob JavaScript test spec regarding "Whoa, chill out!" response

Continued from https://github.com/exercism/exercism.io/issues/3579.
Original post:
If I'm not mistaken, the specs that determine whether Bob will respond with "Whoa, chill out!" require that all alphabetical characters be uppercase.
However, the following test spec seems to invalidate that rule because all alphabetical characters are uppercase but Bob responds with "Whatever.":
it('calmly speaking about umlauts', function() {
  var result = bob.hey('\xfcML\xe4\xdcTS');
  expect(result).toEqual('Whatever.');
});

If I were to speak calmly about umlauts to Bob, shouldn't there be some lowercase alphabetical characters?

In reply to https://github.com/exercism/exercism.io/issues/3579#issuecomment-312478071 @NobbZ, I see.
It didn't occur to me that there can be lowercase umlauts, thereby making that not a yell.

Action item: https://github.com/exercism/exercism.io/issues/3579#issuecomment-312478071

@rclai Thanks for pointing this out!  BTW any time you see an issue like this, you are welcome to make a PR.  Although I've done this one, a similar change will need to be done to the EcmaScript track.  LMK if you're interested and if I can assist.

Absolutely!
@rclai, feel free to open a similar issue in https://github.com/exercism/ecmascript and do a similar PR as @matthewmorgan did on #377

Thanks.


Multiple bug fixes

Description
This PR addresses the following issues:

#101
#102
#104
#105

To accomplish this, we do the following:

For each graph update job, store a Redis hash containing all of the transactions submitted to the chain, their birth/death blocks (for expiration), success/failure status, and any error object
Eliminate the graphTxMonitorQueue. Instead, add an additional blockchain scanner service that walks the chain. For each block, check against ALL transaction pending as retrieved from Redis, and update all transactions' statuses accordingly.
After submitting transactions to the chain, queue a child job that monitors the pending transactions for the parent job. The parent job has a new state enum in its data that indicates the state it's in. Each time the child job runs, it will check all the candidate transactions for its parent's transactions. If any are still pending, it adds a delay & goes back on the queue. When none are pending (ie, all are completed, failed, or expired), then it updates the state of the parent job with the overall status and completes successfully. Once the child job completes, the parent job is released to handle its final disposition.
Moved back to using capacity batch transactions; the success event we monitor for is BatchCompleted

Comments around changes will be helpful in getting a clear picture of what happened, since this is a large PR, meanwhile I will test it locally with some setup


HIP draft: NetID routing

rendered view: https://github.com/helium/HIP/blob/f4ca7c9f22685f6a20a28e8d1453214cfef78262/004x-lorawan-netid-routing.md

This HIP draft has been numbered and merged for discussion as HIP 46. Please direct future questions & comments to the new tracking issue: #312
If you are one of the named authors, please include #312 in future pull requests to have them automatically merged.


Expression is evaluated twice when operator&&(bool, decltype(expr)) is defined

} while( Catch::isTrue( false && (expr) ) )

This line assumes the built-in && is used. If a user-defined operator&& is used, the expression is not short-circuited, and expr is evaluated here (and twice overall). I know that overloading && is not generally recommended, but I think this corner-case can be fixed by explicitly casting expr to bool:
} while( Catch::isTrue( false && static_cast<bool>(expr) ) )

I never got back to you about this.
I implemented your suggested fix - but it turns out that has an unwanted side-effect (see #657).
I'm considering using !!(expr) instead. That seems to do the trick for me but I'd appreciate it you were able to confirm that it has the desired effect for you, too?

Actually I'm fairly confident that this should work for you. I've pushed a commit with the change in.
Please do let me know if it causes any problems.

Hi Phil. I suggested the original fix for compatibility with a custom
boolean type which overloaded the && operator. Said type also overloaded
the ! operator, so your proposed change would reintroduce the
incompatibility for such types. I believe keeping both the !! and the
static cast would fix both issues, though I am not 100% sure if other
issues wouldn't arise.
However, I have since removed the && operator overload for my type as I
feel short circuiting evaluation is too useful a feature to sacrifice.
Thus, your proposed change would no longer affect me personally. Perhaps
you feel that it is not worth attempting to support such a corner case?
On 13 May 2016 02:12, "Phil Nash"<EMAIL_ADDRESS>wrote:

I never got back to you about this.
I implemented your suggested fix - but it turns out that has an unwanted
side-effect (see #657 https://github.com/philsquared/Catch/issues/657).
I'm considering using !!(expr) instead. That seems to do the trick for me
but I'd appreciate it you were able to confirm that it has the desired
effect for you, too?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/philsquared/Catch/issues/574#issuecomment-218839957

The problem with the && overload was that short circuiting was disabled - and the whole point of this expression was for it to be seen by the compiler (so you get natural warnings etc) without being evaluated at runtime.
Using !! puts us back into the realm of short-circuiting, so the original expression should not be evaluated at runtime.
At that point as long as the ! operator compiles for your type (and, ideally, doesn't generate any warnings) then it shouldn't matter what it actually does - it cannot influence short-circuiting here so should never be executed.
I put together a little test case for this which reproduced your original issue when I didn't use the cast or the !! - but had no issues (with && or !) with the !! approach.
So I'm inclined to leave things as they are here. If anyone else hits problems with it I'll consider reverting back to the original, though.
Thanks for taking the time to respond - especially given that the original issue no longer replies to you!

The problem is that my type overloads the ! operator to produce an object
of the same type, rather than a bool. Given that the aim of the !!
expression is to convert an object to a bool (without generating warnings -
which I overlooked with my original suggestion), I don't think it will work
correctly with such behaviour. Double negating followed by a static cast
should account for all (sensibly behaved - if you consider overloading the
&& operator sensible) combinations of operator overloads.
On 13 May 2016 14:35, "Phil Nash"<EMAIL_ADDRESS>wrote:

The problem with the && overload was that short circuiting was disabled -
and the whole point of this expression was for it to be seen by the
compiler (so you get natural warnings etc) without being evaluated at
runtime.
Using !! puts us back into the realm of short-circuiting, so the original
expression should not be evaluated at runtime.
At that point as long as the ! operator compiles for your type (and,
ideally, doesn't generate any warnings) then it shouldn't matter what it
actually does - it cannot influence short-circuiting here so should never
be executed.
I put together a little test case for this which reproduced your original
issue when I didn't use the cast or the !! - but had no issues (with &&
or !) with the !! approach.
So I'm inclined to leave things as they are here. If anyone else hits
problems with it I'll consider reverting back to the original, though.
Thanks for taking the time to respond - especially given that the original
issue no longer replies to you!
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/philsquared/Catch/issues/574#issuecomment-218963058

I tested this recently with a custom class
struct tester {
    tester& operator&&(const tester& rhs) {
        std::cout << "Operator&&\n";
        return *this;
    }

    tester& operator!() {
        std::cout << "Operator!\n";
        return *this;
    }

    tester& operator()() {
        std::cout << "Operator()\n";
        return *this;
    }

    explicit operator bool() const {
        std::cout << "Bool conversion\n";
        return true;
    }
};

with tests
TEST_CASE("Custom &&") {
    tester t1, t2;
    REQUIRE((t1 && t2()));
    REQUIRE(t1);
    REQUIRE(t1());
}

and couldn't reproduce the problem. If no-one can confirm it still exists, I am going to close it.

Ah but it is reproducible if you take out the explicit operator bool

although I'm not sure how this is meant to be used in an assert if there's no way to interpret it as a bool.
I've confirmed that no warning arise with (implicit) operator bool too.
If @hpesoj is still watching perhaps he can comment on how well @horenmar's example captures the problem (or if, indeed, there is still a problem).

I think what @hpesoj meant was that (false && (expr)) will use this operator:
zzyzx operator && (bool lhs, const tester& rhs);

if it exists, unless you force the conversion of (expr) to bool

Originally, yes, @lightmare.
But when it was changed to !!(expr) he then said that his type overloaded operator ! too, and so still had the issue. @horenmar's example attempted to capture that - but only does so without an operator bool (whether implicit or explicit) - at least in my testing.
Without conversion to bool or operator ! I'm not sure how it could be used in an assertion in the first place, so I'm hoping @hpesoj can shed some light on it.

Well, when a user writes
Foo foo;
CHECK(foo);

we can safely assume foo is convertible to bool; otherwise the macro can expand to ill-formed code just like if (foo); would be ill-formed. My point was that when there is a
X operator && (bool a, const Foo& b);

it will be selected by overload resolution, because it doesn't require any user-defined conversion. The compiler will not convert foo to bool (not even when Foo::operator bool is non-explicit, it's still user-defined conversion) and then built-in short-circuiting &&.

In other words, false && !!(expr) is not the right way to work-around overloaded operator &&, because operator ! is not guaranteed to return bool.
false && static_cast<bool>(expr) is the correct solution. The static_cast mimics if (expr) -- it invokes implicit or explicit conversion, and the && is then guaranteed to have a bool on both sides so short-circuits.

@lightmare Problem with static_cast<bool> is that it triggers (dumb) MSVC warning, C4800... This means that Catch is going to end up with this beauty: static_cast<bool>( !!(expr) ).
I also managed to send current master into infinite loop:
struct from {
    from& operator!() {
        std::cout << "Operator!\n";
        return *this;
    }

    operator bool() const {
        std::cout << "Bool conversion -- from\n";
        return true;
    }
};

struct to {
    operator bool() const {
        std::cout << "Bool conversion -- to\n";
        return true;
    }
};

to operator&&(bool lhs, const from& rhs) {
    std::cout << "operator&&\n";
    return{};
}

TEST_CASE("Custom &&") {
    from f;
    REQUIRE(f);
}

Yes, false && static_cast<bool>( !!(expr) ) was the fix I suggested. I think this should force conversion to bool and suppress the VC++ warning.

I should've asked this much earlier, but what exactly is the purpose of "it forces the compiler to give it a look"?
In the INTERNAL_CATCH_TEST macro with unary expr, ExpressionLhs::endExpression() already does "give it a look" by way of value = (expr) ? true : false. Which by the way is another way to convert to bool, one that I hope MSVC wouldn't complain about.
So that suggests another alternative without introducing more overloaded operators:
false && ((expr) ? true : false)
// and another that just occurred to me along the way
false && sizeof(expr)

but I wonder why any of this would be needed in the first place... :confounded:

@hpesoj thanks - so you do have a bool operator? (explicit or implicit?).
@lightmare the expression that gets evaluated is the one that is decomposed by Catch, then reassembled. Because of the way some literals (particularly integers) are captured by template, along with some of the machinery in Catch to deal with that, the expression that is actually evaluated on reassembly may not be exactly the same. So to make sure any warnings that might be emitted for the actual expression that are not for the reconstucted expression this technique forces the compiler to also evaluated the original expression as well.
There is another way I was toying with:
bool exprAsBool( T const& ){ return false; }
// ..
Catch::isTrue( false && exprAsBool( expr )

But I think I like the sizeof one even more (with one small change - compare the result to another integer to avoid int-conversion-to-bool warnings)!

My type was modelling a boolean value, so it had an implicit operator bool.

But I think I like the sizeof one even more (with one small change - compare the result to another integer to avoid int-conversion-to-bool warnings)!

Right, I realized that after posting, and also that the false && would then be unnecessary. I wasn't sure whether just
} while ( sizeof(expr) < 0 );

won't produce another warning; tried that with gcc and although unsigned_var < 0 triggers -Wtype-limits, sizeof(x) < 0 doesn't. If it does produce warning with another compiler, then this should hopefully silence it:
} while ( exprAsBool( sizeof(expr) ) );
// I'd rename exprAsBool => alwaysFalse


Add JSON dumper for dependencies

$ swift-build --show-dependencies json | jq '.'
{
  "name": "app",
  "url": "/private/tmp/bhargavg/testspm/app",
  "version": "0.1.0",
  "path": "/private/tmp/bhargavg/testspm/app",
  "dependencies": [
    {
      "name": "Vapor",
      "url": "https://github.com/qutheory/vapor",
      "version": "0.7.1",
      "path": "/private/tmp/bhargavg/testspm/app/Packages/Vapor-0.7.1",
      "dependencies": [
        {
          "name": "S4",
          "url": "https://github.com/open-swift/S4.git",
          "version": "0.5.0",
          "path": "/private/tmp/bhargavg/testspm/app/Packages/S4-0.5.0",
          "dependencies": [
            {
              "name": "C7",
              "url": "https://github.com/open-swift/C7.git",
              "version": "0.6.0",
              "path": "/private/tmp/bhargavg/testspm/app/Packages/C7-0.6.0",
              "dependencies": []
            }
          ]
        },
        {
          "name": "String",
          "url": "https://github.com/Zewo/String.git",
          "version": "0.5.1",
          "path": "/private/tmp/bhargavg/testspm/app/Packages/String-0.5.1",
          "dependencies": []
        },
        {
          "name": "JSON",
          "url": "https://github.com/Zewo/JSON.git",
          "version": "0.6.0",
          "path": "/private/tmp/bhargavg/testspm/app/Packages/JSON-0.6.0",
          "dependencies": [
            {
              "name": "StructuredData",
              "url": "https://github.com/Zewo/StructuredData.git",
              "version": "0.6.0",
              "path": "/private/tmp/bhargavg/testspm/app/Packages/StructuredData-0.6.0",
              "dependencies": [
                {
                  "name": "C7",
                  "url": "https://github.com/open-swift/C7.git",
                  "version": "0.6.0",
                  "path": "/private/tmp/bhargavg/testspm/app/Packages/C7-0.6.0",
                  "dependencies": []
                }
              ]
            }
          ]
        },
        {
          "name": "Hummingbird",
          "url": "https://github.com/ketzusaka/Hummingbird.git",
          "version": "1.5.0",
          "path": "/private/tmp/bhargavg/testspm/app/Packages/Hummingbird-1.5.0",
          "dependencies": [
            {
              "name": "Strand",
              "url": "https://github.com/ketzusaka/Strand.git",
              "version": "1.2.3",
              "path": "/private/tmp/bhargavg/testspm/app/Packages/Strand-1.2.3",
              "dependencies": []
            },
            {
              "name": "C7",
              "url": "https://github.com/open-swift/C7.git",
              "version": "0.6.0",
              "path": "/private/tmp/bhargavg/testspm/app/Packages/C7-0.6.0",
              "dependencies": []
            }
          ]
        },
        {
          "name": "HMAC",
          "url": "https://github.com/CryptoKitten/HMAC.git",
          "version": "0.5.2",
          "path": "/private/tmp/bhargavg/testspm/app/Packages/HMAC-0.5.2",
          "dependencies": [
            {
              "name": "CryptoEssentials",
              "url": "https://github.com/CryptoKitten/CryptoEssentials.git",
              "version": "0.5.2",
              "path": "/private/tmp/bhargavg/testspm/app/Packages/CryptoEssentials-0.5.2",
              "dependencies": []
            }
          ]
        },
        {
          "name": "SHA2",
          "url": "https://github.com/CryptoKitten/SHA2.git",
          "version": "0.5.1",
          "path": "/private/tmp/bhargavg/testspm/app/Packages/SHA2-0.5.1",
          "dependencies": [
            {
              "name": "CryptoEssentials",
              "url": "https://github.com/CryptoKitten/CryptoEssentials.git",
              "version": "0.5.2",
              "path": "/private/tmp/bhargavg/testspm/app/Packages/CryptoEssentials-0.5.2",
              "dependencies": []
            }
          ]
        }
      ]
    }
  ]
}

@swift-ci please test

one day @swift-ci will listen to me 😔

@swift-ci please test and merge

@swift-ci please test

@swift-ci please test


Using Bridge.Merge & Knockout - Runtime error

After doing a merge of data from json with my class (generated from Bridge.NET)
data = Bridge.merge(new Master(), data);
then I try to
self.CurrentEntity = ko.mapping.fromJS(data, { copy: self.myMetaData.ToCopyProperties });
I get a runtime error:
0x800a138d - JavaScript runtime error: String expected.
Original message in Portuguese: Erro de runtime de JavaScript: Cadeia esperada.
Cadeia translation can be: Chain? String? Object?
Thanks,
João Miguel

Hi @joaommvsoares I think this would be best to post in the Bridge forums. We're going to try and keep the GitHub issues focused on verified defects and feature requests.


[Bug] Exact same data produces no graph

If that data List is all the same value (ie [0.0, 0.0, 0.0], the graph doesn't show up instead of, say, having just a horizontal line.

If you set a fixed _max and _min, this gets fixed.

I'm waiting for the correction of this bug ... can you correct this ?

Same issues please find a solution... I just want a flat line if all my data are [0.0]. Thank you

Hey, this is kinda a major issue :( Any timeline on a fix?

IIRC one of my repositories (pc-monitor) has a fixed version of this module. If you give me a day or two I can fork this repo and post the new source.

Thanks I actually saw that after posting. I have made some other changes to so that single value lines also plot to the center of the chart instead of the bottom.
    if(_min == _max){
      if(_min == 0){
        _min = -1;
        _max = 1;
      } else {
        _min = _max/2;
        _max = _max*2;
      }
    }

How does your fix handle that case?

For my project it actually made sense for the line to be at the bottom (null value from API => 0/bottom on graph). Not an issue if you want to start a pull request for the middle line, just maybe include it as a parameter for the graph?
Side note: my code was very hacky and poorly written; would you rather look over my repo and then write your own additional code?

 I had a hard drive go bad about 8 months ago, and I seem to have lost the updated repository that contained my fixes; unfortunately, it looks like I also forgot to push my commits to the online repo. I don't remember how I fixed the problem, but here's some pseudo-code to describe what I may have done, based on my comment above:
if all_datapoints in line == 0.0:
    let min = 0
    let max = 1

or, more relevant to your solution:
if all_datapoints in line == 0.0:
    let min = -1
    let max = 1

and then update the graph with these new boundaries. Doesn't seem too complicated, it's pretty much the same solution you said earlier.

No worries. Looks like we implemented similar solutions and I expect I will be expanding the functionality for me application.
Thanks again!

Hey, this is kinda a major issue :( Any timeline on a fix?
Issues is line 300  final double heightNormalizer = height / (_max - _min);
Can be fixed with a change to  final double heightNormalizer = height / max(1,(_max - _min));

Hi, I tried this but it didn't work for me. Graph still doesn't plot.


Add some instructions on how to regenerate required checks

Some instructions on how to update required checks. I hope we can fully automate this soon, and these instructions will help.
Merge / deployment checklist

[x] Confirm this change is backwards compatible with existing workflows.
[x] Confirm the readme has been updated if necessary.
[x] Confirm the changelog has been updated if necessary.

I made some changes based on @henrymercer's suggestions. It is much simpler now and it's now possible to convert this into an automated action more easily.


Add debug logging to bitcoincore rpc

Created in reference to #1387
Simply logs whether an RPC call was successful or not.

Codecov Report
Patch coverage has no change and project coverage change: -0.02 :warning:

Comparison is base (ad111d7) 63.68% compared to head (367c0ba) 63.67%.

: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
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1802      +/-   ##
==========================================
- Coverage   63.68%   63.67%   -0.02%
==========================================
  Files         126      126
  Lines       25285    25327      +42
==========================================
+ Hits        16103    16126      +23
- Misses       9182     9201      +19

Impacted Files
Coverage Δ

fedimint-bitcoind/src/bitcoincore_rpc.rs
0.00% <0.00%> (ø)

fedimint-core/src/core.rs
93.54% <0.00%> (-0.25%)
:arrow_down:

fedimint-core/src/query.rs
41.00% <0.00%> (+0.88%)
:arrow_up:

fedimint-server/src/net/peers.rs
89.42% <0.00%> (+1.42%)
:arrow_up:

fedimint-core/src/api.rs
79.64% <0.00%> (+2.85%)
:arrow_up:

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

the CI failure is unrelated, will rerun it.


Unicode/Syntax Error during execution of nbdev_prepare

When I run nbdev_prepare on Windows 11 using git bash or powershell, I get an error that looks like:
WARNING:root:SyntaxError in C:\Users\gunnj\compmemlearn\notebooks\datasets\Murdock1962.ipynb:
===========================================================================

While Executing:
←[1;36m  Input ←[1;32mIn [1]←[1;36m←[0m
←[1;33m    import sys; sys.path.insert(0, 'C:\Users\gunnj\compmemlearn\notebooks\datasets')←[0m
←[1;37m                                                                                ^←[0m
←[1;31mSyntaxError←[0m←[1;31m:←[0m (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

WARNING:root:SyntaxError in C:\Users\gunnj\compmemlearn\notebooks\analyses\Serial_Position_Effect.ipynb:
===========================================================================

While Executing:
←[1;36m  Input ←[1;32mIn [1]←[1;36m←[0m
←[1;33m    import sys; sys.path.insert(0, 'C:\Users\gunnj\compmemlearn\notebooks\analyses')←[0m
←[1;37m                                                                                ^←[0m
←[1;31mSyntaxError←[0m←[1;31m:←[0m (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

nbdev Tests Failed On The Following Notebooks:
==================================================
        Serial_Position_Effect.ipynb
        Murdock1962.ipynb

The import sys stuff is not part of my codebase, and switching the notebooks in my directory don't change the error. This seems to correspond to an issue discussed every so often on stackoverflow, including:
https://stackoverflow.com/questions/1347791/unicode-error-unicodeescape-codec-cant-decode-bytes-cannot-open-text-file

Here, \U in "C:\Users... starts an eight-character Unicode escape, such as \U00014321. In your code, the escape is followed by the character 's', which is invalid.

My intuition is that this is a problem with how paths are handled by the nbdev_prepare command, perhaps something specific to Windows. But if that were true, I'd expect this bug to have been caught sooner, so maybe I'm mistaken.

nbdev_prepare  bundles the following commands:
nbdev_export: Builds the .py modules from Jupyter notebooks
nbdev_test: Tests your notebooks
nbdev_clean: Cleans your notebooks to get rid of extreanous output for Github
nbdev_readme: Updates README.md from your index notebook.
So I'm checking which of these produces the error.
nbdev_export is fine.
nbdev_test is the proximate cause of the issue that i posted
nbdev_clean returns
C:\Users\gunnj\AppData\Local\Programs\Python\Python310\lib\site-packages\nbdev\clean.py:110: UserWarning: Failed to clean notebook
  warn(f'{warn_msg}')
C:\Users\gunnj\AppData\Local\Programs\Python\Python310\lib\site-packages\nbdev\clean.py:111: UserWarning: clean_ids
  warn(e)
C:\Users\gunnj\AppData\Local\Programs\Python\Python310\lib\site-packages\nbdev\clean.py:111: UserWarning: clean_ids
  warn(e)

nbdev_readme works fine.

Further confirmed that this error arises even in a directory freshly generated with nbdev_new:
WARNING:root:SyntaxError in C:\Users\gunnj\nbdev_template\index.ipynb:
===========================================================================

While Executing:
←[1;36m  Input ←[1;32mIn [1]←[1;36m←[0m
←[1;33m    import sys; sys.path.insert(0, 'C:\Users\gunnj\nbdev_template')←[0m
←[1;37m                                                                  ^←[0m
←[1;31mSyntaxError←[0m←[1;31m:←[0m (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

WARNING:root:SyntaxError in C:\Users\gunnj\nbdev_template\00_core.ipynb:
===========================================================================

While Executing:
←[1;36m  Input ←[1;32mIn [1]←[1;36m←[0m
←[1;33m    import sys; sys.path.insert(0, 'C:\Users\gunnj\nbdev_template')←[0m
←[1;37m                                                                  ^←[0m
←[1;31mSyntaxError←[0m←[1;31m:←[0m (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

That's fixed in execnb master branch.


crash when comment two lines at beginning of file

Description
What steps will reproduce the problem?

make a new file or use any .py file which starts with:
import os
import sys

then mark both first lines (parts!) and press Ctrl+1 to comment/uncomment

this will result in hanging/crashing of spyder 3.3.1

Versions

Spyder version: 3.3.1
Python version: 3.6.6
Qt version: 5.9.3
PyQt5 version: 5.9.2
Operating System: Windows 10

Dependencies
pyflakes >=0.6.0  :  2.0.0 (OK)
pycodestyle >=2.3 :  2.4.0 (OK)
pygments >=2.0    :  2.2.0 (OK)
sphinx >=0.6.6    :  1.8.0 (OK)
rope >=0.9.4      :  0.11.0 (OK)
jedi >=0.9.0      :  0.12.1 (OK)
nbconvert >=4.0   :  5.4.0 (OK)
pandas >=0.13.1   :  0.23.4 (OK)
numpy >=1.7       :  1.15.1 (OK)
sympy >=0.7.3     :  None (NOK)
cython >=0.21     :  None (NOK)
qtconsole >=4.2.0 :  4.4.1 (OK)
IPython >=4.0     :  6.5.0 (OK)
matplotlib >=2.0.0:  2.2.3 (OK)
pylint >=0.25     :  2.1.1 (OK)

Thank you for your bug report.
I can reproduce this in Master also. There is no error, no traceback. Spyder simply stops responding.

Thanks for reporting. We'll take a look at this in a future release.

This is now fixed as discussed in #11148.


Try run python file

I try run python file by you example
def main():
    import erdantic as erd
    from erdantic.examples.pydantic import Party

    # Easy one-liner
    erd.draw(Party, out="diagram.png")

    # Or create a diagram object that you can inspect and do stuff with
    diagram = erd.create(Party)
    diagram.draw("diagram.png")

if __name__ == '__main__':
    # Easy one-liner
    main()

Traceback (most recent call last):
  File "/home/alex/work/bustail/backend/schemas/erdantic.py", line 18, in <module>
    main()
  File "/home/alex/work/bustail/backend/schemas/erdantic.py", line 6, in main
    from erdantic.examples.pydantic import Party
ModuleNotFoundError: No module named 'erdantic.examples'; 'erdantic' is not a package

Try user attributes
from pydantic import BaseModel

class TestSchema(BaseModel):
    x = 1

def main():
    import erdantic

    # Easy one-liner
    erdantic.create(TestSchema)

Traceback (most recent call last):
  File "/home/alex/work/bustail/backend/schemas/erdantic.py", line 23, in <module>
    main()
  File "/home/alex/work/bustail/backend/schemas/erdantic.py", line 14, in main
    erdantic.create(TestSchema)
AttributeError: module 'erdantic' has no attribute 'create'

How use this lib?


Add environment variable DD_COLLECT_EC2_TAGS to Dockerfile doc

What does this PR do?
Add environment variable DD_COLLECT_EC2_TAGS to Dockerfile doc.
Motivation
This feature was implemented in #1564, but it was not documented.
It would be great if mentioned in the Dockerfile doc.

Setting given tag to FALSE doesn't seem to work as expected in Kubernetes.
Still collect all the tags by default.

Thank you for bringing this up!
Closing out this PR as we moved the documentation to a dedicated website.
Thanks again for letting us know, we have added it there!
Sincere apologies for the delay.
Best,
.C
PS: If you are encountering issues with this feature, let us know too so we can help troubleshoot.


Add dominikh's megacheck (staticcheck, gosimple and unused)

This is just a PR to discuss adding Megacheck in.
I've added this and testing it currently, appears to work as intended, but my testing does seem to indicate megacheck running in gometalinter is faster than megacheck running by itself - and it still shows the same results (so it's not doing less). See https://gist.github.com/bradleyfalzon/f7891db8e1d61ebe7dcef1deab6c6277 for some tests, I'm not sure what's different (even environment variables matched when checked via strace).
But other than that, it's working as intended and could be merged, but I'd like to know if others experience the same speed difference if someone can take a moment to check?
EDIT: This is ready to be merged, but currently keeps staticcheck, gosimple and unused. So people running --enable-all will duplicate the tools.

This is great, thanks.
What you're seeing is probably due to gometalinter setting GOGC=off. You can verify  this by running it with --enable-gc.

Curiouser and curiouser, I thought I would've seen that being set in:
strace -s 128 -v -e trace=process gometalinter --disable-all --enable=megacheck
execve("/home/bradleyf/go/bin/gometalinter", [
"gometalinter",
"--disable-all",
"--enable=megacheck"],
["MANPATH=/opt/rh/rh-git29/root/usr/share/man:",
"SSH_AGENT_PID=18743",
"XDG_SESSION_ID=173",
"HOSTNAME=srv4.teambrad.net",
"SELINUX_ROLE_REQUESTED=",
"TERM=screen-256color",
"SHELL=/bin/bash",
"HISTSIZE=1000",
"SSH_CLIENT=<IP_ADDRESS> 35384 22",
"PERL5LIB=/opt/rh/rh-git29/root/usr/share/perl5/vendor_perl",
"SELINUX_USE_CURRENT_RANGE=",
"OLDPWD=/home/bradleyf/go/src/github.com/shurcooL/cmd",
"SSH_TTY=/dev/pts/0", "CDPATH=:/home/bradleyf/go/src/github.com/bradleyfalzon/:/home/bradleyf/go/src/gitlab.com/bradleyfalzon/",
"USER=bradleyf",
"LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64", "LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or="...,
"DRONE_TOKEN=.."...,
"SSH_AUTH_SOCK=/tmp/ssh-oLd9ot3Excck/agent.18741",
"MAIL=/var/spool/mail/bradleyf",
"PATH=/usr/local/google-cloud-sdk/bin:/home/bradleyf/vim8/bin/:/opt/rh/rh-git29/root/usr/bin:/usr/local/bin:/usr/bin:/usr/local/s"..., "PWD=/home/bradleyf/go/src/github.com/bradleyfalzon/gopherci",
"LANG=en_AU.UTF-8",
"SELINUX_LEVEL_REQUESTED=",
"HISTCONTROL=ignoredups",
"SHLVL=1",
"HOME=/home/bradleyf",
"LOGNAME=bradleyf",
"DRONE_SERVER=https://drone.teambrad.net/",
"SSH_CONNECTION=xxx",
"GOPATH=/home/bradleyf/go",
"LESSOPEN=||/usr/bin/lesspipe.sh %s",
"XDG_RUNTIME_DIR=/run/user/1000",
"_=/usr/bin/strace"]) = 0

You're right, setting that flag bring in the checks to the same speed. But I like that hack, will consider it for myself.
I'll check out the CI failure in the next couple days. Did you want other changes made too?

I do have a question: is there any real reason to include the other linters now that megacheck supersedes them? I feel like duplicating them could cause confusion, particularly with --enable-all.

A cursory thought, I think we could remove them. Should I then?

Would need to consider people running gometalinter --disable-all --enable=staticcheck, a naive removal would break that behaviour.

I would suggest remapping staticcheck, gosimple and unused to pass the appropriate flags to megacheck.

Yeah, that's what I was thinking, but in practice, this may be a more substantial refactor.

OK, recent rebase fixes CI.

Yeah @alecthomas do you have any thoughts on exactly how you want to handle removing staticcheck, gosimple and unused into the one linter?
Further, megacheck doesn't make it clear which tool triggered the issue (doesn't say gosimple, staticcheck or unused) - but it does mention the violation ID numbers which you derive the tool name, eg:
gometalinter --disable-all --enable=megacheck

directives.go:147:27:warning: func (*directiveParser).in is unused (U1000) (megacheck)
main.go:30:2:warning: const Warning is unused (U1000) (megacheck)
main.go:821:2:warning: redundant return statement (S1027) (megacheck)

When the tools are run individually:
gometalinter --disable-all --enable=staticcheck --enable=unused --enable=gosimple

directives.go:147:27:warning: func (*directiveParser).in is unused (U1000) (unused)
main.go:30:2:warning: const Warning is unused (U1000) (unused)
main.go:821:2:warning: redundant return statement (S1027) (gosimple)

Is this behaviour going to be OK? @dominikh is this something megacheck could consider adding to the output?

@bradleyfalzon Eventually, there'll be JSON output and we'll include the checker name in that. For the human-readable output, however, we'll stick to only printing the check IDs. As you said, you can derive the checker name from the IDs.

this may be a more substantial refactor

This should work: replace the staticcheck entry in linterDefinitions with the corresponding megacheck entry.

Is this behaviour going to be OK?

I don't think that is a big deal.
Stepping back, I think this is what we want to do:

Add megacheck (done).
Replace existing gosimple, staticheck and unused  with their megacheck equivalents, but disable them by default.
Update
Emit a warning iff gosimple, staticheck AND unused are all enabled, but megacheck is disabled.
If megacheck, gosimple, staticcheck AND unused are all enabled, disable the individual linters and emit a warning.

OK, I've implemented some of this.

Replace existing gosimple, staticheck and unused with their megacheck equivalents, but disable them by default.

I didn't do this, I ran out of time, do you still want this done, it'd remove a few lines of code from vendor but I think that's about all.

Emit a warning iff gosimple, staticheck AND unused are all enabled, but megacheck is disabled.

I didn't do this as, (I ran out of time and) in the real world it seemed unlikely someone would run gometalinter --disable-all --enable=staticcheck --enable=gosimple --enable=unused --disable=megacheck but let me know if there's other scenarios where this may happen and I can revise.
But further to this, I didn't actually expect this to work, but I didn't look too far into this either:
gometalinter --disable-all --enable=staticcheck --enable=gosimple --enable=unused --disable=megacheck
WARNING: staticcheck, gosimple, and unused are all set, using megacheck instead
directives.go:147:27:warning: func (*directiveParser).in is unused (U1000) (megacheck)
main.go:30:2:warning: const Warning is unused (U1000) (megacheck)
main.go:854:2:warning: redundant return statement (S1027) (megacheck)

If megacheck, gosimple, staticcheck AND unused are all enabled, disable the individual linters and emit a warning.

Done.
The one other optimisation would be if someone enabled megacheck (it's on by default) and enabled staticcheck OR gosimple OR unused. I didn't bother checking for this as they'll see the duplicates, but I can add more conditions if you think it'd be valuable.
gometalinter --enable=unused | grep '(unused\|megacheck)'
directives.go:147:27:warning: func (*directiveParser).in is unused (U1000) (unused)
main.go:30:2:warning: const Warning is unused (U1000) (unused)
directives.go:147:27:warning: func (*directiveParser).in is unused (U1000) (megacheck)
main.go:30:2:warning: const Warning is unused (U1000) (megacheck)
main.go:854:2:warning: redundant return statement (S1027) (megacheck)

bump @alecthomas

I didn't do this as, (I ran out of time and) in the real world it seemed unlikely someone would run gometalinter --disable-all --enable=staticcheck --enable=gosimple --enable=unused --disable=megacheck but let me know if there's other scenarios where this may happen and I can revise.

This is quite likely actually, but if your current warning seems to catch it then I'm fine with that!

The one other optimisation would be if someone enabled megacheck (it's on by default) and enabled staticcheck OR gosimple OR unused. I didn't bother checking for this as they'll see the duplicates, but I can add more conditions if you think it'd be valuable.

Good point, not a bad idea.
Also, it might be good to warn that the other checks will be removed in the future. Perhaps emit this if any of them are enabled.

PS. Sorry for the delay, I've been moving house and am now travelling to SF for work.

If you can fix the merge conflicts, I'll merge this.

Will do in next 6 hours then

OK, I see why there was a conflict. #302 was created and merged a few hours ago to address a panic in gosimple, a part of this PR was to update all those linters before adding megacheck - this is where the conflict was I had updated the same packages as that PR.
The conflict wasn't too bad because #302 only updated a single library in go-tools - this isn't the correct approach, go-tools is a monorepo, all packages in the repo must be updated if any of them are. My origin commit (removed because of the conflict) gives the correct instructions on how to update go-tools, repeated here: cd _linters; grep importpath src/manifest  | egrep -o 'honnef.co/go/tools/[^"]*' | xargs -n 1 gvt update
So for future reference, use the above command to update go-tools. Because of the conflict, I'd removed my updating commit, and have added a new one updating all the packages to be consistent.

this isn't the correct approach, go-tools is a monorepo, all packages in the repo must be updated if any of them are

Why do you say that all packages must be updated at the same time?  I am aware it is a monorepo, but I didn't see a reason to update anything except for the package with the fix.
I know some of the other golang dependency management tools enforce this, but it doesn't seem to be necessary (or convenient) with gvt.

Why do you say that all packages must be updated at the same time?

Previously the tools themselves were split into different repositories, https://github.com/dominikh/go-simple, https://github.com/dominikh/go-staticcheck and https://github.com/dominikh/go-unused - and they all used https://github.com/dominikh/go-lint to share some functionality.
The issue with this, is that an update to go-lint package could be inconsistently applied to users, for example, making a breaking change in go-lint and wanting all tools to update atomically was impossible. Even human errors caused issues https://github.com/dominikh/go-simple/pull/16#issuecomment-235155538
So, Dominik combined all the repos into a monorepo, breaking changes as long as they're applied in the same commit aren't breaking anymore because all dependencies can be updated atomically. So updating the lint package involves updating all tools at the same time.
That's why we should treat it as a monorepo, if we update go-simple, we should update all packages in the git repository. Specifically, when we updated the ssa package in #302, it could have brought a breaking change which required the other tools in the same repository to also require an update.

Thanks a lot for doing this @bradleyfalzon, I appreciate it. I think this, combined with @dnephin 's change will vastly improve the performance of gometalinter!

You're welcome, and also thank you @dnephin.


Windows tests are super slow suddenly.

Something is wrong with them (Linux and Mac tests take < 10mins, but Windows takes 1h+!)
Opening this so we can merge PRs that pass all tests other than the Windows one in good conscience, because we'll remember to address this.

Looks like the cached atlases correctly include the fish atlas, but Windows doesn't put the cache in the right place :thinking:


operators victoriametrics-operator (0.22.0)

Signed-off-by: Nikolay Khramchikhin<EMAIL_ADDRESS>Thanks submitting your Operator. Please check below list before you create your Pull Request.
New Submissions

[ ] Are you familiar with our contribution guidelines?
[ ] Have you packaged and deployed your Operator for Operator Framework?

[ ] Have you tested your Operator in all supported installation modes?
[ ] Have you considered whether you want use semantic versioning order?
[ ] Is your submission signed?
[ ] Is operator icon set?

Updates to existing Operators

[ ] Did you create a ci.yaml file according to the update instructions?
[ ] Is your new CSV pointing to the previous version with the replaces property if you chose replaces-mode via the updateGraph property in ci.yaml?
[ ] Is your new CSV referenced in the appropriate channel defined in the package.yaml or annotations.yaml ?
[ ] Have you tested an update to your Operator when deployed via OLM?
[ ] Is your submission signed?

Your submission should not

[ ] Modify more than one operator
[ ] Modify an Operator you don't own
[ ] Rename an operator - please remove and add with a different name instead
[ ] Modify any files outside the above mentioned folders
[ ] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[ ] Description about the managed Application and where to find more information
[ ] Features and capabilities of your Operator and how to use it
[ ] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[ ] Human readable name and 1-liner description about your Operator
[ ] Valid category name1
[ ] One of the pre-defined capability levels2
[ ] Links to the maintainer, source code and documentation
[ ] Example templates for all Custom Resource Definitions intended to be used
[ ] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

/hold

/hold cancel

/merge possible

@f41gh7, please fix this error: Error: Value vm-operator-vm-operator: invalid service account found in bundle. sa name cannot match service account defined for deployment spec in CSV

Will do, sry didn't spot it.

/hold

/hold cancel

/merge possible

/merge possible

/merge possible


Is it possible to enable resize in django-summernote?

I use SummernoteInplaceWidget in my project.
In summernote its possible to enable resize of widget by next settings:
$("#discription").summernote({
	focus: true,
	disableResizeEditor: true
});

My question is simple. Have you included this capability in django-summernote?

disableResizeEditor was not in __summernote_options__.
I updated it with another latest options by https://github.com/summernote/django-summernote/commit/1b38cbd6649dbb0c6c3b577312fba62e4334bdd4, thanks.


Change hover state of sample name to brand blue (on report page)

The arrow should not change the width of the name either and force the name to go to a second line.
We should also have a max width for the sample names.

https://github.com/chanzuckerberg/idseq-web/pull/976


Settings File

You should include information about how to replace the settings file as the project template does not include a startup file.

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

ID: ca63e896-e1eb-9714-aeaf-67f56cf582ca
Version Independent ID: 20fd8665-a5ef-eebe-d01a-9eaf1a60b023
Content: Port a Windows Forms app to .NET Core - .NET Core
Content Source: docs/core/porting/winforms.md
Product: dotnet-core
GitHub Login: @Thraka
Microsoft Alias: adegeo

@OliaG Can you comment on the settings file?

So normally you would use appsettings.json in lieu of the settings file which would be configured in startup.cs.  The project template results in an application without a startup.cs file so the developer using this project template who is unfamiliar with .Net core applications will have no clues about how to replace the settings file normally present in a WinForm application.

I wonder if the try-convert tool handles this?


Get/Post methods not protected

GET/POST http://<IP_ADDRESS>:8000/api/records/ requests succeed without providing an authentication token in the request header.

Reason: poor implementation of authentication. Configuring DEFAULT_AUTHENTICATION_CLASSES to "rest_framework.authentication.TokenAuthentication" essentially determines the method used to determine request.user.is_authenticated attribute. It does not set authentication protection for all views (actually, according to the official DRF documentation, this controls "basic API policies, and are applied to every APIView class-based view, or @api_view function based view", which means that our viewsets and mixins won't be controled).

Should be fixed by specifying overall control over the operations related to all objects by overwriting the has_permission() method extended from permissions.BasePermission in customised permission classes.


qemu: riscv related fixes

Two fixes found when trying to use qemu on riscv.
Description of changes

Things done

Built on platform(s)

[X] x86_64-linux (native on x64, and cross x64 to riscv64 with sdlSupport = false)
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

After some discussion with qemu devs, it seems that the correct thing to do is indeed just not to pass --cpu, and let the configure script detect it based on $CC.
<EMAIL_ADDRESS>It seems that there is still a bit of problem with regards to cross qemu. I'll come back to it once I get that settled.

cc @figsoda @SuperSandro2000 from #190560 and @NickCao from #147692

the python change lgtm, don't know enough to review the change to configureFlags

Had to disable sdl support to test due to dependency failure.
Builds fine crossing from x86_64-linux to riscv64-linux, build/host platform is correctly recognized by build system, qemu-user support is discovered and built.

@ofborg build qemu
@ofborg test qemu


Try is not implemented for Foundation::HWND

Summary
_ I launch the code as it is and it print the error int the title but It's working if I erase the "?" line 37 before the object "CreateWindowExA"  in crates/samples/windows/create_window/src/main.rs_
Crate manifest
[package]
name = "driver1"
version = "0.1.0"
edition = "2021"
[dependencies.windows]
version = "0.57.0"
features = [
    "Win32_Graphics_Gdi",
    "Win32_System_LibraryLoader",
    "Win32_UI_WindowsAndMessaging",
]

Crate code
use windows::{
    core::*, Win32::Foundation::*, Win32::Graphics::Gdi::ValidateRect,
    Win32::System::LibraryLoader::GetModuleHandleA, Win32::UI::WindowsAndMessaging::*,
};

fn main() -> Result<()> {
    unsafe {
        let instance = GetModuleHandleA(None)?;
        let window_class = s!("window");

        let wc = WNDCLASSA {
            hCursor: LoadCursorW(None, IDC_ARROW)?,
            hInstance: instance.into(),
            lpszClassName: window_class,

            style: CS_HREDRAW | CS_VREDRAW,
            lpfnWndProc: Some(wndproc),
            ..Default::default()
        };

        let atom = RegisterClassA(&wc);
        debug_assert!(atom != 0);

        CreateWindowExA(
            WINDOW_EX_STYLE::default(),
            window_class,
            s!("This is a sample window"),
            WS_OVERLAPPEDWINDOW | WS_VISIBLE,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            None,
            None,
            instance,
            None,
        )?;

        let mut message = MSG::default();

        while GetMessageA(&mut message, None, 0, 0).into() {
            DispatchMessageA(&message);
        }

        Ok(())
    }
}

extern "system" fn wndproc(window: HWND, message: u32, wparam: WPARAM, lparam: LPARAM) -> LRESULT {
    unsafe {
        match message {
            WM_PAINT => {
                println!("WM_PAINT");
                _ = ValidateRect(window, None);
                LRESULT(0)
            }
            WM_DESTROY => {
                println!("WM_DESTROY");
                PostQuitMessage(0);
                LRESULT(0)
            }
            _ => DefWindowProcA(window, message, wparam, lparam),
        }
    }
}

https://github.com/microsoft/windows-rs/tree/master/crates/samples
You need to pick the version of the samples that match the version of the crate you're trying to use.
The samples for 0.57 can be found at https://github.com/microsoft/windows-rs/blob/0.57.0/crates/samples/. This create window sample does not have a ? on that line. (https://github.com/microsoft/windows-rs/blob/0.57.0/crates/samples/windows/create_window/src/main.rs#L39)


HacktoberFest20

#66 More methods added to Java String Class

Please comment list the methods here which you want to add.

Thanks for choosing our repository for contributing to Hacktober Fest 20
As a part of the new process this Issue is marked as hacktoberfest-expiry & closed
Please check our new updated contribution guidelines here


Use ContextCompat when accessing color resources

Avoid duplicates

[x] This enhancement request has not already been raised before
[x] Enhancement request is specific for Android only, for general issues / questions that apply to iOS and Android please raise them in CWA-Wishlist
[x] If you are proposing a new feature, please do so in CWA-Wishlist

Current Implementation
You are already using ContextCompat when accessing color resources at some locations, but Context.getColor in most others, which is not compatible with API < 23.
In our fork of the app, where I am working on Android 5 support, it is a lot of manual work for me to spot calls to Context.getColor and to replace them with a call that has the same functionality but supports API 21 (like Context.getResources().getColor).
Suggested Enhancement
Use the utility class ContextCompat when accessing color resources everywhere.
Expected Benefits
This would not change any functionality, but it would make things a lot easier for me as a maintainer of our fork, because there would be less discrepancies to keep track of.
If such a PR would get merged, I would like to open one to use this utility class every time color resources are accessed.
Thank you for your consideration.

Internal Tracking ID: EXPOSUREAPP-4419

Hi @fynngodau, Thanks for contributing here. I order to improve the workflow, I would like to suggest to submit this request using the Enhancement Request template when opening here an issue in this context. If you would be so kind, please, to close this issue and submit a new one using the template. Many thanks and best wishes, DS

Corona-Warn-App Open Source Team

Hello @dsarkar, thank you for your input; I have updated the issue to follow the template instead of closing and reopening, I hope that's okay as well.

@fynngodau, many thanks for updating the post. Issue is forwarded to the developer team. Any news on this issue will be reported here. Best, DS

Corona-Warn-App Open Source Team
Internal Tracking ID: EXPOSUREAPP-4419

I did a quick search through the project and it looks okay to change. I'm not 100% sure how to handle this in unit tests, where the getColor calls also appear.
Mock static? Or maybe mocking an extension function Context.getColorCompat :thinking: .
What would be your preferred solution @fynngodau ?

If such a PR would get merged, I would like to open one to use this utility class every time color resources are accessed.

Should be against release/1.11.x and preferably after #1912 is merged to avoid conflicts.

I am inexperienced with mockk, though as I'm seeing it, you are telling Context what getColor means with these lines:
        every { context.getColor(R.color.colorTextSemanticGreen) } returns R.color.colorTextSemanticGreen
        every { context.getColor(R.color.colorTextSemanticRed) } returns R.color.colorTextSemanticRed

Since ContextCompat calls either Context.getColor or Context.getResources.getColor depending on the SDK version, it looks like it should suffice to add these lines:
        every { context.resources.getColor(R.color.colorTextSemanticGreen) } returns R.color.colorTextSemanticGreen
        every { context.resources.getColor(R.color.colorTextSemanticRed) } returns R.color.colorTextSemanticRed

Depending on the assumption regarding SDK version under which the tests are operating, it might also suffice to replace the first two lines with the second two lines.

I opened #2026 as a PR which includes the change I proposed.

I opened #2026 as a PR which includes the change I proposed.

@fynngodau, Thanks, and a Happy New Year! Devs are made aware of this PR. DS

Corona-Warn-App Open Source Team

@fynngodau, Thanks, and a Happy New Year! Devs are made aware of this PR. DS

Corona-Warn-App Open Source Team


Sync helm charts with kubernetes/charts

Update helm charts to their latest versions.
Explanation:
At first, I wanted this commit to allow adding environment variables for the Jenkins pod.
But then I realized that the helm charts must be the same in both helm charts repositories.
This is also a precondition for this issue. I can help with that if you accept my pull request.
Thanks!

Thanks for this - we use a branch jenkins which we'll need to cherry pick the change you want. Then we can release it.  The Jenkins chart is the only chart we don't use from the upstream master because we changed it quite a bit and there were other changes happening that conflicted with our efforts.  That said we probably should look at merging our changes again to see if things can be aligned.

@rawlingsj, as your suggest, I cherry picked the relevant commit to allow environment variables for Jenkins pod.
Can you please review my pull request?
Thanks!


Add quak integration

https://github.com/user-attachments/assets/559f13b0-9d38-429e-b857-72c08cedaf51
Learnings so far:

deck.gl crashed when I supplied a column that was either 0 or 1, but it seems to work fine when it's either 1 or 2. This function https://github.com/visgl/deck.gl/blob/fdbb88a0c0cd662e95f5b6a84a36ec13ab9cc5d9/modules/extensions/src/data-filter/data-filter-extension.ts#L393-L408 is erroring with an invalid attempt to access 0.
I need to make sure the extension is correctly added to the layer, and that the extension's added traits are correctly initialized.
It would be ideal if we could debounce this a bit. I suppose we could have a global variable of "last quak update", and then at the start of this observe callback, we can check if the time is within a certain amount of time since the last update? Not sure how that would work. ah, ipywidgets has an example: https://ipywidgets.readthedocs.io/en/latest/examples/Widget Events.html#debouncing

Should look here for reference: https://discord.com/channels/1178781616714297576/1179097041134166096/1276969495151251506

Note to self: you don't need the category data filter for rendering booleans. You can use the existing data filter extension and just set the range appropriately. Note that in theory this will expand the bits to float32, right?


Feature Request: SMS sending and receiving

Please Describe The Feature To Be Added
SMS and MMS reading and sending abilities
Suggest A Solution
https://pub.dev/packages/flutter_sms

Can you tell me how to integrate the existing Flutter package into my Flet application?
No examples were found on the official website.

Did you see the blog post called Flet adaptive UI and custom controls release?
You can see the implementation of all packages too!
After creating the dart wrapper code, you have to edit the client/lib/main.dart and the client/pubspec.yaml files. Just follow as done with other packages.
On the python side, just create a new file in flet-core/src/flet-core and import the Control class created into the __init__.py file. Just follow as done in other controls like audio.py, video.py ,rive.py, etc...
Once finished, you can test it out as told in contributing docs
Note: this is just for now the moderators seem to be trying to make  integration of flutter packages to flet easier, so there might be changes on how to do it.


[BUG] Wrong info text during deletion of an unpublished API proxy

API-Mgr. CLI version
1.0.1
API-Manager and Service-Pack Version
7.6.2. SP4
Expected behavior
As OrgAdmin, if I delete an existing unpublished API proxy I get the following two lines of info which are wrong, because the API proxy was deleted successfully.

Successfully updated deleted API
Actual API has been created and is waiting for an approval by an administrator. You may update the pending API as often as you want before it is finally published.

Actual behavior
Log-Output in Debug
2014   INFO     UpdateExistingAPI| Waiting for approval ... Successfully updated deleted API: 'Petstore API' 1.0.5 (ID: 61c80aae-d3bd-412b-a3f3-5bd2c9694f42)
2015   INFO      APIImportManager| Actual API has been created and is waiting for an approval by an administrator. You may update the pending API as often as you
Test case sample

Please describe the steps you have done to replicate the issue

Hi @jschaefer77, I tried to reproduce the issue, but for me it's working as expected.
When I try to delete an API as an Org-Admin (not having an Admin-Account at all)
C:\temp\apim-cli-1.0.1\samples>apim api get -h api-env -u anna -p anna -wide
------------------------------------------------------------------------
API-Manager CLI: 1.0.1

To report issues or get help, please visit:
https://github.com/Axway-API-Management-Plus/apim-cli
------------------------------------------------------------------------
Module: API - E X P O R T / U T I L S (1.0.1)
------------------------------------------------------------------------
2537   INFO     APIManagerAdapter| Successfully connected to API-Manager (7.7.20200130) on: https://api-env:8075
2746   WARN  rOrganizationAdapter| Using OrgAdmin only to load all organizations.
2795   INFO          APIExportApp| 1 API(s) selected.
+--------------------------------------+---------+------+---------+--------+-------------+----------+----------+-----------------+
| API-Id                               | Path    | Name | Version | V-Host | State       | Security | Policies | Organization    |
+--------------------------------------+---------+------+---------+--------+-------------+----------+----------+-----------------+
| 88fb1882-f145-4afe-939e-b27737398da8 | /api/v1 | B2Bi |   1.1.0 |        | unpublished |   apiKey | None     | API Development |
+--------------------------------------+---------+------+---------+--------+-------------+----------+----------+-----------------+

C:\temp\apim-cli-1.0.1\samples>apim api delete -h api-env -u anna -p anna -id 88fb1882-f145-4afe-939e-b27737398da8
------------------------------------------------------------------------
API-Manager CLI: 1.0.1

To report issues or get help, please visit:
https://github.com/Axway-API-Management-Plus/apim-cli
------------------------------------------------------------------------
Module: API - E X P O R T / U T I L S (1.0.1)
------------------------------------------------------------------------
2628   INFO     APIManagerAdapter| Successfully connected to API-Manager (7.7.20200130) on: https://api-env:8075
2820   WARN  rOrganizationAdapter| Using OrgAdmin only to load all organizations.
2858   INFO          APIExportApp| 1 API(s) selected.
1 selected for deletion.
Do you wish to proceed? (Y/N)Y
Okay, going to delete: 1 API(s)
6556   INFO  APIManagerAPIAdapter| API: B2Bi successfully deleted
Done!

When importing an API (unpublished) as an Org-Admin and making updates to it:
C:\temp\apim-cli-1.0.1\samples>apim api import -h api-env -u anna -p anna -c basic\minimal-config-api-definition.json
------------------------------------------------------------------------
API-Manager CLI: 1.0.1

To report issues or get help, please visit:
https://github.com/Axway-API-Management-Plus/apim-cli
------------------------------------------------------------------------
Module: API - I M P O R T (1.0.1)
------------------------------------------------------------------------
0      INFO     APIManagerAdapter| Successfully connected to API-Manager (7.7.20200130) on: https://api-env:8075
159    WARN  rOrganizationAdapter| Using OrgAdmin only to load all organizations.
237    INFO  IImportConfigAdapter| Reading API-Definition (Swagger/WSDL) from file: 'C:\temp\apim-cli-1.0.1\samples\petstore.json' (absolute path)
328    INFO      APIImportManager| No existing API found, creating new!
1452   INFO          CreateNewAPI| Create unpublished API: 'Sample Minimal API' 1.0.0 based on Swagger 2.0 specification.
3979   INFO          CreateNewAPI| Successfully created unpublished API: 'Sample Minimal API' 1.0.0 (ID: d558abf0-8bae-4479-ac7a-e6c85a87123a)

C:\temp\apim-cli-1.0.1\samples>apim api import -h api-env -u anna -p anna -c basic\minimal-config-api-definition.json
------------------------------------------------------------------------
API-Manager CLI: 1.0.1

To report issues or get help, please visit:
https://github.com/Axway-API-Management-Plus/apim-cli
------------------------------------------------------------------------
Module: API - I M P O R T (1.0.1)
------------------------------------------------------------------------
0      INFO     APIManagerAdapter| Successfully connected to API-Manager (7.7.20200130) on: https://api-env:8075
145    WARN  rOrganizationAdapter| Using OrgAdmin only to load all organizations.
221    INFO  IImportConfigAdapter| Reading API-Definition (Swagger/WSDL) from file: 'C:\temp\apim-cli-1.0.1\samples\petstore.json' (absolute path)
440    INFO      APISpecification| Detected API-Definition-Filesizes: API-Manager: 21159 vs. Import: 21160
443    INFO      APIImportManager| Recognized the following changes. Potentially Breaking: [apiDefinition] plus Non-Breaking: []
444    INFO      APIImportManager| Update API Strategy: Re-Create API as changes can't be applied to existing API.
445    INFO   RecreateToUpdateAPI| Create new API to update existing: 'Sample Minimal API' (ID: d558abf0-8bae-4479-ac7a-e6c85a87123a)
1260   INFO          CreateNewAPI| Create unpublished API: 'Sample Minimal API' 1.0.0 based on Swagger 2.0 specification.
2617   INFO          CreateNewAPI| Successfully created unpublished API: 'Sample Minimal API' 1.0.0 (ID: 67d25059-5a06-4ccf-b351-f760c50fd8dc)
2618   INFO   RecreateToUpdateAPI| New API successfuly created. Going to delete old API: 'Sample Minimal API' 1.0.0 (ID: d558abf0-8bae-4479-ac7a-e6c85a87123a)
2935   INFO  APIManagerAPIAdapter| API: Sample Minimal API successfully deleted

Hi @cwiechmann, please add to your api configuration file an application and do the delete again.
Then you see additional info messages are the message ... API successfuly deleted.
2424   INFO      ManageClientApps| All desired applications: [[Petstore Test App]] have already a subscription. Nothing to do.
2424   INFO     UpdateExistingAPI| Waiting for approval ... Successfully updated deleted API: 'Petstore API' 1.0.0 (ID: c9ffc938-6348-44f1-bfc3-89066b46abf3)
2426   INFO      APIImportManager| Actual API has been created and is waiting for an approval by an administrator. You may update the pending API as often as you want before it is finally published.

I also tried it with an application the Org-Admin has access to and it works as expected. The message: Waiting for approval you see is controlled by the following method:
public boolean isAdminAccountNeeded() throws AppException {
	// Initially set, right after comparing the Desired- with Actual-state
	if(this.isAdminAccountNeeded!=null) return Boolean.parseBoolean(this.isAdminAccountNeeded);
	// If the desired & actual API is state Unpublished - No Admin-Account is needed
	if(getDesiredAPI().getState().equals(API.STATE_UNPUBLISHED) &&
			(getActualAPI()==null || getActualAPI().getState().equals(API.STATE_UNPUBLISHED))) {
		this.isAdminAccountNeeded = "false";
	} else {
		this.isAdminAccountNeeded = "true";
	}
	return Boolean.parseBoolean(this.isAdminAccountNeeded);
}

Are you deleting the API manually?
apim api delete ....
or is it part on an update action (e.g. you changed the Swagger-File)? Can you please provide the exacts steps you have executed to see this issue?

Hi @cwiechmann, I used the following command
apim api import -c <path-to-config> -s <my-stage>
I set the state in the API configuration file to 'deleted'!

At least, that was the only was with Swagger Promote in the past.

Will be fixed with version 1.1.0


Angular 1.x

Hi, awesome directives! Any chances this is available to Angular 1.x versions too?
I'm a total noob in Angular 2, don't even know if there is something that restricts that, or if its easy like rendering typescript to javascript, then making some basic changes.
Thanks

@khullah you can check out a couple of excellent angularjs based solutions. I'd recommend this one: http://codef0rmer.github.io/angular-dragdrop/#!/.

Yeah, didn't really liked that one.. Tried some others, but no quite what I want.
I'll see if I can 'translate' yours to 1.x, if that's ok with you.

@khullah sure go ahead. No issues what so ever. This tutorial on native Html5 drag drop will help you get started: https://www.html5rocks.com/en/tutorials/dnd/basics/


Fix for spark 1.6.x

This PR makes the following changes:

Define SPARK_MASTER_IP, as it is needed for Spark 1.6.x.

I tested this PR using command flintrock launch with Spark 1.6.3.
Scripts "sbin/start-master.sh" and "sbin/start-slaves.sh" in 1.6.x use SPARK_MASTER_IP. This has been changed by the following PR in Spark 2.0.0 : https://github.com/apache/spark/pull/13543/files
The associated JIRA is https://issues.apache.org/jira/browse/SPARK-15806

I can launch and use Spark 1.6.3 clusters just fine with Flintrock. Are you having issues? What issues are you having, exactly?
Also, reading through the discussion on https://github.com/apache/spark/pull/13543, it looks like Flintrock is doing the correct thing by using SPARK_MASTER_HOST, which was supported and used before Spark 2.0. That PR just clarified that _HOST is preferred and _IP is deprecated.

Thanks for your answer @nchammas.
The issue I have with Spark 1.6.3 is that slaves are not recognized nor displayed in Spark UI:
./flintrock --config spark16.yaml launch cluster-test
Requesting 2 spot instances at a max price of $0.1...
0 of 2 instances granted. Waiting...
All 2 instances granted.
[<IP_ADDRESS>] SSH online.
[<IP_ADDRESS>] SSH online.
[<IP_ADDRESS>] Configuring ephemeral storage...
[<IP_ADDRESS>] Configuring ephemeral storage...
[<IP_ADDRESS>] Installing Java 1.8...
[<IP_ADDRESS>] Installing Java 1.8...
[<IP_ADDRESS>] Installing HDFS...
[<IP_ADDRESS>] Installing HDFS...
[<IP_ADDRESS>] Installing Spark...
[<IP_ADDRESS>] Installing Spark...
[<IP_ADDRESS>] Configuring HDFS master...
[<IP_ADDRESS>] Configuring Spark master...
HDFS online.
Spark Health Report:
  * Master: ALIVE
  * Workers: 0
  * Cores: 0
  * Memory: 0.0 GB
launch finished in 0:03:21.

It turns out that this is due to a configuration problem of our VPC. By default, machines in our VPC can only communicate with each other using IPs.
In start-slaves.sh in Spark 1.6, the default value of SPARK_MASTER_IP is hostname :
if [ "$SPARK_MASTER_IP" = "" ]; then
  SPARK_MASTER_IP="`hostname`"
fi

That's why slaves were not recognized.
Sorry for the disturbance, I am closing the issue.

No worries. Glad you figured things out.
FWIW SPARK_MASTER_HOST can also be set to an IP address, according to https://github.com/apache/spark/pull/13543.


Add schwoerer-ventcube adapter

Adapter zur Lüftungssteuerung der zentralen Lüftungsanlage "Ventcube" (Schwörerhaus KG)

https://forum.iobroker.net/topic/36535/neuer-adapter-schwoerer-ventcube

RE-CHECK!

Automated adapter checker
ioBroker.schwoerer-ventcube

[ ] :heavy_exclamation_mark: [E145] No news found for actual version 1.0.1
[ ] :heavy_exclamation_mark: [E140] width and height of logo are not equal
[ ] :heavy_exclamation_mark: [E124] Main file not found under URL: https://raw.githubusercontent.com/Excodibur/ioBroker.schwoerer-ventcube/master/build/main.js
[ ] :heavy_exclamation_mark: [E506] Word "server" is not translated to russian in admin/words.js. You can use https://translator.iobroker.in/ for translations
[ ] :heavy_exclamation_mark: [E506] Word "port" is not translated to russian in admin/words.js. You can use https://translator.iobroker.in/ for translations
[ ] :heavy_exclamation_mark: [E506] Word "interval" is not translated to russian in admin/words.js. You can use https://translator.iobroker.in/ for translations
[ ] :heavy_exclamation_mark: [E504] "build/main.js found in package.json, but not found as file
[ ] :heavy_exclamation_mark: [E802] No topics found in the repository. Please go to "https://github.com/Excodibur/ioBroker.schwoerer-ventcube", press the settings button beside the about title and add some topics.
[ ] :eyes: [W400] Cannot find "schwoerer-ventcube" in latest repository
[ ] :eyes: [W801] .npmignore not found

Add comment "RE-CHECK!" to start check anew

RE-CHECK

RE-CHECK!

Automated adapter checker
ioBroker.schwoerer-ventcube

:thumbsup: No errors found

[ ] :eyes: [W400] Cannot find "schwoerer-ventcube" in latest repository

Add comment "RE-CHECK!"

@Excodibur

At each call setObject is executed, please use setObjecNotExist
https://github.com/Excodibur/ioBroker.schwoerer-ventcube/blob/master/src/main.ts#L83-L90

is it really needed to subscribe all states ?
https://github.com/Excodibur/ioBroker.schwoerer-ventcube/blob/master/src/main.ts#L106

@DutchmanNL

Ok, I changed it now to setObjectNotExistsAsync in main.ts. I checked adapter.js, but don't fully get the purpose of "NotExists". Is it there to prevent duplicate creation of a state-object with the same name?
No, you are right - it is not needed. I limited it now to parameters.* .

I included those changes now in v1.1.1 and updated the release.

How do we proceed from here to get the adapter into your repo? Are further reviews required, or do I need to provide something in addition?
Since finding testers active in the ioBroker community is a bit difficult for this housevendor-specific climate-control solution, I can only provide working integration tests (see Github actions) againt a mockservice as proof at the moment.

Hi @Excodibur beschallt you did all you can and I previewed your adapter and looks fine for me.
 :/

@DutchmanNL Thanks for the feedback! I understand of course and can relate quite a bit. ;-)

Ok, I changed it now to setObjectNotExistsAsync in main.ts. I checked adapter.js, but don't fully get the purpose of "NotExists". Is it there to prevent duplicate creation of a state-object with the same name?

setObject overrides the object and in older js-controller versions custom attributes were not completely remembered and restored, this should be fixed in controller 2.x+, but also hard overwrite of objects is not that needed

Hey, I have

with     "@iobroker/adapter-core": "^2.4.0", your js.cntroller dep needs to be >=2.0.0
it is a "best practice" to ctreate ainfo channel with a connection state and set this with the connection status so that admin can show the status better
please make sure timeoits (and intervals) like https://github.com/Excodibur/ioBroker.schwoerer-ventcube/blob/32f6aac46ae0a3720711e91a4512087fdf7da478/src/lib/connector.ts#L52 are cleared when "unload" is called. This is not the case currently
Is it possible to also set state roles better then just "value"? (https://github.com/Excodibur/ioBroker.schwoerer-ventcube/blob/32f6aac46ae0a3720711e91a4512087fdf7da478/src/main.ts#L63)

Thank you for checking and fixing. Please drop a line here when done

@Apollon77 Thank you for those remarks.
I changed adapter implementation accordingly: https://github.com/Excodibur/ioBroker.schwoerer-ventcube/releases/tag/v1.3.0
Please take a look at it.

I did not saw the connection.info state for Admin and roles optimized, but in fact up to you :-) Welcome in Repo.

@Apollon77 Thanks again for adding the adapter.
The other points should be there as well, at least I hope I understood them correctly. :-)
connection.info (set in Connector itself)
https://github.com/Excodibur/ioBroker.schwoerer-ventcube/blob/2a4533fe8e05a365506402918e2b21f372698854/io-package.json#L116-L138
Improved state roles logic
https://github.com/Excodibur/ioBroker.schwoerer-ventcube/blob/2a4533fe8e05a365506402918e2b21f372698854/src/main.ts#L74-L100


Feature/concurrent dead lock

Description

Related Issue

Motivation and Context

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation Update (if none of the other choices apply)

Checklist:

[ ] Code compiles correctly.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Codecov Report

Merging #509 (9dca480) into main (e655635) will decrease coverage by 0.04%.
The diff coverage is 28.00%.

@@            Coverage Diff             @@
##             main     #509      +/-   ##
==========================================
- Coverage   39.59%   39.55%   -0.05%
==========================================
  Files          81       81
  Lines        6284     6293       +9
==========================================
+ Hits         2488     2489       +1
- Misses       3437     3443       +6
- Partials      359      361       +2

Flag
Coverage Δ

e2etests
?

unittests
39.55% <28.00%> (-0.05%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

client/daemon/daemon.go
0.00% <0.00%> (ø)

client/daemon/peer/peertask_base.go
32.39% <0.00%> (-0.71%)
:arrow_down:

client/daemon/service/manager.go
33.00% <0.00%> (ø)

pkg/structure/sortedlist/sorted_list.go
56.31% <0.00%> (-2.28%)
:arrow_down:

scheduler/config/config.go
0.00% <0.00%> (ø)

client/daemon/peer/peertask_file_callback.go
62.96% <25.00%> (ø)

client/daemon/peer/peertask_stream_callback.go
64.55% <25.00%> (ø)

client/daemon/peer/peertask_file.go
53.81% <50.00%> (+0.15%)
:arrow_up:

client/daemon/peer/peertask_stream.go
57.29% <100.00%> (+0.31%)
:arrow_up:


Is franka_control.msg deprecated?

I'm looking at a codebase that I know to have been built around franka_ros 0.5.0, Kinetic, and am looking to run this on 0.7.1, melodic.
I expected to run into issues, but there's one immediately that I am coming up against: the code imports, in Python:
from franka_control.msg import ErrorRecoveryActionGoal

And I get an ImportError: No module named franka_control.msg.
Has this interface been deprecated since 0.5.0, and is there an equivalent interface to the ErrorRecoveryActionGoal message type?
Many thanks!

Yup - it's now all under franka_msgs.msg (same goes for other franka_control imports eg franka_control.srv is now at franka_msgs.srv.


highlight differences between step changes

After transaction debug two step changes can be shown similar to git diff

https://github.com/quantanet/ethcode/tree/diff_checker


Build command not building website links correctly

Describe the bug
When built, the website will correctly show the first page (index.html) but subsequent pages will error with 404. Individual HTML files are present in the build but aren't accessible from within the website itself
To Reproduce
Steps to reproduce the behavior:

Create a site containing two or more pages in obsidian with one linking the other (Index.md, second.md)
Run npx quart build --serve
navigate to localhost:8080
Note: the links work correctly
In the public folder, run index.html
navigate to the link
404 occurs

Expected behavior
Pages linked together when run locally without quartz or when uploaded to a webserver.
Screenshots and Source
If applicable, add screenshots to help explain your problem.
Link: https://vttnotes.maldor.tech/
Source: content.zip
Resulting files: public.zip
Desktop (please complete the following information):

Quartz Version: 4.2.1
node Version: v20.11.0
npm version: 10.2.4
OS: Windows 10 Pro build 19045.3930
Browser: Chrome

Additional context

This is not a bug, the resulting files are linked without the .html extension and you need a hosting provider/server that will know how to serve files without the .html extension. You can't run Quartz off of files alone because of how script loading policies work


Evaluate using xdg-basedir crate

The xdg-basedir crate could make the $XDG_CACHE lookup (usually ~/.cache) more standards compliant.
A get_dir function could be conditionally-compiled for unix and non-unix platforms. On unix, the $XDG_CACHE lookup would be used, on Windows a directory in the user profile that doesn't contain a dot would be used.

Are there any tldr pages for Windows? I thought it was only for OS X/Linux/*nix?
If that's the case, then Windows support isn't required as I doubt their are many users wanted to browse simplified man pages on their Windows machine, and if they really did want to there is always the online repository.

Also, I'd be happy to work on this.

I'm actually not sure. The current pages don't include Windows support, so I guess we don't need it now. But in theory nothing speaks against supporting powershell commands in the tldr pages...

It shouldn't be too hard to add Windows support in the future anyhow.

I'm finding a lot of newlines and double newlines in your code.
E.g.
#[derive(Debug)]
pub enum TldrError {
    CacheError(String),
    UpdateError(String),
}

impl From<ErrCode> for TldrError {
    fn from(err: ErrCode) -> TldrError {
        TldrError::UpdateError(err.to_string())
    }
}

and
impl Cache {

    pub fn new<S>(url: S, os: OsType) -> Cache where S: Into<String> {
        Cache {
            url: url.into(),
            os: os,
        }
    }

It's quite unusual and I'm not sure if it is part of your coding style or if they are just mistakes.

That's probably because of my Python background, where you separate top level functions with two empty lines (as specified by PEP8) :) Does Rust have any conventions on this?

Also, I recommend this library instead. If only because I prefer the API.

Sure, I don't have experience with either of them :)

The double empty lines are probably because of my Python background, where you separate top level functions with two empty lines (as specified by PEP8) :) Does Rust have any conventions on this?

I figured it was from Python. Regarding Rust, there really isn't much of formal written convention (at least, I don't think there is), however using double newlines is something you'll never really see in Rust code (and is indeed something I've only seen be used by Python programmers).

Regarding the second example, I prefer to keep vertical whitespace symmetric, so I'd put an empty line between the impl and the pub fn new lines if there's an empty line following the new method. If new is the only method in the impl block, I'd skip these empty lines.

That's quite an unusual thing to do (at least in my experience), but I'll try my best to keep it in mind.

Feel free to get rid of the double empty lines.
Regarding the rest, I can try to come up with a sensible rustfmt config.


Cart type anything just a blinking light

Hello, i cart seem to get any terminal package to work heres a screenshot: http://imgur.com/a/CZqcV
I have node-gyp installed and heres my other pakages:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Hi @Tms157
Can I grab this information from you? https://github.com/Fred-Barclay/Termination/blob/master/CONTRIBUTING.md#filing-an-issue It makes debugging (and hopefully fixing) a bit easier. :smiley:

Version of Atom: Latest (1.14.3)
Version of Termination: latest (0.3.7)
Operating System: MacOS sierra 10.12.3 (16D32)
Any debug information: jus installed it and it dint work dont really have much more
Steps to reproduce the problem: Just install it
Could i be missing something i need to be able to use this or something? i could not get any terminal to work.

@Fred-Barclay I've had this issue repeatedly with terminal-plus and termination. Ended up debugging and the problem is in termination.coffee.
For some reason, process.env.SHELL never seems to be defined, so the line that uses that variable errors. Fixed it by replacing process.env.SHELL with /bin/bash. Unfortunately, I don't know enough about Atom to fix it myself, but thought I'd share the problem with you!

@isaac-webb what file did you make this change in?

@Tms157 ~/.atom/packages/termination/lib/termination.coffee Line 83, I changed process.env.SHELL to '/bin/bash'

@isaac-webb Thanks! will give this a go in the morning

Awesome @isaac-webb ! I hope this helps @Tms157 :smile: and you're definitely helping me figure out the problem.
Can you walk me through the steps you used to debug and find this? I'm still inexperienced working with coffeescript and electron.
Side note:
Changing process.env.SHELL to /bin/bash isn't a solution for the entire program since we have Windows users (and maybe some Linux users without bash???) so I'll work on a long-term solution. If we get this fixed I'll push it upstream to platformio as well (I remember seeing similar bugs on their repo).
Cheers!
Fred

@Fred-Barclay I just used Atom's built-in Chrome web debugger. There was a warning when the package loaded relating to the shell variable being null so I found the definition in the termination.coffee file and noticed that process.env.SHELL does not seem to exist on macOS (figured this out by using the console to view the process.env object). In addition, an error was thrown whenever a terminal opened since it was trying to assess a null path.
As a side note, I think a better quick fix, if not permanent, would be replacing process.env.SHELL with process.env.SHELL || '/bin/bash'. If it isn't defined, then it will fallback to bash. Tried Atom on a Linux VM and that variable seems to be defined, so I'm willing to bet that fallback would apply mainly to macOS users, who are almost guaranteed to have bash.
Unfortunately, I'm sure you are far more experienced with CoffeeScript and Electron, so I'm not sure I can provide too much more insight, but I hope this helped!
-Isaac

I've got two ideas so far:
add process = require 'process' to the top of termination.coffee
or
add this under line 83:
else if process.platform is 'darwin'
  /bin/bash

I don't have Mac hardware so I'd need someone to test this and help me out. :stuck_out_tongue_winking_eye:

I think either of the latter two options would work, @Fred-Barclay ! The "fallback" fix might be nice for Linux users who somehow do not have a shell defined. I tested the first option, and it didn't make much of a difference, likely because the process.env object does exist, it just doesn't have a SHELL property.
I made another interesting discovery this morning, however... I, as most macOS users probably do, tend to launch Atom from Spotlight or Launchpad. Out of curiosity, I executed atom in iTerm to launch it instead. When I did this, the SHELL variable was defined! So it appears as though this bug may be due to the lack of an executing shell when launching an app "normally" on macOS? Just another reason we should all use a terminal... or Linux 😉

@Fred-Barclay , @isaac-webb thanks foe the help guys! working fine now.

Great news @Tms157!
I'll push out an update in a few moments with process.env.SHELL || '/bin/bash'. I'm also going to kick this upstream as an Issue. Considering that they have 3 similar issues on their repo they might be interested in this fix or have some other suggestions.
@isaac-webb Linux rocks! Just sayin'...
Thanks for the help and the fix!

Wow, @ivankravets works fast! This is fixed and released for platformio-ide-terminal as well:
https://github.com/platformio/platformio-atom-ide-terminal/commit/112c963f5edbcf203a52a47c107bc6587894bc15


Advanced Tab - Social

Facebook and Twitter Consumer ID and Secret appear but on my auth0 account I also have Google +, Linkedin and Yahoo.
Question: is it the expected behaviour that only Facebook and Twitter Appear?

Yes, it is related to a widget called social amplificator that allows you to share the page using and it uses your social credentials from auth0. only works with facebook and twitter for now

Ok, Closing this issue


Cable Status Colors do not show in tables when using Dark Theme

Environment

Nautobot version (Docker tag too if applicable): 2.1.0+
Python version: Python 3.11
Database platform, version: Postgres (invoke environment)
Middleware(s):

Steps to Reproduce

Create a Device with a cable attached (Interface, Console Port, Console Server, Power Port, etc...)
Switch to Dark Theme

Expected Behavior
The row is highlighted with the color matching the status (Green for "Connected", Blue for "Planned" and Red for "Decommissioning".

Observed Behavior
The row is the same color as other rows in the Interface table.

This worked in 2.0.0, but not in 2.1.0+

So [cable_status_color_css](https://github.com/nautobot/nautobot/blob/develop/nautobot/dcim/utils.py#L52) function is explicitly setting the background-color attribute of the tr element to be a specific color. However, in our dark.css file, we are using the !important to override that backgroud-color attribute. We need to look into using https://getbootstrap.com/docs/3.4/css/#tables-contextual-classes for the table row coloring as well


Update getPlayerData.m

The Cody player page has changed. The regular expressions needed an update.

Fixed issue #1 where the player doesn't have a score or has no activity on their page.

Fixed issue #1 where the player doesn't have a score or has no activity on their page.

bump

bump


[SPARK-29906][SQL] AQE should not introduce extra shuffle for outermost limit

What changes were proposed in this pull request?

AdaptiveSparkPlanExec should forward executeCollect and executeTake to the underlying physical plan.
Why are the changes needed?

some physical plan has optimization in executeCollect and executeTake. For example, CollectLimitExec won't do shuffle for outermost limit.
Does this PR introduce any user-facing change?

no
How was this patch tested?

a new test

cc @maryannxue @JkSelf

Test build #114013 has started for PR 26576 at commit 8af77ac.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18875/
Test PASSed.

Test build #114014 has started for PR 26576 at commit 8fa3a84.

Test build #114014 has finished for PR 26576 at commit 8fa3a84.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114014/
Test FAILed.

retest this please

Test build #114023 has started for PR 26576 at commit 8fa3a84.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18884/
Test PASSed.

Test build #114013 has finished for PR 26576 at commit 8af77ac.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114013/
Test PASSed.

Test build #114023 has finished for PR 26576 at commit 8fa3a84.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114023/
Test PASSed.

LGTM.

Thanks! Merged to master.


Chart - excel is broken if decimal separator is comma

Hi, when comma is used as decimal separator for the bar chart datasource  (didn't tested with another types of chart) the produced excel file is broken. As a workaround I'm setting custom thread culture and then setting it back:
var oldCulture = CultureInfo.CurrentCulture;

CultureInfo customCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
customCulture.NumberFormat.NumberDecimalSeparator = ".";

Thread.CurrentThread.CurrentCulture = customCulture;

.....

Thread.CurrentThread.CurrentCulture = oldCulture;

Can you tell me what's your current Culture code? I remember this issue is somewhat fixed in one PR.

My culture is ru-RU

Can you share me the Excel to reproduce the issue?

@tonyqus, sure. I did some research and the issue is not with decimal value, the real issue is with dateStyle:
var dateStyle = workbook.CreateCellStyle();
dateStyle.DataFormat = workbook.CreateDataFormat().GetFormat("dd.MM.yyyy HH:mm:ss");
dateStyle.BorderLeft = BorderStyle.Thin;
dateStyle.BorderTop = BorderStyle.Thin;
dateStyle.BorderRight = BorderStyle.Thin;
chart.xlsx
dateStyle.BorderBottom = BorderStyle.Thin;

Can you share me the original chart.xlsx? The one uploaded was modified by NPOI. I need the original one. It looks something lost in drawing1.xml

@tonyqus, hello!
Can you please reopem the issue? I've tried to recover this file with MS Excel, the message:

Recovered entry: Picture from path /xl/drawings/drawing1.xml (Drawing figure)

I've attached recovered file.
chart_recovered.xlsx

There is an obvious change in the recovered chart. The numCache values are saved in x.x instead of x,x. Is this a culture related issue?

I believe, it's culture related, in the first post I've mentioned a workaround - setting dot as NumberDecimalSeparator


Update packagist service domain

The Packagist metadata API has been updated: https://packagist.org/apidoc#get-package-data

Looks good 👍
I see the new endpoint is https://repo.packagist.org/packages/... other than https://repo.packagist.org/p/... in the document, is it an undocumented feature?

Nah, you're are correct. I didn't read the documentation careful enough.

It's a little strange, actually the undocumented https://repo.packagist.org/packages/ works fine, while documented https://repo.packagist.org/p/ output a different format, compare to the original endpoint https://packagist.org/packages/ 🤯

Yeah, not sure why it works that way to be honest.


Bug: Request to Update Twitter Logo

📜 Description
I have identified that the Twitter logo displayed in the footer section of website is outdated, and it is crucial to keep branding up to date with the latest elements provided by Twitter.
👟 Reproduction steps

Go to homepage
Scroll down the bottom

👍 Expected behavior
New Twitter logo will be used to replace the outdated one in the footer section of our website.
👎 Actual Behavior

☸ Kubernetes version
N/A
Cloud provider

N/A

🌍 Browser
Chrome
🧱 Your Environment
No response
✅ Proposed Solution
No response
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find any similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

AB#6398

@moheyt Can you assign me this issue, if no one else is working on it

@moheyt and @VishalPraneeth
Devtron website is not managed through github, closing this issue and forwarding the request to concerned team to update it.