Add VRP-based constant folding for integer comparisons.

This is the first instalment of my translated and improved rendition of @lionello 's PR #1913, which I have decided to break up into chunks, since it makes several changes which do not need to be evaluated on an all-or-nothing basis.
This first piece:

Implements value-range-propagation based constant folding for integer comparisons.

Fixes issue 15585 by raising the initial VRP maximum for dchar values from dchar.max to uint.max.

Disables the statement is not reachable warning. That warning interacts very badly with effective VRP in generic code (DMD issue #14835), and when I made a forum thread to discuss the issue, the conclusion was that a true fix is not feasible.

Strategically, my goal is to enhance VRP and constant folding capabilities to the point that issue 259's pre-approved solution to the problem of dangerous signed/unsigned comparisons can be implemented without causing too many "false positive" errors.
This PR does not accomplish that goal by itself, but it is a useful step. In the mean time, it modestly improve the front-end's ability to optimize logic and detect unreachable code.
The change to dchar's initial VRP maximum is required to prevent the compiler from treating attempts to handle invalid out-of-range dchar values as dead code. I got @WalterBright 's approval for this part earlier on the forums<EMAIL_ADDRESS>

If this breaks Phobos, then that begs the question of what other code this could break in the wild. I think it would be prudent to at least try to compile some popular dub libraries with this just to be sure.

@JackStouffer Because of the dchar VRP change, this is basically guaranteed to break some other code in the wild. The existing behaviour is clearly wrong, though, and has the potential to cause nasty silent bugs.
With this PR, code which is potentially effected will mostly either:

Suddenly start working correctly, with no intervention required, or

Fail with a compiler message that basically says, "stick an explicit cast(dchar) here to fix this".

The need for explicit cast(dchar) could be eliminated by allowing implicit conversion between uint and dchar, which are the same thing at runtime, anyway.
I would not be opposed to such a change, but it doesn't really seem necessary as this issue is only really likely to come up in unicode codecs; even then only one line in all of std.uni needed to be changed.
The other required Phobos change is potentially of greater concern, though, as it indicates that it is at least possible for integer comparison folding to interact with templates and dead code detection in awkward ways. So, I guess I can try compiling some other people's stuff to see how common that issue is.

@JackStouffer So I tried building some stuff from dub and learned:

Most stuff on dub fails to compile with DMD HEAD for reasons entirely unrelated to my PR, which makes it hard to test this way.

The dchar stuff is not a problem; no project I have tested besides Phobos has been effected, so far.

VRP integer comparison folding + templates + dead code detection thing is a problem, albeit almost exclusively on unittest builds, and then only for certain projects - most prominently, vibe-d.

Upon further investigation, I have determined that (3) is caused by the pre-existing DMD issue #14835. The problem is, the better that VRP and constant folding get, the worse that issue 14835 becomes.

I think the dchar.max patch should be filed separately. It is a bug and should get fixed asap. https://issues.dlang.org/show_bug.cgi?id=14627

@lionello This PR does not fix issue 14627. Your demo code still compiles and runs, even with this patch applied.
This PR does not change dchar.max or the dchar to uint conversion rules; it simply allows VRP to account for the possibility of out-of-range dchar values.

Since the companion Phobos PR #3767 has been merged now, I tweaked the comment on line 1007 of constfold.d to get the auto-tester to check this PR again.

@WalterBright Done.
Is this likely to get merged soon, or is issue 14835 a blocker?

I added a couple of "compilable" tests.
The test for the dchar fix requires the new VRP-based comparison folding in order to work, demonstrating why the two belong in the same PR.
Although it is not my motivation, I noticed that this PR is a partial fix for issue 13010.

I made a forum thread to discuss fixing issue 14385.
There is no consensus that it is even a bug; several people argued that the current behaviour is correct. In any case, it is not obvious that there is a good way to fix it short of just removing the warning.
I do not think 14385 should block this PR. Are there other objections?

Updated whitespace.

Note that the auto-tester failure is due to DMD 14835 again.

The test for the dchar fix requires the new VRP-based comparison folding in order to work, demonstrating why the two belong in the same PR.

@quickfur I'm willing to split the dchar fix into a separate PR, if you can provide me with a simple, clear test case that fails on the current compiler, without the rest of this PR.

@tsbockman @lionello : Thank you so much for working on this. It is IMO a change of great importance for the end user.
I agree that https://issues.dlang.org/show_bug.cgi?id=14835 is a big annoyance, and can only get worse in the future. However, in this case, it is actually helpful.
The chance we have is, it triggers a warning, not an error. Someone updating has the possibility to temporarily switch from warning as error to informational ones, until their dependencies are fixed, so that shouldn't be considered a blocker.
However, changing dchar.max should probably be rolled out before, and if possible in a different release. Did you raise a P.R. for this ?

However, in this case, it is actually helpful.

How so?
In general, there is absolutely nothing wrong with the code that triggers that warning with my VRP improvements. The warning is essentially spurious. There is nothing to "fix" - it's just noise that must be ignored or worked around, in a very tedious fashion.

However, changing dchar.max should probably be rolled out before, and if possible in a different release. Did you raise a P.R. for this ?

I'd like to, but I haven't found any reliable way of actually demonstrating the problem without the rest of this patch. (That's why it hasn't been a big problem so far: the compiler is not yet "smart enough" for the faulty assumption to cause real problems.)
I'm not really comfortable submitting a "fix" without a test case to go with it.

I'd like to, but I haven't found any reliable way of actually demonstrating the problem without the rest of this patch. (That's why it hasn't been a big problem so far: the compiler is not yet "smart enough" for the faulty assumption to cause real problems.)
I'm not really comfortable submitting a "fix" without a test case to go with it.

It has never been a problem to submit separate P.R. like this.
I agree a test case would be better, but this change has already been approved and is IMO more a fix to the specs than a fix for VRP. After all, who would ever expect the following to ever fail:
void check (T) (T a) { assert(a <= T.max); }

After studying the issue some more, I came to the conclusion that the only reasonable way to deal with issue 14385 - short of actually fixing it, which I have been told is infeasible - is to disable the statement is not reachable warning entirely.
This "nuclear option" is not really necessary for this pull request, but I have experimented with the next piece of lionello's VRP improvements, and the problem will get much worse if I implement those in a future PR. Bluntly, "the cure is worse than the disease" - I would rather see issue #259 closed as WON'T FIX, than see VRP improved to the point of spamming all of my generic code with spurious statement is not reachable warnings everywhere.
So, I've added a final commit for that purpose.

Another option would be to segment the warnings, for example:
-w : All warnings but "Statement is not reachable"
-w=unreachable : Self-explatory

Another option would be to segment the warnings

Part of the problem is that Phobos itself will not compile without many spurious statement is not reachable warnings once I fully upgrade VRP. Aside from that, though - making the warning optional is fine, I guess.
I'm waiting for some indication that this PR will actually be accepted before working out such details, though.

I think removing the warning completely is a mistake. It can be useful with catching certain dangerous bugs. For example:
bool fun()
{
	i = 0;

	if (cond)
		return true;

	if ((cond2 && cond3) || (cond4 && cond5) || (cond6 || cond7)) i = someFun(j);
		return true;

	return false;
}

It might not be obvious at a glance that the second return true is unconditional.
See also Apple's infamous "goto fail" bug for a real-world example.
Additionally, will DMD still emit code for unreachable statements? If yes, then removing the warning removes a way to detect code bloat.
Instead, would it be possible to do one of these:

Only emit the warning if it is not conditional on a version or static if block. DMD should not emit the unreachable code.
Emit a deprecation for all cases where a warning would now be generated (and wasn't generated before), and after a few versions turn it into a warning.

@CyberShadow

Additionally, will DMD still emit code for unreachable statements? If yes, then removing the warning removes a way to detect code bloat.

Removing the warning has no impact one way or the other on the code emitted.
I'm pretty sure that DMD does omit unreachable code in optimized builds.

@CyberShadow

I think removing the warning completely is a mistake. It can be useful with catching certain dangerous bugs. For example...

I totally understand why the warning is useful... when it actually works correctly. I would much rather fix it than remove it.
However, when we discussed this on the forums, the conclusion was that the details of D's template system and its module system make it infeasible to reliably differentiate code that is never reachable, from code that is only reachable with certain compile-time parameters.

Only emit the warning if it is not conditional on a version or static if block. DMD should not emit the unreachable code.

DMD has never emitted statement is not reachable warnings for code that is skipped because of a static if or version condition. That's not the issue; the problem is when runtime control flow constructs (regular if, while, for, etc.) depend upon compile-time parameters in such a way as to make some code implicitly unreachable, for some compile-time inputs.

Emit a deprecation for all cases where a warning would now be generated (and wasn't generated before), and after a few versions turn it into a warning.

This doesn't make much sense to me: where people care about the warning, they have generally already fixed the code so it won't generate it. Where people consider the warning spurious, they'll be happy to see it disappear tomorrow.
If they depend upon the warning to write good code, then they'll be just as unhappy about it being removed after a deprecation cycle, as they would about it being removed immediately; how does one prepare for such a change? It's non-breaking; there is nothing to do.
Deprecations are for changes that will break old code; this change makes it slightly harder to write good new code. (But I believe the loss will be outweighed by the gains from better VRP, and detection of bad integer math code.)

Don't consider code "unreachable" as a result of VRP.

This would sacrifice much of the performance benefits of VRP, as well as crippling the utility of the warning. VRP-based detection of unreachable code is a good thing.
VRP is not the problem - the problem is that DMD can't tell the difference between "unreachable" and "unreachable in some template instantiations" or "unreachable on some platforms".

DMD has never emitted statement is not reachable warnings for code that is skipped because of a static if or version condition. That's not the issue; the problem is when runtime control flow constructs (regular if, while, for, etc.) depend upon compile-time parameters in such a way as to make some code implicitly unreachable, for some compile-time inputs.

What are you talking about?
int foo()
{
	static if (true)
		return 1;
	return 2;
}

This generates a warning as a result of the static if. In this particular case, the programmer's intent is obvious and we can agree that the warning is spurious.

If they depend upon the warning to write good code, then they'll be just as unhappy about it being removed after a deprecation cycle,

Again, what are you talking about? I did not propose to remove the warning after a deprecation cycle.

Deprecations are for changes that will break old code; this change makes it slightly harder to write good new code.

Maybe I brutally misunderstood everything, but my understanding of the situation is:

You added VRP
The VRP generates new warnings which break Phobos and probably other code
Your solution: disable the warning.

I say, don't disable the warning! Instead, introduce the warning gradually so as to not break existing code suddenly. What is it that you are talking about that "makes it slightly harder to write good new code"?

@CyberShadow

What are you talking about?
int foo()
{
    static if (true)
        return 1;
    return 2;
}

This generates a warning as a result of the static if. In this particular case, the programmer's intent is obvious and we can agree that the warning is spurious.

Sorry, I was referring to the other way around:
static if (false)
    return 1; // Some people expect this to generate a "statement is not reachable" warning
return 2;

In most cases like the one you showed above, the warning can be fixed just by inverting the condition, adding an else clause, etc. That's not really the main source of problems, although it can be annoying also.

Again, what are you talking about? I did not propose to remove the warning after a deprecation cycle.

I misread your point (2) in that list. Now that I see what it actually says... It still appears completely unhelpful to me.
Instituting a transition period only helps if there is actually a reasonable way to fix user code so that it doesn't generate spurious warnings. But, this is simply not possible in complex generic code. (See below.)

Maybe I brutally misunderstood everything, but my understanding of the situation is:
You added VRP
The VRP generates new warnings which break Phobos and probably other code
Your solution: disable the warning.
I say, don't disable the warning! Instead, introduce the warning gradually so as to not break existing code suddenly.

The problem is that the compiler will issue the warning if a statement is unreachable in any instantiation of a template, whereas it should only do so if the statement is unreachable in all possible instantiations of the template.
This faulty definition of "unreachable" already causes problems today - just not often enough to be a big deal, because the compiler isn't smart enough to notice most of the code whose reachability depends on the interaction of compile-time parameters with run-time control flow.
Improving VRP makes the compiler smarter, which improves its ability to apply the faulty definition of "unreachable"... which is a bad thing, because the definition is faulty.
First, consider a simple case:
int sign(N)(N num)
    if(isNumeric!N)
{
    if(num >= 0)
        return 1;
    else
        return -1;
}

The above template function, if it is used widely, might generate about eight "statement is not reachable" warnings, because the return -1 cannot be reached for unsigned types, and const uint may be instantiated separately from uint.
The warnings are unhelpful, because:

return -1 is reachable when it needs to be - that is, when N is signed.

The warning itself proves there is no performance issue with the dead code; it will only trigger if the branch is successfully resolved at compile time, and the return -1; is marked for the optimizer as dead code.

Since the above is a trivial function, there are many reasonable fixes possible. However, none of the future-proof ones actually improve the quality of the code; they add redundant logic just to suppress the warning.
The most reasonable fix would probably be this:
int sign(N)(N num)
    if(isNumeric!N)
{
    static if(isSigned!N)
    {
        if(num < 0)
            return -1;
    }

    return 1;
}

Obviously it's not a big deal in this trivial example, but notice that the code didn't just get longer and more complicated - the layout also had to be changed, because D doesn't allow us to directly enclose only the else section of the original in a static if.
Now consider something more complicated:
size_t countFound(alias filter, N, H...)(N needle, H haystack)
    if(allSatisfy!(isRandomAccessRange, N, H) && allSatisfy!(hasLength, H))
{
    size_t count = 0;

    const nLen = needle.length;
    foreach(hay; haystack) {
        if(hay.length < nLen)
            continue; // potentially "unreachable"

        const hEnd = hay.length - nLen; // potentially "unreachable"
        for(size_t hx = 0; hx <= hEnd; ++hx) {
            bool found = true;
            for(size_t nx = 0; nx < nLen; ++nx) {
                if(filter(needle[nx]) != filter(hay[hx + nx])) {
                    found = false; // potentially "unreachable"
                    break;
                }
            }

            if(found)
                ++count; // potentially "unreachable"
        }
    }

    return count;
}

Depending on the combination of template parameters used, there are at least four different code segments in the above which could be found to be "unreachable" by the compiler through constant folding and VRP - even though all four segments are both reachable and necessary in most plausible instantiations of the function.
Unlike the trivial sign() function, there is really no reasonable way to rewrite countFound() to be immune to unwanted "unreachable" warnings. When I try, I end up with this awful mess:
size_t countFound(alias filter, N, H...)(N needle, H haystack)
    if(allSatisfy!(isRandomAccessRange, N, H) && allSatisfy!(hasLength, H))
{
    size_t count = 0;

    const nLen = needle.length;
    foreach(hay; haystack) {
        /* If the values of both nLen and hLen are sufficiently constrained at
        compile-time, one branch or the other of the "skip" test below will be
        labeled as "unreachable" in this instantiation.
        */
        static if(__traits(compiles, AliasSeq!(hay.length < nLen))) {
            enum skip = hay.length < nLen;
            enum scan = !skip;
        } else {
            enum skip = true;
            enum scan = true;
        }

        static if(skip) {
            if(hay.length < nLen)
                continue;
        }
        static if(scan) {
            const hEnd = hay.length - nLen;
            for(size_t hx = 0; hx <= hEnd; ++hx) {
                bool found = true;
                for(size_t nx = 0; nx < nLen; ++nx) {
                    /* The predicate below may be resolvable at compile time if:

                    1) hay.length is known to be greater than needle.length,
                    2) needle.length is known to be greater than zero, and
                    3) the return values of the two filter() calls can be deduced to
                       either be equal, or in non-overlapping ranges from the types alone.

                    These conditions are not difficult to meet (for example, if hay
                    and needle are both static arrays of unsigned integers and filter
                    is the trivial sign function that I defined earlier).

                    However, I tried and failed to come up with a way of preventing the
                    resulting warning, in the general case.
                    */
                    if(filter(needle[nx]) != filter(hay[hx + nx])) {
                        found = false; // still potentially "unreachable"
                        break;
                    }
                }

                if(found)
                    ++count; // still potentially "unreachable"
            }
        }
    }

    return count;
}

Back when I originally opened this PR, I found a single problem along these lines (although not as nasty as my example here) that needed to be fixed in Phobos: https://github.com/D-Programming-Language/phobos/pull/3767/files
However, this PR just adds constant folding for integer comparisons. Once I started testing the other part of Lionello Lunesu's upgrade, which makes value range propagation aware of the constraints on values implied by if/else predicates, I quickly concluded that the warning will become far more trouble than it's worth, as the compiler gets smarter.

This could use some input from someone more experienced with compiler development (@WalterBright or @9rnsr). Maybe a better solution exists.
Either way, I think making "goto fail" valid code would be a step backwards, and an embarrassment to D. I think we need to keep searching for a better solution.

@CyberShadow An real fix for DMD 14835 would be great.
I think an ideal fix is actually impossible, as it would equate to fixing the halting problem because D's compile-time meta-programming system is Turing Complete.
However, in practice all that's actually required, is to find some heuristic whereby the compiler can reasonably approximate checking the reachability of a statement in all possible template instantiations. But @yebblies convinced me in the previous forum discussion that even just implementing a good heuristic would be difficult.
Regardless, the existing reachability analysis code must not be removed, because for optimization purposes it is correct to check each instantiation separately, as the compiler currently does.

However, in practice all that's actually required, is to find some heuristic whereby the compiler can reasonably approximate checking the reachability of a statement in all possible template instantiations. But @yebblies convinced me in the previous forum discussion that even just implementing a good heuristic would be difficult.

Well, we don't need a good heuristic to prevent instances of "goto fail". Heck, how about enabling the warning only for non-templated functions that don't have any conditional compilation statements in them? Most non-library D code is not templated anyway.
Also I wonder if the warning could be moved into DScanner. It might be better positioned to find definitely-unreachable code where static if is involved, without concerning itself too much about precision. For example, DScanner can warn about unused variables (i.e. variables that don't even appear in version(none) blocks), whereas in DMD such a warning would be gratuitous for generic code because it doesn't even look what identifiers appear in code it does not compile.
@Hackerpilot ?

Sorry, I was referring to the other way around:
static if (false)
return 1; // Some people expect this to generate a "statement is not reachable" warning
return 2;

I don't understand this example. Essentially that block of code is turned off (same as version(none)), why would it generate a warning?

@CyberShadow

how about enabling the warning only for non-templated functions that don't have any conditional compilation statements in them? Most non-library D code is not templated anyway.

This possibility is definitely worth looking into. The important part would be to suppress the warning in template functions, and functions that are nested inside of templates (even if the function itself is not templated).
I'm not sure if scanning the body for conditional compilation statements is necessary or not; spurious warnings can occur outside of templates - even in code with no static if or version blocks - but probably wouldn't very often in practice, even with really good constant folding and VRP.

Also I wonder if the warning could be moved into DScanner.

I'd be very surprised if DScanner can do this better than the compiler, but would be happy to be proven wrong. At least if the warning were coming from DScanner, people wouldn't feel obligated to "fix" the code when it's not actually broken.

I don't understand this example. Essentially that block of code is turned off (same as version(none)), why would it generate a warning?

It doesn't, and shouldn't, generate a warning. But, some others I've discussed it with expect it to anyway - maybe because of confusion about the precise difference between run-time if, and static if?

This possibility is definitely worth looking into. The most important part would be to suppress the warning in template functions, and functions that are nested inside of templates (even if the function itself is not templated).

I still believe this is doable, but I don't understand the compiler internals well enough to easily do it myself. Since I am ending my participation in the dlang project, I'm going to close this now.
It would probably just be rejected anyway, since WalterBright doesn't seem the slightest bit interested in the long-term goal of fixing issue 259 (despite having pre-approved the fix).

This is valuable work. I haven't been able to get to it (I'm currently working on all the complaints about @safe problems).

@WalterBright

This is valuable work. I haven't been able to get to it

Well then, the aspect of this that really needs your input is how to mitigate the issue 14385, which I consider to be a blocker for this.
If that is dealt with, the rest of this should be fairly straightforward, as most of the work was already done by @lionello ages ago.

I'll look into it.

Ping @WalterBright . Any update on issue 14385? Is this PR going anywhere, or not?

This still isn't going anywhere, so I'm moving on.

The submitter moving on is not a sufficient reason to close good work.

The submitter moving on is not a sufficient reason to close good work.

Should have added the phantom zone label.

Nah, I think this is of more immediate value.


How to disable this IP/domain redirection?

Attempted Debugging

[X] I have read the debugging page

Searched GitHub Issues

[X] I have searched GitHub for the issue.

Describe the Scenario
During installation, we provide the URL or IP, for example <IP_ADDRESS>
Everything was installed correctly, by entering IP <IP_ADDRESS> in the browser, the page appears and you can log in.
I wanted to enter the domain instead of the IP, e.g. "bookstack.home.lan"
Just like for other such network services on my LAN.
I entered a redirect in my DNS router from "bookstack.home.lan" to IP: <IP_ADDRESS>.
DNS works, but now when you enter the domain "bookstack.home.lan" in the browser, it is automatically redirected to the IP address that was entered during installation.
Can this redirect be disabled somehow?
Due to this redirection from the domain to the IP in the browser, I am not able to configure the zero trust cloudflare tunnel to enter another domain from the public network to the LAN.
It doesn't work because it's a redirect.
While away from home in a public network, entering e.g. "bookstack.tunel.ovh", after authentication, it redirects me to the local IP address which is known only in the LAN network, not WAN.
How to disable this IP/domain redirection so that the browser shows any domain that has been entered for this host's IP address in DNS server. Didn't the browser redirect the address from the domain to the IP entered during installation?
Thanks!
Exact BookStack Version
v23.10.4
Log Content
No response
Hosting Environment
Ubuntu 22.04 Script

Hi @cosmicDustOfLightLength,
To change the URL after running the script, you need to alter two files:
/var/www/bookstack/.env
Find the APP_URL entry in this file, then update it to be http://bookstack.home.lan (or https if active).
/etc/apache2/sites-available/bookstack.conf
At about line 2 of this file, change the value for ServerName to be bookstack.home.lan instead of your IP. You'll need to restart apache after doing this. sudo systemctl restart apache2.service.

While away from home in a public network, entering e.g. "bookstack.tunel.ovh"

Note that BookStack only supports being hosted on one hostname/domain/origin-name at a time.
Typically, where you may have different public/private addresses, you'd be better off standardising on the externally accessibly address for both, so use the external address for internal use also.

You should also make use of the following command as described here:
https://www.bookstackapp.com/docs/admin/commands/#update-system-url
This is to alter all exisiting content to the new URL.

Thanks, all mistake with .env and i put http instead https, now cloudflare tunnel work with this app perfect!

@zhudovigor Start a new support thread, detailing your environment and any information from the application debug logs as per https://www.bookstackapp.com/docs/admin/debugging/#error-log-file.


Self-pretrained backbone

I'm pretraining my own backbone via MMclassification, then using it in  MMdetection.
After the training in MMclassification, I export via 2 methods :
a) I save both the whole net (backbone + classifier ) via the nomal checkpoint hook (which will output epoch_x.pth)
**b)**or I manually save the naked backbone via
torch.save(model.module.backbone.state_dict(), "output/naked_backbone.pth")
And then I can use it in MMdetection via:
init_cfg=dict(type='Pretrained', checkpoint='output/naked_backbone.pth')
Both these methods a) b)  seems to work, which seems weird to me. Am I doing things correctly ?

This seems OK, you can check your log file, which can find whether your ckpt load successfully, and what parameters do not use.


AMBARI-26224 Wrong order of imports for WidgetResourceProvider.java

What changes were proposed in this pull request?
Change the order of imports for WidgetResourceProvider.java, resolving the issue of import order check during compilation.
Details see: AMBARI-26224
How was this patch tested?
Applying this changes, we can compile Ambari on centos7 successfully by the follow comand.
mvn clean install rpm:rpm -DskipTests -Drat.skip=true

Please review Ambari Contributing Guide before opening a pull request.

@JiaLiangC Can you take a look when you have time? thanks.

I have merged these changes into another PR: #3872
So, closed this PR, thanks.


docs: Fix cloudbuild.yaml code in self-host.mdx

Replace incorrect:
--add-cloudsql-instances=_PROJECT_ID:_REGION:_SQL_INSTANCE_ID \

With correct:
--add-cloudsql-instances=${_PROJECT_ID}:${_REGION}:${_SQL_INSTANCE_ID} \

In the https://langfuse.com/docs/deployment/self-host#option-2-cloud-build

[!IMPORTANT]
Corrects variable substitution syntax in self-host.mdx for Cloud SQL instance command.

Documentation:

Corrects syntax for variable substitution in self-host.mdx from _PROJECT_ID:_REGION:_SQL_INSTANCE_ID to ${_PROJECT_ID}:${_REGION}:${_SQL_INSTANCE_ID}.

This description was created by  for 457b9d81c968affa1077e3c23e99c123a4b6e4d2. It will automatically update as commits are pushed.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

thank you!


[Enhancement] Adds features to Feature Link block

This PR adds features to the new Feature Link block:

Adds option for 'link' styled button using BS5 .btn-link button class
Adds the option to include an icon in the button and to have icon only buttons
Moves some construction of the button to the view file to allow easy comprehension/modification/extension in Block Templates by novice developers - also includes useful example code for adding attributes and modifying button value to add the icon.
Incorporates fix PR #10265

Queries:
getIconClasses() in the controller is repeated from the Feature block.  Should we store this elsewhere so that it can be used by any block (we'd also like to add button icons to the Hero block)?  Also maybe we should consider how themes might use different icon fonts or even svg icons at some stage?

I've removed the migration for this as it will not pass tests.  The result returned is:
1) Concrete\Tests\Update\LatestMigrationTest::testLatestMigration The last migration should be<PHONE_NUMBER>5506 instead of<PHONE_NUMBER>1500 Failed asserting that two strings are identical. --- Expected +++ Actual @@ @@ -'20220114215506' +'20220124141500'
Is it me or the test?

When you add a new migration you have to update this line.

Thank you @mlocati migration reinstated

I think this may have conflicts in it since there have been other fixes to the feature link block since.

Agreed on the icon list - I don't like that it's duplicated in the block controller. We've actually got a conversation on it going here: https://github.com/concrete5/concrete5/issues/9691.

Thanks for these updates @katalysis. I think the custom feature link view template in the atomik theme got missed; I'm adding the new view logic there as well.


Introduce the lxd-user daemon

This introduces the lxd-user daemon that will be primarily used by Linux distributions wanting easy on-demand LXD setup for multi-user systems.

@tomponline if you find yourselves with some minutes to spare, I'd appreciate you taking a quick look.
I expect we'll have to build onto that a fair bit including some tweaks to the CLI and snap packaging, but it's at a point where it does what it's supposed to and that will let us ship it in LXD 4.22.


Green Core

Green Core
Note to reviewers: I don't expect an actual review of the changes in this PR. There is a lot! If you're tagged as a reviewer, that basically just means that you've been involved in Green in one way or another, as a contributor or user, and I wanted to get your attention :)
If you have questions, concerns or suggestions about the move to Web Components in Green, now is a good time to raise them!
About Green Core
Green Core is a carefully crafted set of native Web Components, laying the foundation of the Green Design System.
The aim of the Core package is to provide a solid, accessible and maintainable foundation for the Design System. Using Web Components allows us to encapsulate styling, markup and logic in a framework agnostic way. It also allows us to solve accessibility challenges without tripping over the different template engines and DOM management strategies employed by various frameworks.
Green Core breaks components down into "Primitives". Primitives are component building blocks that can be composed together to build complete components. For example, the Dropdown composes gds-popover and gds-listbox to construct a complete Dropdown.
The primitives encapsulate appropriate semantics and accessibility behaviour, and are used by multiple components. This approach promotes reuse and consistency throughout the Design System.
The shape of the overall architecture will look something like this:
flowchart TD
    DT[Design Tokens]---S
    subgraph "Green Core"
        S[Styles]---AP
        M[Markup]---AP
        AP[Atomic Primitives]---|Composition|CP[Compound Primitives]---|Public API Boundry|WC["Web Components"]
    end
    WC---A[Angular]
    WC---R[React]

There will be three main options for consuming components: As native Web Components or through React or through Angular. The React components will essentially just be thin wrappers over the native ones, and Angular can use the WC's directly, as it has excellent support for that. Some components will have wrapper components in Angular as well though, in order to avoid too many breaking changes.
Eventually, Core will replace the current Extract package.
Challenges
Web Components does introduce some challenges. One challenge is that there is only a single CustomElementsRegistry in the browser, and Green Core needs to work seamlessly in a Micro-Frontend environment, where multiple instances of the framework can operate in parallell. Normally, this would lead to conflicts, when two instances try to register the same element name.  By default, element names in Green Core will get a version determined suffix applied to their element name. This happens automatically by the templating engine, so developers should not have to think about it most of the time.
More info about scoping can be found here: https://github.com/sebgroup/green/blob/4155876f787463c904c753f07bb8a78563a0f90e/libs/core/src/utils/helpers/custom-element-scoping.ts
About this PR
This PR adds the initial implementation of Green Core, and contains the basic set up of the new package as well as one mostly finished component, the dropdown.
The Web Component based Dropdown will replace the current Extract based dropdown in Angular and React when this PR is merged. It should be mostly backwards compatible, but since this is a complete rewrite, some breaking changes can be expected and some aspects of the existing API will be deprecated.
This is a partial merge of the ongoing work in the vision branch. If you are curious about this work you can take a look at the vision branch. For now, the bulk of the work will continue in that branch, but as more of the work matures, we will start doing feature PRs directly against main.
This PR is just the first step towards migrating Green to the new Web Component based architecture.
Todo
Some work remains before this PR can be merged:

[x] Fix validation states of the Dropdown in Angular
[x] Finish scoping implementation by generating an actual version-based suffix (currently it is just a hard-coded constant)
[x] Fix failing tests and linting across all libs
[ ] Testing in existing Angular and React apps
[ ] Write a short migration guide

Storybooks now exist for this PR, though the automated comment action failed due to missing config.
Here they are:
Core: https://sebgroup.github.io/green/pr-962/core
React: https://sebgroup.github.io/green/pr-962/react
Angular: https://sebgroup.github.io/green/pr-962/angular

@splashdust
On parental leave until Jan-24, but took a look at this now, overall it looks really promising, great job.
Really cool solution with custom element scoping, looking forward to dig into it once I'm back.


add property sharedTransitionTag and sharedTransitionIgnore

I have been trying to add them locally to do a PR but I must be missing something because it does not appear in the auto completion.
Try add:

https://github.com/nativescript-dom/types/blob/main/core/attr-literals/index.d.ts#L56
https://github.com/nativescript-dom/types/blob/main/core/attr-literals/attr-arrays.ts#L58
https://github.com/nativescript-dom/types/blob/main/vue/index.d.ts#L1682

it works, i just needed to restart vsCode


feat: support streaming in chat docs

What type of PR is this?
/kind feat

What this PR does / why we need it
Which issue(s) this PR fixes

Fixes #
Special notes for your reviewer

Not sure if can we merge chat and chatdocs API, seems there are lots of duplicate code, or maybe we can merge them later?

They have different request conent type (json vs formdata). We should extract the common code like streamling handler as a StreamFunc or else.


fix a bug for DDIM inversion (DDIMSampler.encode())

fix a bug of the incorrect timestep in DDIMSampler.encode() for DDIM inversion
t is incorrectly set as the index of timesteps rather than the timestep in the original code.

but this file is copied from stability's SD 2. Is that code also incorrect?

I look into the code of SD 2 just now, and it seems that the original code has the same bug.
I will report this bug in SD 2.
https://github.com/Stability-AI/stablediffusion/blob/cf1d67a6fd5ea1aa600c4df58e5b47da45f6bdbf/ldm/models/diffusion/ddim.py#L273

wait a minute do we really called this function in the entire controlnet project?

your code didn't call it.
I just played with controlnet for some edge-guided image editings.
For image editing, I need image inversion, so I used the encode() and found this bug.

@williamyang1991 @lllyasviel
Hello, I am also trying to use ControlNet with DDIM inversion.
In the encode() function,
https://github.com/lllyasviel/ControlNet/blob/d3284fcd0972c510635a4f5abe2eeb71dc0de524/cldm/ddim_hacked.py#L257-L260
The above code assumes unconditional_conditioning and c as Tensors, but the apply_model() in ControlLDM asserts them as dict.
https://github.com/lllyasviel/ControlNet/blob/d3284fcd0972c510635a4f5abe2eeb71dc0de524/cldm/cldm.py#L329
Have you encountered any problems with this? Or Am I misunderstanding something?
Thank you very much.

@moegi161 I just use unconditional_guidance_scale=1.0, with c={'c_concat': None, 'c_crossattn': [model.get_learned_conditioning([""] * num_samples)]}

Hi @williamyang1991 I'm also trying to use controlnet for image editing can you show me how you use it?

`        for i in tqdm(range(num_steps), desc='Encoding Image'):
t = torch.full((x0.shape[0],), timesteps[i], device=self.model.device, dtype=torch.long)
if unconditional_guidance_scale == 1.:
noise_pred = self.model.apply_model(x_next, t, c)
else:
assert unconditional_conditioning is not None
merged_dict={}
for key in unconditional_conditioning.keys():
if unconditional_conditioning[key] is not None and c[key] is not None:
merged_list = [torch.cat((unconditional_conditioning[key][0],c[key][0]))]
merged_dict[key] = merged_list
else:
merged_dict[key]=None
            e_t_uncond, noise_pred = torch.chunk(
                self.model.apply_model(torch.cat((x_next, x_next)), torch.cat((t, t)),
                                    merged_dict ), 2)
            noise_pred = e_t_uncond + unconditional_guidance_scale * (noise_pred - e_t_uncond)`

I try to fix the error when I try to encode the picture, the code works well but I can't sure it is right


Delete cache on build failure

cc granny
This deletes cache on build fail, still requires a rerun though
If you wanted to combine the rerun, just needs a check (label?) to ensure it only runs once
POST /repos/:owner/:repo/actions/runs/:run_id/rerun
https://docs.github.com/en/rest/actions/cache?apiVersion=2022-11-28 - cache API

why not just delete the cache before every run? :sipjuice:

because i'm extra

i lowkey don't like the impl of that cache action so i may make my own
but this should do part of the trick - auto rerunning feels sketchy cause we can't check the error message

k this will have actual debug now when clearing cache and is readable & easier to modify

i mean clean (should?) depend on cleanCache, i'm not against fully clearing the actions cache either way as well
not a bad idea though to run it like that

side note the cache fix doesn't fix building, that's #1364

forgot abt this my fault - fixed it though. no longer deletes actions cache


Recording HEVC/H.265

Hi, is there a way to set the video encoding to recording video in HEVC/H.265 format?

Sure, but hevc is not free software, you can try it with ffmpeg by yourself.


ADBC for Oracle relational database

Is it possible to use ADBC with the Oracle Relational database servers?
If not, are there plans for the same or does Oracle's proprietary framework make it impossible?

I think for most databases that don't have specific columnar support my plan is to try to leverage the C++ parts of Turbodbc to bind the ODBC driver. It would not be as performant but would at least provide an option. Or does Oracle have columnar data support?

I think for most databases that don't have specific columnar support my plan is to try to leverage the C++ parts of Turbodbc to bind the ODBC driver. It would not be as performant but would at least provide an option.

True, I'll try that!

Or does Oracle have columnar data support?
Not sure about that, but my organization is going ahead with the traditional row-based transactional Oracle database for cost and security reasons, and just the fact that Oracle is an established name. We mostly deal with de-identified medical data.

Duplicate of https://github.com/apache/arrow-adbc/issues/72


lang: [tr]&[uk] fix Invalid param in errorPasswordPwned

Description
ref: #953
Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[x] Conforms to style guide

@paulbalandan If you can check this topic and add it to
Language Unit Test, it will be great.

I'm sorry I don't get what you mean. What do you want me to do?

This is the original text:
'errorPasswordPwned' => 'The password {0} has been exposed due to a data breach and has been seen {1, number} times in {2} of compromised passwords.',

This text has been translated into another language, unfortunately number ({1, number}) have been translated in this field, which causes failure.
'errorPasswordPwned' => '{0} şifresi, bir veri ihlali nedeniyle açığa çıktı ve güvenliği ihlal edilmiş şifrelerin {2} tanesinde {1, sayı} kez görüldü.',

In fact, we did not realize this during the merger. Now I want to see if you can check by Language Unit Test that strings like (({1, number})) should not be translated.

Ref https://codeigniter4.github.io/CodeIgniter4/outgoing/localization.html#replacing-parameters

Ok, I get it. I'll check what I can do.


Format offset values for readability

The suggested implementation for https://github.com/yahoo/kafka-manager/issues/446

Thank you for submitting this pull request, however I do not see a valid CLA on file for you. Before we can merge this request please visit https://yahoocla.herokuapp.com/ and agree to the terms. Thanks! :smile:

CLA is done.

The CLA is signed.

Can someone review this one? For our team it's a really useful feature.


Generate the slide deck in GitHub CDN

We can use a small Makefile, credit to my colleague Michael Hale for this trick, to create and push a set of pages to the GitHub gh-pages site.
Then the slides are viewable.
To demo the slides I have used my own repo as a demonstration of the technique.
Fix that by changing to the original repo location in the URL once the build has been completed.
George Wood

Thanks for the PR!
I'm going to leave this un-merged for now as we already have a plan for publishing the slideshow. We just haven't published it yet because we're making some final changes to the slides. The URL will be public and accessible Monday and we'll share the link during the presentation.


Use cargo as the dependency resolver

Hi, this project is of great help in packaging. I find that cargo-tree has been integrated into cargo, and thinking of it, it's the best dependency resolver - the one we actually use!
It may be such a process: deserialize Cargo.toml as cargo::util::toml::TomlManifest, .to_real_manifest() into cargo::core::manifest::Manifest, then cargo::core::resolver::resolve() it into a cargo::core::resolver::Resolve, which has the resolved dependency tree.
Then use the data to find what is outdated, what is not in Debian archive yet, etc.
EDIT: Or, "hijack" cargo tree.

The problem using the resolved dependencies, as I discovered, is that it's greedy.  We really want to work off the relationships described in Cargo.toml, since that gives us the lower bound the project needs.


Make an apk

Why not make an android version?

I would love this on android, but please, can you make a build without google play services. You can obviously make another one with GPS for those who use google android. 😂

this browser needs to be as good as possible, so google services are needed for ads which increase the quality, it is like random youtube videos!

I would love this on android, but please, can you make a build without google play services. You can obviously make another one with GPS for those who use google android. 😂

this browser needs to be as good as possible, so google services are needed for ads which increase the quality, it is like random youtube videos!

Yeah, maybe It can have Brave Ads integration in the browser.

All the BAT should go to the developers of Pissandshittium.

No since android is based on linux use the macos version with darwin


Update README

Clarify that the best (current) documentation is the link to the HTML-ized notebook
Removing the scary text "use PlutoLinks instead". Actually, this package is useful on its own!
Add to the list of examples the ability to save state between cell evaluations.

Thanks a lot! :tada:


Switch to an annotation when storing CNI-assigned IPs to k8s pods.

Description

Todos

[x] Tests

[x] UT
[x] Live test that it actually fixes the problem.

[x] Documentation
[x] Release note

Release Note

None required

Fixes https://github.com/projectcalico/calico/issues/1405


runtime: add mode for pointer-past-end testing

Over time, we've had several issues involving unsafe code constructing pointers just past the end of objects, particularly in runtime and reflect. Some examples are #21717, #19724, and #9384.
These sorts of issues are very hard to write tests for. We should consider adding a testing mode to aid with this. One approach would be for the allocator to skip every other slot and to right-align all allocations (up to alignment limits), so that past-the-end pointers would always fall on a free slot.
This mode could be exposed via a GODEBUG, though for testing it should probably be adjustable at run time, perhaps via unexported runtime functions.
/cc @RLH @cherrymui @bcmills

to skip every other slot and to right-align all allocations

We could pair that with a simple check at each unsafe.Pointer conversion: any time we convert an integer to an unsafe.Pointer, we could validate that either the pointer points outside the Go heap, or the pointer points to an allocated object. (Do we do that already?)
We could take that one step further and, upon converting from unsafe.Pointer to a concrete type, validate that its heap map matches the pointer layout for the type to which it was converted.
If that's too expensive, we could consider adding a function to make that check explicitly (e.g., in the runtime/debug package):
// CheckPointers verifies that all of the pointers reachable from p either are nil
// or point to mapped addresses, and that the pointer maps for all such addresses
// that reside in Go memory match their types.
func CheckPointers(p interface{})

Such a function might be useful for cgo sanity checking anyway (https://github.com/golang/go/issues/19928).

We could pair that with a simple check at each unsafe.Pointer conversion: any time we convert an integer to an unsafe.Pointer, we could validate that either the pointer points outside the Go heap, or the pointer points to an allocated object. (Do we do that already?)

That could also be a good test. Though this couldn't be enabled on-the-fly, so it would be harder to use in unit tests.

func CheckPointers(p interface{})

I'm not sure this is strong enough to conveniently write past-the-end tests. You may not have a direct pointer to the object containing a bad pointer, which suggests CheckPointers would have to be deep, and now you've got a garbage collector.

CheckPointers would have to be deep, and now you've got a garbage collector.

Agreed. I was hoping there might be a similar function in the existing garbage collector that we could generalize. (Some sort of “pointers starting from p visitor function”, perhaps.)


[TabsExtension] Configs - SDXL Styles

,txt,img
tabs,left,right
default,left,right
ControlNet,left,right
Scripts,left,right
Aspect Ratio and Resolution Buttons,left,right
ADetailer,left,right
SDXL Styles,left,right
Dynamic Prompts,left,right
AnimateDiff,left,right
SDXL Styles seems like it may be the issue but I cannot confirm that as clicking SDXL Styles and then on another tab solves the issue.

What issue? The Config Textbox not disappearing?

clicking SDXL Styles and then on another tab solves the issue

What does this mean?

but I cannot confirm that

Simply disable the Extension and restart the Webui to see if your issue stops. Cause I just looked at the code and this particular Extension does nothing special, and shouldn't have caused any issues.

Yep, just tested it myself:


createCapture(video:{facingMode:{exact:"user"} .. not working?

Expected Behavior
Mobile video and desktop video captures to work.
Actual Behavior
Mobile video + Desktop video both don't work with below code:
   video = p5.createCapture({          audio: false,          video: {              facingMode: {              exact: "user",            },          },        });

Mobile video don't work, but desktop vid works with below code:
   video = p5.createCapture(p5.VIDEO);
Specifications
Package Version:^3.3.0

Oh and for reference I tested on desktop (macbook + chrome, macbook + safari, windows + chrome) and on my iPhone to validate both examples 😄 .


Fix link in README

Yo @bzgeb ! Great post as usual. I just noticed this small lil error in the URL ✌

Thank you!!


"Edit" button does not respect the version of the doc

Is this a bug report?
Yes

Have you read the Contributing Guidelines on issues?
Of course!11
Environment
(Docusaurus version via npm outdated docusaurus or yarn outdated docusaurus, OS, Node, npm, yarn)
1.2.1
Steps to Reproduce

(Write your steps here:)

Go to https://docusaurus.io/versions
Choose a non-master version, like 1.0.11
Go to a doc, like: https://docusaurus.io/docs/en/1.0.11/commands#docusaurus-start-port-number
Click Edit

Expected Behavior

I expect to edit the 1.0.11 version of api-commands.md, not master's api command.md. I should be taken https://github.com/facebook/Docusaurus/edit/master/website/versioned_docs/version-1.0.11/api-commands.md, not https://github.com/facebook/Docusaurus/edit/master/docs/api-commands.md
Actual Behavior
Clicking on Edit take me to master: https://github.com/facebook/Docusaurus/edit/master/docs/api-commands.md
Reproducible Demo
Reproduced on docusaurus.io

I think this might be intended. Changes are only made for next docs.
Let's say we are currently at 1.0.13. There is a typo that has occured since version 1.0.11.
With the proposed behavior, if we fix the typo of the docs in 1.0.11, the typo will still occurs in 1.0.12 and 1.0.13.
But I do agree that the current behavior is slightly weird as well.


GTA San Andreas Unity for WebGL

Hello. Is it possible to make your game for webgl?

Hello, yes it is possible, but game would not have access to local game files (on user's PC) unless the user drags (or selects) the game folder manually. This would also require a lot of refactoring regarding how the files are loaded (eg. File API can not be used on Web).


[Issue 6040][pulsar-client-go] Avoid incompatible pointer types warnings during build

Fixes #6040.
Motivation
As per https://github.com/apache/pulsar/issues/6040#issuecomment-573970169, the golang pulsar client intentionally contains code that produces warning messages at build time.
This makes effective use of IDEs (e.g. VSCode) hard, because genuine linter errors are replaced with spam messages about uninitialized pointer errors in the pulsar client.
The golang pulsar library should be a good citizen, and not produce these build-time warnings.
Modifications
Suppressed the uninitialized pointer warnings.
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API: no
The schema: no
The default values of configurations: no
The wire protocol: no
The rest endpoints: no
The admin cli options: no
Anything that affects deployment: no

Documentation

Does this pull request introduce a new feature? no

@wolfstudy would this be an acceptable change?

/pulsarbot run-failure-checks

@wolfstudy would this be an acceptable change? If you prefer not to switch off warnings, I could add explicit casts.

Sorry for the reply later, the change looks good to me, thanks @bschofield

/pulsarbot run-failure-checks

Move this change to 2.7.0, we can consider including it in the larger version(2.7.0).

move to 2.8.0 first.

Thanks @bschofield work for this. For some reasons, we do not maintain the cgo version of the go client for the time being. You can use the native version of the go client. At present, all functions are basically the same as those of the cgo client, and there are many detailed optimizations.
If you have any questions in the process of using native go client, please feel free to leave your questions here, I am happy to talk with you.

@bschofield I closed this pull request first. If you have any questions, you can reopen it at any time and talk with me. Wish you a good journey in the native go client.


Accessibility for Input & autocomplete & input-number & progress & Rate & Upload & Switch & collapse

add Accessibility for Input & autocomplete & input-number & progress & Rate & Upload & Switch & collapse including aria roles & props &states and keyboard access
Detail:
Input-number:
1、add role & state & prop
2、can be tab to  and  use up/down/left/right to change value
Autocomplete:
1、suggestion list will expend when input focus and then you can use up/down cross suggestion list ,use enter key to select one
2、add role & state & prop
Progress:
add role & state & prop
Rate:
1、 can be tab to  and use  up/down/left/right to change value
2、add role & state & prop
Upload：
1、 can be tab to  and use  delete  file list
2、operation tips will show only when focus
Switch:
1、add role & state & prop
2、 can be tab to  and use enter change value
Collapse：
1、add role & state & prop
2、can be tab to  and use enter expend the tab panel

Thanks for doing this - the only thing stopping us from using element library was accessibility and if this remains our focus then kudos !

Thanks for your attention, accessibility for other components are in progress， I think we can do it together  @abhipanda @Leopoldthecoder


I can't upgrade my REMnux

Hi,
I'm having issue upgrading my REMnux which I just installed by using the following command in my existing Ubuntu 20.04.6 LTS (Focal) VM:
sudo remnux install
I get the following error:
Update returned exit code not zero
Error: Update returned exit code not zero
at ChildProcess. (/snapshot/remnux-cli/remnux-cli.js:569:23)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
I included my saltstack.log for your review:
saltstack.log
Thanks.

Hi @nebu10uz , try running the following command then trying again:
sudo python3 -m pip install 'importlib-metadata<5.0.0'

That worked.
Thank you!

Glad to be of assistance :)


Add prettierrc

We need a prettier config so contributors can utilize prettier to auto format their files.

@jwu910
My Suggestions for code:
Indents: 2 spaces (set your editor for tab to soft indent 2 spaces so you dont have to spam spaces)
Variables: declare one per statement. lowerCamelCase for vars, funcs, descriptions. UpperCamelCase for classes. UPPERCASE_SNAKE for constants.
Semicolons: yes

General:
ES6 when possible.
Use single quotes unless writing JSON or HTML.
Create descriptive names for variables, conditionals, functions et al when sane. It's ok if you use a letter for the iterator in a for loop.

From #5

Also the notes in Discord:
"prettier_options": {
        "printWidth": 80,
        "singleQuote": true,
        "trailingComma": "es5",
        "bracketSpacing": false,
        "jsxBracketSameLine": false,
        "parser": "babylon",
        "semi": true,


Drop deprecated issue_body from the forms

Summary of changes
This change drops deprecated options from the issue forms schema files.
@jaraco this must be merged ASAP to reenable the forms.

As a heads-up, I'll merge this in ~8 hours if no setuptools maintainer gets to this, since the recent updates to issue forms have meant that none of the templates are valid anymore.

Thanks both for this.


chore(sonar cloud): move exclusion to the ignore list

Move the SonarCloud JSON file exclusion from the test coverage list to the ignore list

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


Multi-Node (Cluster) Backup Support

v1.15 added support for single-node backups. This is about automatically backing up a whole cluster.

Released in v1.16.


Feature request: bitcoin mining block list

See https://github.com/hoshsadiq/adblock-nocoin-list.
Thanks for doing this, by the way. Really helpful. 👍 🎉

More than happy to. See commit https://github.com/austinheap/sophos-xg-block-lists/commit/8d9f484534b84488d3862b6740bb7fa540a794bf: https://github.com/austinheap/sophos-xg-block-lists/blob/master/nocoin.txt
Glad it's helpful! 😁


Enable HTTP/3 on CloudFront endpoints

Issue #, if available:
No issues, just improvements.
Description of changes:
Enable HTTP/3 on CloudFront endpoints. As there are no downsides to it, there is no reason to skip it by default.
Checklist

[x] :wave: I have run the unit tests, and all unit tests have passed.
[ ] :warning: This pull request might incur a breaking change.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@toncid Thanks for the PR, we will review it and get back to you

@toncid There is an issue with including HTTP/3 support in the CloudFront configuration. HTTP/3 requires TLSv1.3 as noted in the CloudFront developer guide https://docs.aws.amazon.com/pdfs/AmazonCloudFront/latest/DeveloperGuide/AmazonCloudFront_DevGuide.pdf
In the documentation at https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html the following note indicates that TLSv1 will be used regardless of the value set.
If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net (you set CloudFrontDefaultCertificate to true), CloudFront automatically sets the security policy to TLSv1 regardless of the value that you set here.
The solution, as provided, uses the CloudFront domain name. The solution template can be customized for other usages.
If you have any other suggestions for improvements, send them along to us for evaluation.


Correct use of hyphens

Correct use of hyphens

Internal Tracking ID: EXPOSUREAPP-14625

@MohamedZaghdoudi / @dsarkar
Will you also convert dates like "15 July, 2022" to "July 15, 2022" in https://www.coronawarn.app/en/faq/results/#check_in_luca_all?
And German formatted dates like "04.02.2021" to "Feb 4, 2021" (three letter month) in https://www.coronawarn.app/en/faq/results/#interoperability_countries?
or were you only concerned about removing the "st, nd, rd, th" notation?

@MikeMcC399
yes i think it will be better to change it to this :"Feb 4, 2021"
I will change it

@MikeMcC399 thanks for your input here. Something was a bit "messed up" with two PRs:
This PR #2246 now contains changes in the use of hyphens.
PR #3348 is about date format.

@dsarkar

This PR #2246 now contains changes in the use of hyphens.

This PR is actually #3346.
It's quite confusing when the branch name Refactoring-Faq-Date_formates doesn't  match the changes being made. Unfortunately this can't be changed in an existing PR. To clean it up, it would need the PR closing, branch renaming and a new PR being opened.

@MikeMcC399 agreed.


Fix deprecation warnings due to invalid escape sequences.

Fixes #273

How do I install the library using this branch ?

python -m pip install "usaddress @ git+https://github.com/tirkarthi/usaddress.git@70accf06879c099bb0d7259be7c98c613b98e8d0"

@derekeder Can you merge this tiny tiny fix? This is making this package not installable in modern python versions. Once this is merged people can pip install directly from this repo, even if you don't release to PYPI.


[Question] Use LSTM for Sine Wave prediction

I was planning to learn mxnet and also try to contribute to some simple examples. I posted below question on stackoverflow but unfortunately no response got.  So I would try here:
Below is the code I wrote trying to reproduce the Tensorflow example.  (location at https://github.com/mouradmourafiq/tensorflow-lstm-regression/blob/master/lstm_sin.ipynb"
import mxnet as mx
import numpy as np
import pandas as pd
import argparse
import os
import sys
from data_processing import generate_data
import logging
head = '%(asctime)-15s %(message)s'
logging.basicConfig(level=logging.DEBUG, format=head)
TIMESTEPS = 3
BATCH_SIZE = 100
X, y = generate_data(np.sin, np.linspace(0, 100, 10000), TIMESTEPS, seperate=False)
train_iter = mx.io.NDArrayIter(X['train'], y['train'], batch_size=BATCH_SIZE, shuffle=True, label_name='lro_label')
eval_iter = mx.io.NDArrayIter(X['val'], y['val'], batch_size=BATCH_SIZE, shuffle=False)
test_iter = mx.io.NDArrayIter(X['test'], batch_size=BATCH_SIZE, shuffle=False)
num_layers = 3
num_hidden = 50

data = mx.sym.Variable('data')
label = mx.sym.Variable('lro_label')

stack = mx.rnn.SequentialRNNCell()
for i in range(num_layers):
    stack.add(mx.rnn.LSTMCell(num_hidden=num_hidden, prefix='lstm_l%d_'%i))
#stack.reset()
outputs, states = stack.unroll(length=TIMESTEPS,
                               inputs=data,
                               layout='NTC',
                               merge_outputs=True)

outputs = mx.sym.reshape(outputs, shape=(BATCH_SIZE, -1))
# purpose of fc1 was to make shape change to (batch_size, *), or label shape won't match LSTM unrolled output shape.
outputs = mx.sym.FullyConnected(data=outputs, num_hidden=1, name='fc1')
label = mx.sym.reshape(label, shape=(-1,))
outputs = mx.sym.LinearRegressionOutput(data=outputs,
                               label=label,
                               name='lro')
contexts = mx.cpu(0)
model = mx.mod.Module(symbol = outputs,
                     data_names = ['data'],
                     label_names = ['lro_label'])
model.fit(train_iter, eval_iter,
         optimizer_params = {'learning_rate':0.005},
         num_epoch=4,
         batch_end_callback=mx.callback.Speedometer(BATCH_SIZE, 2))

This code runs but the train_accuracy is always Nan and validation accuracy always 1. The question is how to make it correct?
And since unrolled out shape has sequence_length, how can it match to label shape? Does my FC1 net make sense?
Or, if any dev looked here, please give me some hint on how should I debug?

This issue is closed due to lack of activity in the last 90 days. Feel free to ping me to reopen if this is still an active issue. Thanks!
Also, do please check out our forum (and Chinese version) for general "how-to" questions.


Deprecate and Remove Kerberose KDC

Deprecate Kerberos KDC in immediate next major release and remove it in the release after.

Lets update documentation on this.. @sherenewso2 Please note.

@darshanasbg has this been done? I can see this option under the inbound authenticators list in the SP configuration form.

@samgnaniah There are no UI options for this.. Please mention in the docs that we are dedicating this functionality and update any content relevant on this topic to have a note/warning mentioning the same.
Please followup with @thanujalk for any further clarifications.

UI related to the feature is still exists in 5.10 and 5.11 versions.

Thank you for your contribution!
We are closing this issue since it has not been prioritized for a long time. Chances are that it has already been solved in more recent versions. If not, we will be re-evaluating this when it becomes a priority.


Are some yang models unsubscriptable?

Hi,
Is it ok that I cant subscribe to some models? For example to bundled ietf-inet-types and some others? Clicking on Subscribe just has no effect on these models. Logs (debug is not active) shows nothing strange, I receive some 200 OK response.

Models like ietf-inet-types do not have any data nodes, so you won't see anything when you subscribe to them. They are dependencies of other modules, and will thus be imported by those other models as required.

Thanks for explanation.
Should it be indicated somehow, maybe in a status bar or with popup? Because now for yang-newbies it feels like smth is not working. Just suggesting...


ZeroTo9 for new project format

Hi,
Do you have any plans for supporting the new project format used by .NET Standard & .NET Core in ZeroToNine?
Zeor2Nine is a great tool for handling assembly versions.
Lars

Thank you for writing. I'm not currently in a position where I use ZeroToNine anywhere, so I've no current plans to do anything about it.

Thank you for writing. I'm not currently in a position where I use ZeroToNine anywhere, so I've no current plans to do anything about it.


Dynamic checking of BLAS/LAPACK routines

Per #5266 a request for doing dynamical checking of LAPACK (and BLAS) routines is needed.
This PR enables such dynamical checking, but does not implement the method as it requires additional cython calls.
However, the procedure for updating the wrappers (with the available linking methods) is:
cd scipy/linalg
python _check_blas_signatures.py
mv cython_blas_signatures_actual.txt cython_blas_signatures.txt
python _check_lapack_signatures.py
mv cython_lapack_signatures_actual.txt cython_lapack_signatures.txt
python _cython_wrapper_generators.py
cd ../../
python tools/cythonize.py

I have also updated the _cython_signature_generator.py to allow multiple directories while searching for sources and headers. This is useful because the deprecated routines in LAPACK are moved to SRC/DEPRECATED, and not entirely removed.
When adopting a dynamic check of the available routines one can do:
python _cython_signature_generator.py lapack lapack/SRC lapack/SRC/DEPRECATED cython_lapack_signatures.txt

where one should follow the before mentioned steps to actually check whether the LAPACK library has the deprecated routines in the table.
Lastly, I have added the signatures for the gemm3m routines to the _cython_signature_generator.py but haven't actually added them. Once the dynamic loading is in action, I would highly recommend to add them.

Interesting. @insertinterestingnamehere do you want to review this?

@rgommers There is a lot of relevant discussion on this in https://github.com/scipy/scipy/issues/5266. It looked like the consensus there was to limit our API to the routines available in all supported versions of LAPACK.
Personally I don't have any strong feelings one way or the other about dynamically checking for routines, but I don't like the approach here since it makes it easy for developers to accidentally modify files that are included as a part of the main source repository (specifically cython_blas.pxd/pyx and cython_lapack.pxd/pyx). At the very least, this pull request  should make it so that developers don't accidentally overwrite the existing wrapper files.
Compiling a long series of C files like this isn't really necessary either. Dynamic checking would be better done by calling LAPACK's ilaver at compilation time via ctypes and then basing the wrappers on the version provided. The version-dependent signatures could be marked in the signature files, and the needed binding files could either use Cython's conditional compilation or be generated at compile time.
There aren't many reasons to keep the deprecated routines around either. The primary benefit of any sort of dynamic LAPACK detection machinery would be that users could gain access to newer routines later versions in spite of the fact that we support older versions of LAPACK.
So, generally speaking, this is good code, but I don't think this is the direction we want to go.

My main objective was that it could be used as a tool to automatically create the interfaces needed.
I think the main advantage of this PR is the automatic detection of the interfaces without manual intervention.
Using ilaver could still have difficulties due to different vendor implementations. This requires that that MKL, ACML, ATLAS and OpenBLAS, etc. follows the LAPACK versioning, fully. Without really knowing whether this is their methodology I think this is too dangerous?
Would it make sense to move this to the tools directory to decouple it from the package and thus make it less likely to be accidentally used?

This needs a rebase but @zerothi it looks like the repo (and thus branch?) are gone from your user...? I'm going to go ahead and close, but feel free to reopen if you still plan to work toward this.

I made a PR because of previous discussion in #5266. However, it seemed from @insertinterestingnamehere that the code was not the direction you wanted to proceed with. Hence, I deleted the repo.
@Eric89GXL:
If you want me to re-create the PR I would be happy to contribute? I still think it could be used internally for updating the code bases?


Send stdin to running process

I have a process which uses SIGINT as a signal to reload and closure of stdin as a signal to exit. Could stdin be passed through to the running command?

Hm, I can see that re-purposing SIGINT in this way is harmful here, since rerun sends sigint to kill the process during restart. So, nevermind.


[all OSs] Android NDK 21 will be replaced in favor of 25 on August, 1st

Breaking changes
NDK r21 will be replaced by NDK r25
Target date
The propagation is starting on August, 1st and will take 2-3 days
The motivation for the changes
We are replacing r21 with r25 as we support two latest LTS versions according to our Software and image guidelines(we support 1 latest non-LTS and 2 latest LTS versions of NDK)
Possible impact
If your project depends on NDK r21 it can be broken
Platforms affected

[X] Azure DevOps
[X] GitHub Actions

Virtual environments affected

[X] Ubuntu 18.04
[X] Ubuntu 20.04
[X] Ubuntu 22.04
[X] macOS 10.15
[X] macOS 11
[X] macOS 12
[X] Windows Server 2019
[X] Windows Server 2022

Mitigation ways

To install NDK r21 in runtime use the following snippets:

Windows

$sdkRoot = "C:\Android\android-sdk"
$sdkManager = "$sdkRoot\cmdline-tools\latest\bin\sdkmanager.bat"
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
                           -AndroidSDKRootPath $sdkRoot `
                           -AndroidPackages "ndk;21.4.7075529"

macOS

 ANDROID_HOME=$HOME/Library/Android/sdk
 SDKMANAGER=$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager
 echo y | $SDKMANAGER "ndk;21.4.7075529"

Ubuntu

ANDROID_ROOT=/usr/local/lib/android
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"

We had no notice of this change at Mojang, and only learned of it today.  We very strongly suggest delaying it two weeks so that we can prepare for it.

@chrisbehanna you can install NDK 21 in runtime. Please see 'Mitigation ways' section in the announcement, above.

Is there a way, to use an Image from before this change?

Is there a way, to use an Image from before this change?

No, but you can still install r21 in runtime as described, it is the only possible solution.

Hi I am trying to run ndk 21.3.6528147 on iOS macOS-11 and I followed the mitigation ways but still getting this error when I am trying to access android.ndkDirectory in gradle.
NDK is not installed
Can you help what am I missing here is my install ndk Job steps

task: CmdLine@2
displayName: 'Install NDK 21.3.6528147'
inputs:
script: |
ANDROID_HOME=$HOME/Library/Android/sdk
SDKMANAGER=$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager
echo y | $SDKMANAGER "ndk;21.3.6528147"
echo 'ANDROID_NDK=/usr/local/lib/android/sdk/ndk/21.3.6528147'
echo 'ANDROID_NDK_HOME=/usr/local/lib/android/sdk/ndk/21.3.6528147'
echo 'ANDROID_NDK_LATEST_HOME=/usr/local/lib/android/sdk/ndk/21.3.6528147'
echo 'ANDROID_NDK_ROOT=/usr/local/lib/android/sdk/ndk/21.3.6528147'

@tabishhussain63 if you'd like to set env variables you need to do it another way
ANDROID_NDK="/usr/local/lib/android/sdk/ndk/21.3.6528147"
echo "##vso[task.setvariable variable=ANDROID_NDK]$ANDROID_NDK"
and in the subtasks, the variable will be overridden by the new one.

@m-kuhn this is the new image that is being deployed. We are going to finish the deployment and update the documentation today.


Optionally allow jobs to remain in queue until resources become available

Currently if there are no resources available for a job it will fail immediately and it's up to the user to resubmit. This is Shaun's preferred model. However, many users expect traditional batch system type behaviour, i.e. jobs remain in queues, and can be confused with the different behaviour in PROMINENCE.
We should give users a choice, e.g. jobs fail immediately or jobs can wait for up to X mins for deployment.

I think only the following change is required to allow maximumTimeInQueue to work:
SYSTEM_PERIODIC_REMOVE in /etc/condor/config.d/40-rules contains isUndefined(DAGManJobId), i.e. it will completely remove failed jobs if they are not from a workflow. Will need to change this to something like:
(isUndefined(DAGManJobId) || (ProminenceMaxTimeInQueue  > -1 && CurrentTime - QDate > ProminenceMaxTimeInQueue)

Closing this as it has been implemented and tested.


Not working in VSCode

Hi
Just installed on Mac M1 and vscode jupyter noodbook from Microsoft. I get:
expected declaration, found Hello
in goexec.ExecuteCell(): parsing go files in TempDir "[/var/folders/ws/r3lmtqdj03d3jn5l3v3t_s3w0000gn/T/gonb_0acd825](https://file+.vscode-resource.vscode-cdn.net/var/folders/ws/r3lmtqdj03d3jn5l3v3t_s3w0000gn/T/gonb_0acd825a)

From this code
import "fmt"

func Hello(){
    fmt.Println("hello world!")
}

Hello()

hi @JCzz , I'm sorry to hear about the issue.
I think the issue is that you cannot have in Go a statement (function call) like Hello() outside of a function. So you need to move it inside the func main(), which you can do in two ways in GoNB.

The usual way:

import "fmt"

func Hello(){
    fmt.Println("hello world!")
}

func main() {
  Hello()
}

GoNB introduces a shortcut to func main() so one doesn't need to write it every time. Use %% and everything after will be put inside a func main automatically:

import "fmt"

func Hello(){
    fmt.Println("hello world!")
}

%%
Hello()

Let me know if that works for you.
Btw, in JupyterLab the error looks a bit different (It adds a context where in the cell the error is, and something you can mouse-over). On the weekend I'll check if I can improve the VSCode experience.

Thanks @janpfeifer
This is very cool, I absolutely love it - thanks for clearing it up for me!
/Christian


Add support for generating spherical environment maps

Spherical Environment Mapping (Direct3D 9)
Sphere mapping
Blinn & Newell, "Texture and Reflection in Computer Generated Images", Communications of the ACM. 1976.
link
Converting to/from cubemaps

In other words, given six faces of a cubemap, generate a spherical environment map from it.

Be sure to resolve this issue when this tool is ready: https://github.com/walbourn/directxtk12test/issues/21

https://github.com/microsoft/DirectXTK/issues/342

This seems like functionality that should be in texenvmap.
https://github.com/microsoft/DirectXTex/issues/509


Consolidates proto definitions into a single file

Adds dependency on ptypes/any from golang/protobuf.
@prestonvanloon The main original issue of the missing *.pb.gw.go files is that all input proto files to the protoc-gen-grpc-gateway plugin (and by proxy the grpc_gateway_proto_library file) are assumed to have at least one service definition.  The test-resource.proto and test-webhook-messages.proto files don't have that, so it fails.
I started by breaking those out into a different go_proto_library rule.  At the end, it encountered some golang import naming issue with the package webhooks in different files, not sure exactly what the problem was.
So, I consolidated the proto definitions into a single file, added a dependency on ptypes/any, and it worked.

Running bazel build :gateway still causes many issues.
test-webhook-messages.proto: File not found.
test-grpc-gateway.proto: Import "test-webhook-messages.proto" was not found or had errors.
test-grpc-gateway.proto:10:27: "WebhookServiceRequest" is not defined.
test-grpc-gateway.proto:10:59: "WebhookServiceResponse" is not defined.

While bazel build :webhooks_gateway works, you copied the message from the other protos and lumped it into one proto.


Returning a byte slice with an error outputs an empty HTTP body

Component
Core framework
Middleware
n/a
Version
v1.1.0
Describe the bug
I'm not sure if this is supported but when I'm using a handler that returns ([]byte, error), the response is empty.
It works when I only return []byte though.
To reproduce
package main

import (
	"github.com/flamego/flamego"
)

func main() {
	f := flamego.Classic()

	f.Get("/", func() ([]byte, error) {
		return []byte(`{"hello": "world"}`), nil
	})

	f.Run()
}

Expected behavior
See the output in the browser
Additional context
Here are the relevant logs, we can see that the handler actually returns 0 bytes.
[Flamego] 2022-04-08 15:23:03: Started GET / for <IP_ADDRESS>
[Flamego] 2022-04-08 15:23:03: Completed GET / 0  in 100.3µs

Code of Conduct

[X] I agree to follow this project's Code of Conduct

It was not supported but I just added in https://github.com/flamego/flamego/pull/118!

You can upgrade to https://github.com/flamego/flamego/releases/tag/v1.2.0 to use it 🎉

Docs is also updated: https://flamego.dev/core-concepts.html#return-body-with-potential-error

Perfect timing! Thanks!


I'm just asking about adding pjax to this web app (HOW TO????!)

This is my question on StackOverFlow
can you help me @sahat ?!!

Please keep these issues relevant to the project. Your question is general enough that anyone can help you with that on StackOverflow. If you have something specific you want to ask me, send me an email and I will try to reply.

Ok, but what about a little help on StackOverFlow, come on, just give me a small idea


Create discount form broken

Steps to reproduce:

Go the the organizer interface of an event with no discounts
Click the "Create Discount +" button
Try to fill out the form

The form will have all disabled fields. This view (/org/event/discount/create/) is actually no longer necessary, since the discount list view (/org/event/discount/) now includes the discount form. This should be solved by removing the view and having the dashboard link direct to the discount list view.

I think the problem here is the discount_form view not knowing about the user's permissions. In my testing, editing a discount also results in an entirely disabled form with no save button. We can potentially remove the obsolete views as well, but fixing the permissions I think will fix this problem.

Yeah, good catch. Alex ran into that this morning and I was just about to report it as well. :)


Fixes for Hammer install and added numerical release checks

Added a numerical release dictionary that allows for easier checking of release ranges by tasks (No need for is_jewel/is_after_jewel/is_before_jewel etc..).  Use of the combined ceph package for Hammer and older is now automated.  Don't need to manually specify use_server_package_split.  Fix for pre-infernalis ceph system v init scripts (added mon section into ceph.conf).

I like using a dict to compare versions. If your intention is to remove facts like: is_before_infernalis, then there are a couple of others things that need to change. I'd like to remain consistent. For example, only for is_before_infernalis there are these occurrence:
roles/ceph-common/handlers/main.yml:12:    - is_before_infernalis
roles/ceph-common/handlers/main.yml:38:    - is_before_infernalis
roles/ceph-common/handlers/main.yml:79:    - is_before_infernalis
roles/ceph-common/handlers/main.yml:105:    - is_before_infernalis
roles/ceph-common/handlers/main.yml:113:    - is_before_infernalis
roles/ceph-common/tasks/facts.yml:32:    is_before_infernalis={{ ceph_version | version_compare('9.0.0', '<') }}
roles/ceph-common/tasks/main.yml:93:  when: is_before_infernalis
roles/ceph-common/tasks/main.yml:99:  when: is_before_infernalis
roles/ceph-common/tasks/main.yml:117:  when: is_before_infernalis
roles/ceph-common/tasks/main.yml:122:    - is_before_infernalis
roles/ceph-common/tasks/main.yml:136:    - is_before_infernalis
roles/ceph-common/tasks/main.yml:150:    - is_before_infernalis
roles/ceph-mds/tasks/pre_requisite.yml:96:    - is_before_infernalis
roles/ceph-mon/tasks/deploy_monitors.yml:69:    - is_before_infernalis
roles/ceph-mon/tasks/deploy_monitors.yml:77:    - is_before_infernalis
roles/ceph-mon/tasks/start_monitor.yml:30:    - is_before_infernalis
roles/ceph-osd/tasks/activate_osds.yml:92:    - is_before_infernalis
roles/ceph-osd/tasks/activate_osds.yml:101:    - is_before_infernalis
roles/ceph-rbd-mirror/tasks/start_rbd_mirror.yml:15:    - is_before_infernalis
roles/ceph-rgw/tasks/pre_requisite.yml:50:    - is_before_infernalis
roles/ceph-rgw/tasks/start_radosgw.yml:29:    - is_before_infernalis

Cool.  I just wanted to check that you we're good with the approach.  I'll start working on replacing all the is_before_... booleans with the new logic.

Hey Seb,
Finally done :-)

@leseb let me know if you have any concerns with this.  I've cleaned up all the is_before is_after is_ variables I can find.  One exception is the docker stuff as it doesn't depend on ceph-common which is where the ceph_relese fact is set.

@jsaintrocc I don't have any issues with it. The thing is it's a huge change and just got back from PTO and now travelling this week, so I need some time to look deeper into this :).
Sorry for the lag.

@leseb no worries.  It is a big commit and I completely understand :-).

test this please

@jsaintrocc this needs to be changed as well: https://github.com/ceph/ceph-ansible/blob/master/roles/ceph-mon/tasks/create_mds_filesystems.yml

@leseb will do.  Works been busy this week but I should have some time this weekend to add the changes.

@jsaintrocc sure, let me know when you're done.

@leseb Should be ready to go now.

@jsaintrocc can you update roles/ceph-mon/tasks/create_mds_filesystems.yml as well?
Thanks

Hey @leseb I think the Xenial VM is dead again :-).  I tested deploying Hammer/Jewel with this branch with no issues to report.

@jsaintrocc I just tried as well, it looks like we are good to go. Thanks for that one!


adjust indexing parameters

If you're going to merge your own pull request, might as well push straight to master ;) Otherwise please assign somebody to review it and wait for feedback.

It was a very minor change, which we agreed doesn't need review. I like to have the tests run an any change and have a history of changes. I think it doesn't hurt or make de development process worse by creating PRs, on the contrary.

Ok, then let's do the whole process, and ask somebody else for a review.


Migrate native simulator from GCC to Clang.

See #876.
This PR started as upgrading the GCC and ended up in migrating from GCC to Clang.

@kuzminrobin Please take a look at the performance tests to double check that the change didn't have any negative performance impact.


Driver JDBC

Description
I try to extract a file after typing the code and the following message appears?
SQL Error: JDBC driver internal error

DBeaver Version
DBeaver 23.1.2
Operating System
No response
Database and driver
No response
Steps to reproduce
No response
Additional context
No response

It's been a while since no update here. If the issue is still actual please let me know and provide additional information.


Cant Install Filament

filament/field-file requires token
- Installing filament/field-file (dev-master 37c654c): Cloning 37c654c4d9 Cloning failed using an ssh key for authentication, enter your GitHub credentials to access private repos

Not sure why you would have an issue like this - its a public repo. Maybe its something to do with you Git credentials?


Automatically downloaded native Android libraries incompatible with Nexus 5

Please ensure you have given all the following requested information in your report.
Issue details
I've downloaded the source code and ran ant -f fetch.xml, then ant, and then opened the project in eclipse. Then I tried running the tests in an emulator and everything is working fine, but on my Nexus 5 Marshmallow it crashes with error. If I want to build libgdx, including the native files, how should I proceed? There is also a thread in the forums opened about this: http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=25695&p=101372#p101372
Initially I thought I did something wrong but investigating further it seems that the automatically downloaded libgdx native libraries are build with an older and probably buggy ndk version. Or the latest version introduces new bugs, I don't know.
Version of LibGDX and/or relevant dependencies
1.9.5 master branch latest
Stacktrace
01-30 12:56:48.101: E/AndroidRuntime(20651): Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__aeabi_memclr" referenced by "/data/app/com.badlogic.gdx.tests.android-1/lib/arm/libgdx.so"...
Please select the affected platforms

[x ] Android
[ ] iOS (robovm)
[ ] iOS (MOE)
[ ] HTML/GWT
[ ] Windows
[ ] Linux
[ ] MacOS

OK so I've compiled the native libraries for android using the following Application.mk in order to make it work:
[code]APP_ABI := armeabi armeabi-v7a x86 x86_64 arm64-v8a
APP_PLATFORM := android-19
APP_STL := gnustl_static[/code]
The important part is to specify the stl library since by default in the new NDK it seems that the default standard library is the system library which is missing some parts since it's a minimal library. Using gnustl_static ensures you get the full stdlib stuff.


Fix kube-proxy dependency in go.mod

Signed-off-by: Ricardo Noriega<EMAIL_ADDRESS>Kube-proxy is a dependency that should not have been removed in go.mod, despite we're not shipping it in MicroShift. Now, go mod tidy works fine.

/lgtm


Broken deps

Fixes a couple of issues

Running gradle build results in

> Task :operator:make
mkdir -p /Users/johnhosie/foo/paladin/ivt/paladin/operator/bin
Downloading<EMAIL_ADDRESS>/Users/johnhosie/foo/paladin/ivt/paladin/operator/bin/controller-gen-v0.16.3 rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
/Users/johnhosie/foo/paladin/ivt/paladin/operator/bin/controller-gen-v0.16.3 object:headerFile="hack/boilerplate.go.txt" paths="./..."
go fmt ./...
go vet ./...
../domains/zeto/internal/zeto/signer/decoder.go:24:2: no required module provides package github.com/kaleido-io/paladin/domains/zeto/pkg/proto; to add it:
        cd /Users/johnhosie/foo/paladin/ivt/paladin/domains/zeto
        go get github.com/kaleido-io/paladin/domains/zeto/pkg/proto
make: *** [vet] Error 1

This is because the operator e2e tests pulls in some go struct types from zeto https://github.com/kaleido-io/paladin/blob/main/operator/test/e2e/e2e_zeto_test.go#L31. however, that source does not compile as is.  It needs the protoc to be generated first.  So we explicitly pull it in via a resolvable configuration and the consumable configuration on the  zeto build depends on protoc.

Running gradle deploy results in

> Task :operator:createNode FAILED
kubectl apply -n default -k config/samples; \
        kubectl wait paladins.core.paladin.io/node1 --for jsonpath='{.status.phase}=Completed' --namespace default --timeout 5m
error: accumulating resources: accumulation err='accumulating resources from 'core_v1alpha1_smartcontractdeployment_registry.yaml': evalsymlink failure on '/Users/johnhosie/foo/paladin/ivt/paladin/operator/config/samples/core_v1alpha1_smartcontractdeployment_registry.yaml' : lstat /Users/johnhosie/foo/paladin/ivt/paladin/operator/config/samples/core_v1alpha1_smartcontractdeployment_registry.yaml: no such file or directory': must build at directory: not a valid directory: evalsymlink failure on '/Users/johnhosie/foo/paladin/ivt/paladin/operator/config/samples/core_v1alpha1_smartcontractdeployment_registry.yaml' : lstat /Users/johnhosie/foo/paladin/ivt/paladin/operator/config/samples/core_v1alpha1_smartcontractdeployment_registry.yaml: no such file or directory
Error from server (NotFound): paladins.core.paladin.io "node1" not found
make: *** [create-node] Error 1

FAILURE: Build failed with an exception.

This is because the createNode task attempts to use some k8s yaml files that are created by the buildContractSamples task so it needs to be declared as a dependency

I snuck in a similar fix in https://github.com/LF-Decentralized-Trust-labs/paladin/pull/389 - this is probably no longer needed.