[WIP] Update to Eigen 3.4

Summary
Updates Eigen to 3.4-rc1 to test and report any issues downstream.
Tests
No new tests
Side Effects
See the release page for the updates to 3.4
https://eigen.tuxfamily.org/index.php?title=3.4
Release notes
None
Checklist

[x] Math issue #2474

[x] Copyright holder: Steve Bronder
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

[x] the basic tests are passing

unit tests pass (to run, use: ./runTests.py test/unit)
header checks pass, (make test-headers)
dependencies checks pass, (make test-math-dependencies)
docs build, (make doxygen)
code passes the built in C++ standards checks (make cpplint)

[x] the code is written in idiomatic C++ and changes are documented in the doxygen

[x] the new changes are tested

@rok-cesnovar can we bump up to just testing on Rtools 4.0? tmk the old-rel of Cran now uses version 4.0 for checking so that seems fine.

@rok-cesnovar do you have an idea of what the scheme would be to update our testing to Rtools40? I tried changing the download link just to the Rtools 40 download in the PR (here) though that seems to just keep downloading?

Oh sorry, I missed the message last time....
It turns out I was complicating things here unnecessarily. Never went back to simplify it though.
Just add the setup-r action that will instal the release version of R (which also installs Rtools 4.0).
- uses: r-lib/actions/setup-r@v1
   with:
     r-version: 'release'

and then add the paths with:
- name: Set path for RTools 4.0
  if: runner.os == 'Windows'
  run: echo "C:/rtools40/usr/bin;C:/rtools40/mingw64/bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8

Awesome thank you!

@bgoodri these tests should hopefully pass and it should be ready to look over. The stan code related changes are in https://github.com/stan-dev/math/pull/2583/commits/e1233fbb2f67afef72b56c7d2b7ad63e7f9d2f68 though reading it over I think everything should be pretty compatable for 2.26?
I couldn't figure it out but the specialization for fwd mode's mdivide_right() is failing so I just commented out the code for now (though we should just delete it before we merge if we are going to delete it). If you want to take a look at those you can uncomment the code in stan/math/fwd/fun/mdivide_right.hpp and run the following test with CXXFLAGS+=-DSTAN_TEST_PRINT_MATRIX_FAILURE in your make/local to see the failing hessian and hessian gradient.
./runTests.py -j24 test/unit/math/ -f mix/fun/mdivide_right_test

This Jenkins error is on me @SteveBronder looks like open mpi updated not properly last night when I've added clang-format.
Will rebuild the image and restart the job sorry for the inconvenience !

@serban-nicusor-toptal would you be able to have a look at the CI for this PR when you have a sec? It looks like the gelman-group-linux machine is having issues

Checking

It looks like the current 3.4 release has a bug with handling -inf arguments to exp, which has since been resolved in the development branch.
Using the testing code:
#include <Eigen/Core>
#include <limits>
#include <iostream>

int main() {
    double y = -std::numeric_limits<double>::infinity();
    Eigen::VectorXd y_vec(2);
    y_vec << y, y;

    std::cout << y_vec.array().exp() << std::endl;
}

The results under 3.4 (godbolt):
Program returned: 0
5.55553e-309
5.55553e-309

And under the current trunk (godbolt):
Program returned: 0
0
0

It looks to upgrade to 3.4 we'll have to disable the use of Eigen's SIMD-vectorised exp until the following release of Eigen

Is 5e-309 really a problem?
On Fri, Mar 25, 2022 at 12:44 PM Andrew Johnson @.***>
wrote:

It looks like the current 3.4 release has a bug with handling -inf
arguments to exp, which has since been resolved in the development branch.
Using the testing code:
#include <Eigen/Core>
#include
#include
int main() {
double y = -std::numeric_limits::infinity();
Eigen::VectorXd y_vec(2);
y_vec << y, y;
std::cout << y_vec.array().exp() << std::endl;

}
The results under 3.4 (godbolt https://godbolt.org/z/3xqz84f43):
Program returned: 0
5.55553e-309
5.55553e-309
And under the current trunk (godbolt https://godbolt.org/z/M5zWTW6z9):
Program returned: 0
0
0
It looks to upgrade to 3.4 we'll have to disable the use of Eigen's
SIMD-vectorised exp until the following release of Eigen
—
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/pull/2583#issuecomment-1079207984, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZ2XKSWHW7TRWOAZYPX7R3VBXUN7ANCNFSM5EIOCC7A
.
You are receiving this because you were mentioned.Message ID:
@.***>

It's what's causing the current distribution test failures, since the log cdf of the gumbel with Inf inputs is no longer zero.
So we could add a tolerance to the test if its not much of an issue

I think temporarily changing the unit test would be preferable to disabling
SIMD for something that is correct for all numerical intents and purposes.
On Fri, Mar 25, 2022 at 12:50 PM Andrew Johnson @.***>
wrote:

It's what's causing the current distribution test failures, since the log
cdf of the gumbel with Inf inputs is no longer zero.
So we could add a tolerance to the test if its not much of an issue
—
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/pull/2583#issuecomment-1079212840, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZ2XKSYS7R3L7DHXQKKEC3VBXVEXANCNFSM5EIOCC7A
.
You are receiving this because you were mentioned.Message ID:
@.***>

Sounds good to me

Just an fyi when this passes I think what we need to do is rebase this to have the eigen 3.4 include in one commit and the actual stan changes in another commit so it's a bit easier to look over. Or alt we could have one PR just adding Eigen 3.4, one PR to switch to 3.4, and another to delete 3.39. Though I think the rebasing thing will not be too bad

Yeah agreed. Probably easiest to do the Stan Math changes first, so we can make sure they're backwards compatible-ish before the Eigen changes go in

FYI. I've tested this successfully with the experimental version RStan.
PS: It conflicts with #2641.

FYI. I've tested this successfully with the experimental version RStan.
PS: It conflicts with #2641.

Great news! Yeah both PRs partially overlap in the same changes, so I'll just resolve the conflicts with whichever is merged first

Excellent this is working! @bgoodri actually instead of breaking up the commits how do you feel about using the view github gives us below? Along with the lhs tab dropdown I was able to look over the changes pretty easily. The big thing imo is making sure mdivide_left and right are good
https://github.com/stan-dev/math/pull/2583/files?file-filters[]=.hpp&show-viewed-files=true

I've narrowed down the mdivide failures to something related to vector vs row_vector differences, since the tests all pass if vectors are used instead

I can take a look at this next week again to try to sort that out. Yes I noticed something about the vector thing being weird as well. I can take a crack again at this next week

Thanks, y'all, for getting this going.  In the last week, I've missed out on two new features that Eigen 3.4 brings.

I've traced the mdivide failures to the finite_diff_grad_hessian_auto function in the autodiff testing framework. The gradients calculated by the autodiff framework are consistent between a row_vector(2) and a matrix (1, 2) inputs, but they differ when calculated by finite-differencing.
I'll keep chasing this down and update with any findings. Almost there!

@SteveBronder I've narrowed things down to the hessian function, but I can't figure out why the behaviour is different.
I've put together a minimal reproduction of the part of the testing framework where the discrepancy occurs, would you be able to have a look when you get a minute?
#include <test/unit/math/test_ad.hpp>
#include <vector>
#include <iostream>

template <typename T>
auto calc_hessian(const T& x1) {
   auto f = [](const auto& x, const auto& y) {
    return stan::math::mdivide_right(x, y);
  };

  Eigen::MatrixXd x2(2, 2);
  x2 << 1, 0, 0, 1;

  auto g = [&](const auto& v) {
    auto ds = stan::test::to_deserializer(v);
    auto x1ds = ds.read(x1);
    auto x2ds = ds.read(x2);
    return stan::test::serialize_return(stan::test::internal::eval(f(x1ds, x2ds)))[1];
  };

  // internal::expect_ad_helper(tols, f, g12, serialize_args(x1, x2), x1, x2);
  auto x = stan::test::serialize_args(x1, x2);

  // test_grad_hessian(tols, g, x, gx);

  double fx = 0;
  int d = x.size();
  std::vector<Eigen::MatrixXd> grad_hess_fx(d);
  Eigen::VectorXd x_temp(x);
  Eigen::VectorXd grad_auto(d);
  Eigen::MatrixXd hess_auto(d, d);

  x_temp(5) = x(5) + 2 * stan::math::finite_diff_stepsize(x(5));
  stan::math::hessian(g, x_temp, fx, grad_auto, hess_auto);

  return hess_auto;
};

TEST(MathFunctions, abs) {
  Eigen::MatrixXd mat_x1(1, 2);
  mat_x1 << 1, 1;

  Eigen::RowVectorXd rv_x1(2);
  rv_x1 << 1, 1;

  Eigen::MatrixXd mat_hessian = calc_hessian(mat_x1);
  Eigen::MatrixXd rv_hessian = calc_hessian(rv_x1);

  EXPECT_MATRIX_EQ(mat_hessian, rv_hessian);
}

@andrjohns After you've merged develop in 02b85557330c7d20382038e43ccc0f9d3061c5db, this branch now  has the two versions of eigen and builds v3.3.9.
https://github.com/stan-dev/math/blob/24f3f763b4f05adcaf8cca65b24de6c6bb5da2fa/make/libraries#L12

Ah good catch, thanks. I knew that merge was too painless to be true

@andrjohns ty for the minimal example! Yes I will try to look at this on Monday

@SteveBronder this is now passing all tests (including mdivide_), but the 2pl_irt model from the performance tests is failing. When I run locally it looks like the values are consistent between develop and this PR, but I'm not sure if I'm doing something wrong. Would you be able to run the test on your machine when you get a minute? Thanks!

Hmm, it seems to be passing locally for me as well. I just restarted it and updated the branch with develop, lets let this run and if it bonks I'll try to replicate the environment jenkins using with a docker container.
Looking at the jenkins log  I'm seeing the error
FAIL: golds/stat_comp_benchmarks_benchmarks_irt_2pl_irt_2pl.gold param sigma_theta not within (1.062132876 - 1.010467953) / 0.162185019873786 < 0.3

Where 1.06 is this PR and 1.01 is develop. That calculation above is equal to 0.3185~. So it's very close to passing on jenkins.
Looking at the parameters used to generate the data here it looks like value for sigma_theta is
sigma_theta 1.0142e+00 1.7369e-01 (mean and sd)

So something odd did happen, but it might just be a one off thing. If it happens again I'll look more into it

Ugh thats so odd @andrjohns what do you think the chances are this is an Eigen thing? Looking at the Stan code for irt_2pl there just doesn't seem to be much going on in that function beyond lower/upper and the distributions.

Throwing a hail mary, updating to the latest version of 3.4 which has a few bug fixes.
Another thing I noticed is that locally I tend to get a value of 1.03 for that sigma parameter on develop for that model. I do still get a value of 1.06 with Eigen 3.4 but the fail does not go off because they are close enough. So for some reason the jenkins is running more accurately?

The only thing that I can think of is that the cmdstan performance tests on Jenkins are run with the -march=native flag, so we might be seeing some small numeric differences due to changes in Eigen's SSE/AVX code?

Hmm I thought it could be an Eigen thing but messing around with the below idt exp() is the problem (they changed something about this in master but not 3.4 and I thought it could be the problem)
https://godbolt.org/z/cnc7efsqx

The only thing that I can think of is that the cmdstan performance tests on Jenkins are run with the -march=native flag, so we might be seeing some small numeric differences due to changes in Eigen's SSE/AVX code?

Yeah if you look at the ASM diff there's a lot of changes. Though tbh I'm not sure where to go from here? Locally I'm getting a value of 1.04 for that problem parameter on develop. So that seems to be okay with me imo (also the result is within .31 on jenkins and the band is .3 so it is very close). @serban-nicusor-toptal do you have the specs for the box the performance tests run on?
I also want to look at the generated C++ code for that model. Maybe we are doing something silly with an expression somewhere? (though I would expect a much wronger result if that was the case)

Hey, this runs inside a Docker  container.
On a host machine with CentOS Linux release 7.9.2009, 510GB of RAM and x56 CPU (Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz) which is splitted into x10 Jenkins Executors (~50 GB RAM, ~11 CPUs) on which the Docker container runs.
There's also x20 more executors that have ~5 CPUs and ~20GB of ram. ( same OS, same CPU I think, don't have access to the second host)
Hope that helps, if there's anything else I can do to help with this please let me know!

Locally I'm getting a value of 1.04 for that problem parameter on develop.

Are you using the same compiler version and flags locally? Specifically, have you turned off compiler optimizations (i.e., using -O0 flag or echo O=0 > make/local).

Looks like this is still active. What will take this from WIP to ready?

I've *finally* managed to reproduce the irt_2pl performance test failure locally, so I'll start digging into this so we can hopefully get Stan 3.4 ready soon

Excellent! What did you do to have it reproduce locally?

As we suspected, the test failure is coming from the use of -march=native in the Makeflags in the git comparison script.
Specifically the use of AVX2 extensions, as the tests all pass if I change the makeflags to:
CXXFLAGS += -mtune=native -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx"

I think we might mark this as an expected failure, since the Eigen release notes indicate substantial changes to the SIMD code
Should we remove -march=native from this test?

@serban-nicusor-toptal would it be possible to create a branch of the performance-tests-cmdstan repo which doesn't add -march=native to the Makeflags in the compare-git-hashes.sh script, and test this PR against that branch? Just to double-check that my local results aren't a fluke

I think that might work, will try to set it up tomorrow and post the results.

I've created this a new Jenkins job pointing to eigen3.4-test branch in perf tests.
Now that allows us to run it with parameters, in which we give this branch as an input.
I already started a job here: https://jenkins.flatironinstitute.org/blue/organizations/jenkins/Stan%2FCmdStan Performance Tests/detail/downstream_tests_eigen34/3/pipeline
Please let me know if there's anything else I can help with!

I've narrowed this down to the vectorisation of the bernoulli_logit, since the tests pass with looping but not vectorised inputs. Almost there!

This one has been pesky indeed.  So just cheerleading here.  Thanks y'all for your hard work on this.  You're doing great!

Breakthrough!
I iteratively tested Eigen's commits since the 3.3.9 release, and found the culprit: https://gitlab.com/libeigen/eigen/-/commit/25d8ae7465e6430bc2dc7f65800332932d3bb774
The commit simplified the vectorised calculation of log and log2, which is why the test failures here were only appearing under AVX2. If I run Eigen 3.4.0 and revert these changes, then the test passes.
I still need to grok the construction and changes here and do some more testing to find the input values that are giving different results between 3.3.9 and 3.4.0, then we'll know whether this is a bug to patched in Eigen or just an improvement in numerical accuracy/stability

Really great detective work @andrjohns!

Downstream tests have all passed! I'm still having trouble creating a reproducible example, the only place I'm seeing differences is in the irt_2pl benchmark. My next step is to try iteratively reverting parts of the problematic commit to see whether it was a particular line/change
@SteveBronder if you've got any tricks/suggestions for other angles to investigate in figuring out a reproducible example, would be much appreciated!

@andrjohns great find!
So I messed around with Eigen 3.4 just comparing it to std log and I think maybe the error here is when we sum a bunch of log values? My thinking here is that for a single log then that ulp is not a big deal, but for a lot of log calls summed together the errors don't cancel each other out and you end up with a bigger error than 1 ULP. You can see the difference in the sum in the godbolt below.
https://godbolt.org/z/Gr34vMbGn
It's interesting to note as the values get bigger the sum differs more and more. This made me think of log_sum_exp and now I'm wondering if we should be calling log_sum_exp in a lot of our probability functions? At least anywhere we would normally just do a basic sum. @bob-carpenter @syclik any thoughts on this?
I thought about log_sum_exp() also because in the irt model I see it calls bernoulli_logit which has a line calling normal sum. But should this call log_sum_exp()? Is that unnecessary for some reason?
  T_partials_return logp = sum(
      (ntheta > cutoff)
          .select(-exp_m_ntheta,
                  (ntheta < -cutoff).select(ntheta, -log1p(exp_m_ntheta))));

@andrjohns do you mind if I change that line to call log_sum_exp() to see if that fixes things? I think Either way we should ping the Eigen team, either with an issue or on discourse about this

So changing this line so that the function compiles fails the unit tests because for the functions taking in vectors we are doing log_sum_exp() but this doesn't work when comparing against calling the function multiple times.
  T_partials_return logp = log_sum_exp(
      (ntheta > cutoff)
          .select(-exp_m_ntheta,
                  (ntheta < -cutoff).select(ntheta, -log1p(exp_m_ntheta))).matrix().eval());

Example failure:
[ RUN      ] AgradDistributionsBernoulliLogistic_v_5/AgradDistributionTestFixture/0.RepeatAsVector
./test/unit/math/expect_near_rel.hpp:33: Failure
The difference between x1 and x2 is 3.8712010109078916, which exceeds tol_val, where
x1 evaluates to -4.1588830833596724,
x2 evaluates to -0.28768207245178079, and
tol_val evaluates to 2.2232825779057268e-08.
expect_near_rel_finite in: log prob with repeated vector input should match a multiple of log prob of single input

I think maybe pinging the Eigen team about this would be the right thing to do at this point

I'm wondering if we should be calling log_sum_exp in a lot of our probability functions?

Anywhere we need to calculate log(sum(exp(x)) we should be using log_sum_exp.  But it's not going to help if we just need to calculate sum(log(x)).

I just checked the godbolt and I'm not sure if that's actually the issue here, since it looks like the results/difference are the same for 3.3.9 and 3.4.0?

 Below is an updated godbolt that shows that's easier to read the sums from each (3.4 on executor 1 and 3.9.9 on executor 2)
https://godbolt.org/z/E8rjxGMj6
The max diff changes but the sums have the same relative error.
I'm not to sure how to progress at this point besides hitting up the eigen team. I can look into the different functions there to see how log is called. Maybe we can try to make do ad using eigen 3.9 and 4.0 to see how the adjoints change?

Anywhere we need to calculate log(sum(exp(x)) we should be using log_sum_exp. But it's not going to help if we just need to calculate sum(log(x)).

Oh yes sorry totally missed on that, not the right tool.

I'm not to sure how to progress at this point besides hitting up the eigen team. I can look into the different functions there to see how log is called. Maybe we can try to make do ad using eigen 3.9 and 4.0 to see how the adjoints change?

I've also tried comparing the gradients, log_prob, and grad_log_prob results, and still haven't been able to replicate a difference. My last attempt is going to be diff-ing the assembly from the cmdstan model with 3.4.0 vs 3.4.0+patch.
After that we might have to call in the big guns with Eigen

@SteveBronder I think I've got it! The vectorised log() is returning slightly different values depending on the number of elements: https://godbolt.org/z/7froaMq5s
I'm guessing this is because the SIMD handling is different between the two. Now that we've got an easy example I'll open an issue in the Eigen repo.
What a journey!

The verdict from Eigen is that these differences are to be expected given the changes to the vectorised code
Are we happy to accept the new values for the test here?

I think I'm okay with it, it would be nice to be able to do this upgrade. I wonder if it would be okay to change the actual model to be better at recovering the parameters? Like if we can make the cauchy priors into student t or normal priors?
https://github.com/stan-dev/stat_comp_benchmarks/blob/fcf97113da2f7d9a0356a59f16d5381131a21189/benchmarks/irt_2pl/irt_2pl.stan

I wonder if it would be okay to change the actual model

Sure, especially if it's only an example we use for performance or other testing.

Thanks both, sounds like a plan to me! I'll revert the patch I made to the Eigen code here, and open a PR optimising the performance-tests model

@SteveBronder I've reverted the patch commit I made, so (assuming that only the irt_2pl model fails again) this should be ready for review & merge

Now that the feature freeze is over, should we look at getting this merged? @rok-cesnovar or @SteveBronder , not sure who would be the best choice for reviewer here

Is there any target release version(stan) for this eigen 3.4 update?

@andrjohns did you ever change the performance tests model? If so, if you merge in develop and it passes I think we can get this approved and merged

@andrjohns did you ever change the performance tests model? If so, if you merge in develop and it passes I think we can get this approved and merged

In this case, changing the performance-tests model is unlikely to make this pass - since it's due to minor numerical differences in the vectorised handling of the log() function. In this instance, the changes will fail the first merge but will pass in the subsequent (since the vectorised operations will be the same).
Alternatively, if we want this to pass before we merge, we can also disable vectorised operations in the performance tests this line.
Thoughts/preferences?

I think we will also want to update the result stored in https://github.com/stan-dev/performance-tests-cmdstan/blob/master/golds/stat_comp_benchmarks_benchmarks_irt_2pl_irt_2pl.gold, no?

@andrjohns thoughts on the golds question above?

@serban-nicusor-toptal After merging in master a test is failing to compile on Windows due to out-of-memory, have we handled things like this in the past?

We split the tests into multiple files. Though this is the first time I am seeing this happening since we switched to Rtools4+ on Windows.

I'm afraid Rok solution is the right one, else we would need to ask Dylan to make the Windows executors with more RAM.

@andrjohns @SteveBronder I believe this should be ready to go. Earlier in this thread you mentioned wanting to rebase all the stan changes into one commit and Eigen changes into another, would you still like to do this?

What is the expected stan-math release for this PR?

The next release will include it, so 4.6.0 (part of Stan 2.32 release). The release should be official in the middle of April: https://discourse.mc-stan.org/t/planning-the-2-32-release/30641


New installations require snap, snap experience very bad, not production ready

Required information

Distribution: Ubuntu
Distribution version: 18.10
The output of "lxc info" or if that fails:

Kernel version: 4.18.0-15-generic
LXC version:
LXD version: 3.9
Storage backend in use: btrfs

Issue description
Snap installations have poor very poor user experience. They complicate administration, require multiple additional troubleshooting steps. It is unacceptable to require end users to use a system that is not ready for "prime time". The use of snaps irreparably denigrates the user experience to the point of not being acceptable for use in a production tool chain.

For example, restarting the lxd daemon with a snap is not clear, not obviously documented.

There are known failures with deleting LXD from a system that cause serious issues for users.

I apparently have to learn all about how snaps work etc to install and use lxd. Given that there are other package managers out there, this already makes for a steep barrier to entry.

automatic version updating is an absolute no-go for this. I cannot have my development environment halted because lxd updated in the background and broke a script.

isolation changes all the paths for the logs, storage, etc, breaking all your documentation. Again, I have to learn all about snap isolation just to find a log file, like the one requested below

templates, docs, issue templates all refer to the traditional installation of lxd using apt

Steps to reproduce

snap install lxd
Use
Cry

Information to attach

[ ] Any relevant kernel output (dmesg) - not relevent with snaps
[ ] Main daemon log (at /var/log/lxd/lxd.log or /var/snap/lxd/common/lxd/logs/lxd.log) - not relevent with snaps
[ ] Output of the daemon with --debug (alternatively output of lxc monitor while reproducing the issue) -- not possible, documented with snaps

Closing as not a constructive bug report.
This is the upstream LXD project, while we prefer our users use the snap as that simplifies reproducing issues, you don't have to. You're welcome to use a Linux distribution that ships other type of packages for it or build it by hand yourself.

This is the project's choice to use a sub-par packaging method that denigrates the user experience. The issues produced are a direct result of the project's choices, therefore the bug is relevant.


[Suggestion] Fuzzy mode

I think that a fuzzy mode for the construction wand (i.e., placing blocks on all blocks rather than just blocks of the same variety) would be incredibly useful, and it’s the one feature I’ve been sad not to have in Construction Wand.

That feature already exists, just open the wand GUI (Sneak + Right click) and set the option Matching to Any.

Sneak + right-click doesn’t open any GUI. I’m playing 1.18.2 (version 2.7). Is this not a feature in the 1.18.2 version of the mod?

you have to sneak + right click into empty space.

That’s what I did. I tried it many times, but nothing happens.

I solved it! Shift Opt GUI was enabled in the config, meaning I had to press the opt key, which was set to left ctrl, as well as sneak to open the GUI. Turning this off lets me open the GUI! Awesome!

Oh sorry, I forgot to mention that you have to hold down left control, too. I added this feature because I kept dying in skyblock when the GUI accidentally opened during sneaking.

Yeah, no worries! Perhaps you should disable that option by default. A tooltip on the construction wand would also be helpful to people like me who had no idea the GUI was a thing!


Error using executables from Rubygems packages

I wanted to try out tea and installed Ruby:
$ tea +ruby-lang.org

Rubygems was also installed as dependency, so all good. However, when installing a gem that contains an executable that executable cannot be run:
# In the shell open by the above tea command
$ gem install hexapdf
Fetching hexapdf-0.28.0.gem
Fetching cmdparse-3.0.7.gem
Fetching geom2d-0.3.1.gem
Successfully installed geom2d-0.3.1
Successfully installed cmdparse-3.0.7
Successfully installed hexapdf-0.28.0
3 gems installed
$ hexapdf -v
/home/thomas/.tea/ruby-lang.org/v3.1.2/bin/ruby: no Ruby script found in input (LoadError)

This works just fine when installing Ruby and Rubygems normally

oh ok, a relocatability issue, I'll fix and add a test for this to ensure it doesn’t break again. Many thanks for the report.

Wow - thanks for the fast reply! :smile:
I'm not very familiar with Typescript but if there are other things to do to make sure Ruby has great support by tea, please let me know!

K should work now, if you tea --sync +ruby-lang.org it’ll download the latest build (I fixed the issue stopping us from auto-building new ruby’s also, so we now have 3.2.0 and will build new versions immediately going forwards).
If you need 3.1.2 then I am rebuilding that currently, but to get it you will need to delete the existing install first as we don’t yet have a “force update” mechanism. (rm -rf ~/.tea/ruby-lang.org/v3.1.2)

Thanks - works as expected!

if there are other things to do to make sure Ruby has great support by tea, please let me know!

let us know if things aren't working as expected or if things can be improved and we'll fix them! thanks.


samv7: build sam_qencoder.c only if at least one timer counter is enabled

Summary
Option CONFIG_SENSORS_QENCODER might be configured even if SAMv7 qencoder over timer counter is not used (for example encoder over GPIO is selected with CONFIG_SAMV7_GPIO_ENC). This can cause compile warnings, also build of sam_qencoder.c file is unnecessary in that case.
New hidden option CONFIG_SAMV7_QENCODER is added and automatically selected if at least one timer counter is enabled for qencoder. Build is triggered on this option.
Impact
Fixes possible warnings (unused structures)

ci break will be fixed by @XuNeo , let's merge this minor change first.


Can't figure out how to show error in dedicated field in credit-card-example

Hello,
i see that in the credit-card-form example here that an error is stored in the model and an errMsg message is handled in the Update function. But i cannot make the error visible in the UI, nothing appears if i input a wrong character, neither if i print the error explicitly in the View function (if the error is not nil). It seems that the errMsg is never activated.
I can't find any documentation or example about this, is there something wrong in the example?
Thanks in advance!

The validation functions are called by the text models whenever one receives the Update(teaMsg) call, all you have to do is pass it a message and the rest is taken care of.  As for the errMsg , that's going to have whatever errors are passed into your program model itself, while the text inputs do error handling in their own Update() methods.
The errors are stored in the individual textinputs, m.inputs[n].Err , and they're set to nil if there's no error.

Hey @hopefulTex,
This is an issue that's being discussed upstream in Bubbles. It would make more sense to continue the discussions and apply improvements over there. Thank you for bringing this to our attention! We haven't forgotten about this issue


Resolved the Google OAuth for Admin Sign in

[x] Selected admins are only able to sign in as Admin with Google

This is perfect. Thanks.


Code Splitting Issue

Hi! I am trying to convert a React app created by create-react-app to work inside a single spa container app. We are using craco with the craco-plugin-single-spa-application to get it migrated to a single-spa app. The react-router seems to be working but it's failing to load the chunks. Then I looked into the plugin, it should override the webpack config and disable the code splitting. Wonder if you guys have any ideas why?

@joshdeng I don't know why, but would you be able to provide a repo reproducing the issue for easier inspection?


[Suggestion] Accessories support

Currently, the mod requires version 9.1.4 of Adorned (Curios), but currently Accessories (specifically Curios Compat Layer for Accessories) only counts as version 9.0.12.
Accessories is a new, reworked alternative to Curios and is required by certain mods, you could technically use both Curios and Accessories simultaneously, but it causes unnecessary clutter.
My suggestion is to change the required version of Curios to 9.0.12, if possible.

sounds good to me

proof of work


fix(resolve): check for empty string in query values [don’t merge]

Foreign keys that are of type int are converted to strings (diff). I know this is intended since any’s righthand side expects an array expression (if my research was correct). However when a foreign key is null it is interpreted as a string and result in the following error: error: invalid input syntax for integer.
I have yet to add a test. Though I am not sure where ☺.

@calebmer anything I missed here or misunderstood?

A test case so a regression isn't made in the future 😊

Will do, but see

I have yet to add a test. Though I am not sure where ☺.

Gotcha, missed that 😊
I'm not necessarily sure what the issue was (thus why a test would help). Is adding a table or column to kitchen-sink not enough?

Will look into it. Thanks.

I have added a test. Let me know if you want me to change something, especially the additions in the kitchen sink ☺ Wasn’t sure where and how to add it best. It looks like this will get a bit unwieldy if more tests need to be added. What do you think?

It might be easier to add a column like this:
create table another_thing (
  id               serial not null primary key,
  note             text not null,
  published        boolean not null,
  tags             text[] not null,
  thing_id          int references thing(id) on delete cascade
);

And then nullify thing_id in another_thing in one of the rows.

@calebmer thanks. done.

Cool, just rebase and I'll merge! 🎉

@calebmer done 😄


webviews within hotwire native app seem to break after upgrading kamal-proxy

upgraded to latest kamal proxy and get the following screen on all links now when pointed to "remote". Localhost seems to work fine inside simulator.
Same issue when simulator is pointed to "remote". Here are some logs..

some additional logs

What version of iOS are you running?
What do your sever logs report?

I'm running iOS 18 in the simulator and 18.2 beta on device. Looking at server logs in production now..

Production logs when loading the app from simulator show the following:
[5031df65-0bca-4078-a760-2307521259e7] Processing by MobileController#home as HTML
[5031df65-0bca-4078-a760-2307521259e7]   Rendered layout app/views_mobile/layouts/mobile.html.erb (Duration: 1.0ms | GC: 0.0ms)
[5031df65-0bca-4078-a760-2307521259e7] Completed 200 OK in 395ms (Views: 1.4ms | ActiveRecord: 391.2ms (3 queries, 0 cached) | GC: 0.0ms)
[defcc7a0-0257-4994-8371-f89b2626c855] Started GET "/fp?fp=1542811075&b=WebKit&d=iPhone&o=iOS&sr=402x874&c=undefined&ua=Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%2018_0%20like%20Mac%20OS%20X)%20AppleWebKit/605.1.15%20(KHTML,%20like%20Gecko)%20Hotwire%20Native%20iOS;%20Turbo%20Native%20iOS%20bridge-components:%20[form%20menu%20overflow-menu]" for <IP_ADDRESS> at 2024-11-10 20:10:31 +0000
[defcc7a0-0257-4994-8371-f89b2626c855] Processing by ApplicationController#grab_fingerprint as */*
[defcc7a0-0257-4994-8371-f89b2626c855]   Parameters: {"fp"=>"1542811075", "b"=>"WebKit", "d"=>"iPhone", "o"=>"iOS", "sr"=>"402x874", "c"=>"undefined", "ua"=>"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}
[3a869765-39a5-4435-a7dd-9a3215ed938b] Started GET "/fp?fp=1542811075&b=WebKit&d=iPhone&o=iOS&sr=402x874&c=undefined&ua=Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%2018_0%20like%20Mac%20OS%20X)%20AppleWebKit/605.1.15%20(KHTML,%20like%20Gecko)%20Hotwire%20Native%20iOS;%20Turbo%20Native%20iOS%20bridge-components:%20[form%20menu%20overflow-menu]" for <IP_ADDRESS> at 2024-11-10 20:10:31 +0000
[3a869765-39a5-4435-a7dd-9a3215ed938b] Processing by ApplicationController#grab_fingerprint as */*
[3a869765-39a5-4435-a7dd-9a3215ed938b]   Parameters: {"fp"=>"1542811075", "b"=>"WebKit", "d"=>"iPhone", "o"=>"iOS", "sr"=>"402x874", "c"=>"undefined", "ua"=>"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}
[16e415f7-126c-427b-b3cc-1d1574086b66] Started GET "/fp?fp=1542811075&b=WebKit&d=iPhone&o=iOS&sr=402x874&c=undefined&ua=Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%2018_0%20like%20Mac%20OS%20X)%20AppleWebKit/605.1.15%20(KHTML,%20like%20Gecko)%20Hotwire%20Native%20iOS;%20Turbo%20Native%20iOS%20bridge-components:%20[form%20menu%20overflow-menu]" for <IP_ADDRESS> at 2024-11-10 20:10:31 +0000
[16e415f7-126c-427b-b3cc-1d1574086b66] Processing by ApplicationController#grab_fingerprint as */*
[16e415f7-126c-427b-b3cc-1d1574086b66]   Parameters: {"fp"=>"1542811075", "b"=>"WebKit", "d"=>"iPhone", "o"=>"iOS", "sr"=>"402x874", "c"=>"undefined", "ua"=>"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}
[3a869765-39a5-4435-a7dd-9a3215ed938b] Completed 200 OK in 35ms (Views: 0.3ms | ActiveRecord: 31.1ms (2 queries, 0 cached) | GC: 0.0ms)
[defcc7a0-0257-4994-8371-f89b2626c855] Completed 200 OK in 41ms (Views: 0.2ms | ActiveRecord: 38.2ms (2 queries, 0 cached) | GC: 0.0ms)
[16e415f7-126c-427b-b3cc-1d1574086b66] Completed 200 OK in 42ms (Views: 0.1ms | ActiveRecord: 40.7ms (2 queries, 0 cached) | GC: 0.0ms)
[95613662-c2c5-4e36-9a29-ab1181f60d46] Started GET "/fp?fp=1542811075&b=WebKit&d=iPhone&o=iOS&sr=402x874&c=undefined&ua=Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%2018_0%20like%20Mac%20OS%20X)%20AppleWebKit/605.1.15%20(KHTML,%20like%20Gecko)%20Hotwire%20Native%20iOS;%20Turbo%20Native%20iOS%20bridge-components:%20[form%20menu%20overflow-menu]" for <IP_ADDRESS> at 2024-11-10 20:10:31 +0000
[95613662-c2c5-4e36-9a29-ab1181f60d46] Processing by ApplicationController#grab_fingerprint as */*
[95613662-c2c5-4e36-9a29-ab1181f60d46]   Parameters: {"fp"=>"1542811075", "b"=>"WebKit", "d"=>"iPhone", "o"=>"iOS", "sr"=>"402x874", "c"=>"undefined", "ua"=>"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}
[95613662-c2c5-4e36-9a29-ab1181f60d46] Completed 200 OK in 16ms (Views: 0.4ms | ActiveRecord: 14.2ms (2 queries, 0 cached) | GC: 0.0ms)
[d8bc6946-1c1e-45a5-85ee-daf354f54767] Started GET "/m" for <IP_ADDRESS> at 2024-11-10 20:11:16 +0000
[d8bc6946-1c1e-45a5-85ee-daf354f54767] Processing by MobileController#home as HTML
[d8bc6946-1c1e-45a5-85ee-daf354f54767]   Rendered layout app/views_mobile/layouts/mobile.html.erb (Duration: 0.7ms | GC: 0.0ms)
[d8bc6946-1c1e-45a5-85ee-daf354f54767] Completed 200 OK in 385ms (Views: 1.0ms | ActiveRecord: 382.3ms (2 queries, 0 cached) | GC: 0.0ms)
[f2cf3b22-fbe5-4734-9f1f-f871ccea6495] Started GET "/fp?fp=1542811075&b=WebKit&d=iPhone&o=iOS&sr=402x874&c=undefined&ua=Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%2018_0%20like%20Mac%20OS%20X)%20AppleWebKit/605.1.15%20(KHTML,%20like%20Gecko)%20Hotwire%20Native%20iOS;%20Turbo%20Native%20iOS%20bridge-components:%20[form%20menu%20overflow-menu]" for <IP_ADDRESS> at 2024-11-10 20:11:17 +0000
[f2cf3b22-fbe5-4734-9f1f-f871ccea6495] Processing by ApplicationController#grab_fingerprint as */*
[f2cf3b22-fbe5-4734-9f1f-f871ccea6495]   Parameters: {"fp"=>"1542811075", "b"=>"WebKit", "d"=>"iPhone", "o"=>"iOS", "sr"=>"402x874", "c"=>"undefined", "ua"=>"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}
[f2cf3b22-fbe5-4734-9f1f-f871ccea6495] Completed 200 OK in 32ms (Views: 0.3ms | ActiveRecord: 30.0ms (2 queries, 0 cached) | GC: 0.0ms)

I have a GET /fp which is fired by JS on page load to detect browser fingerprints of users for tackling fraud and bot activity..

here is some log output from the kamal-proxy container...

{"time":"2024-11-10T20:10:31.389230342Z","level":"INFO","msg":"Request","host":"botflip.com","port":80,"path":"/fp","request_id":"defcc7a0-0257-4994-8371-f89b2626c855","status":200,"service":"botflip-web","target":"758358dbac20:3000","duration":44442958,"method":"GET","req_content_length":0,"req_content_type":"","resp_content_length":7,"resp_content_type":"text/html; charset=utf-8","client_addr":"<IP_ADDRESS>","client_port":"16180","remote_addr":"<IP_ADDRESS>","user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]","proto":"HTTP/1.1","scheme":"http","query":"fp=1542811075&b=WebKit&d=iPhone&o=iOS&sr=402x874&c=undefined&ua=Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%2018_0%20like%20Mac%20OS%20X)%20AppleWebKit/605.1.15%20(KHTML,%20like%20Gecko)%20Hotwire%20Native%20iOS;%20Turbo%20Native%20iOS%20bridge-components:%20[form%20menu%20overflow-menu]","req_cache_control":"","req_last_modified":"","req_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}
{"time":"2024-11-10T20:10:31.392845489Z","level":"INFO","msg":"Request","host":"botflip.com","port":80,"path":"/fp","request_id":"16e415f7-126c-427b-b3cc-1d1574086b66","status":200,"service":"botflip-web","target":"758358dbac20:3000","duration":45784619,"method":"GET","req_content_length":0,"req_content_type":"","resp_content_length":7,"resp_content_type":"text/html; charset=utf-8","client_addr":"<IP_ADDRESS>","client_port":"57550","remote_addr":"<IP_ADDRESS>","user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]","proto":"HTTP/1.1","scheme":"http","query":"fp=1542811075&b=WebKit&d=iPhone&o=iOS&sr=402x874&c=undefined&ua=Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%2018_0%20like%20Mac%20OS%20X)%20AppleWebKit/605.1.15%20(KHTML,%20like%20Gecko)%20Hotwire%20Native%20iOS;%20Turbo%20Native%20iOS%20bridge-components:%20[form%20menu%20overflow-menu]","req_cache_control":"","req_last_modified":"","req_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}
{"time":"2024-11-10T20:10:31.604023009Z","level":"INFO","msg":"Request","host":"botflip.com","port":80,"path":"/fp","request_id":"95613662-c2c5-4e36-9a29-ab1181f60d46","status":200,"service":"botflip-web","target":"758358dbac20:3000","duration":256980769,"method":"GET","req_content_length":0,"req_content_type":"","resp_content_length":7,"resp_content_type":"text/html; charset=utf-8","client_addr":"<IP_ADDRESS>","client_port":"57566","remote_addr":"<IP_ADDRESS>","user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]","proto":"HTTP/1.1","scheme":"http","query":"fp=1542811075&b=WebKit&d=iPhone&o=iOS&sr=402x874&c=undefined&ua=Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%2018_0%20like%20Mac%20OS%20X)%20AppleWebKit/605.1.15%20(KHTML,%20like%20Gecko)%20Hotwire%20Native%20iOS;%20Turbo%20Native%20iOS%20bridge-components:%20[form%20menu%20overflow-menu]","req_cache_control":"","req_last_modified":"","req_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}
{"time":"2024-11-10T20:11:17.136189627Z","level":"INFO","msg":"Request","host":"botflip.com","port":80,"path":"/m","request_id":"d8bc6946-1c1e-45a5-85ee-daf354f54767","status":200,"service":"botflip-web","target":"758358dbac20:3000","duration":388583929,"method":"GET","req_content_length":0,"req_content_type":"","resp_content_length":15525,"resp_content_type":"text/html; charset=utf-8","client_addr":"<IP_ADDRESS>","client_port":"57544","remote_addr":"<IP_ADDRESS>","user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]","proto":"HTTP/1.1","scheme":"http","query":"","req_cache_control":"","req_last_modified":"","req_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}
{"time":"2024-11-10T20:11:17.65792694Z","level":"INFO","msg":"Request","host":"botflip.com","port":80,"path":"/fp","request_id":"f2cf3b22-fbe5-4734-9f1f-f871ccea6495","status":200,"service":"botflip-web","target":"758358dbac20:3000","duration":35128459,"method":"GET","req_content_length":0,"req_content_type":"","resp_content_length":7,"resp_content_type":"text/html; charset=utf-8","client_addr":"<IP_ADDRESS>","client_port":"16180","remote_addr":"<IP_ADDRESS>","user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]","proto":"HTTP/1.1","scheme":"http","query":"fp=1542811075&b=WebKit&d=iPhone&o=iOS&sr=402x874&c=undefined&ua=Mozilla/5.0%20(iPhone;%20CPU%20iPhone%20OS%2018_0%20like%20Mac%20OS%20X)%20AppleWebKit/605.1.15%20(KHTML,%20like%20Gecko)%20Hotwire%20Native%20iOS;%20Turbo%20Native%20iOS%20bridge-components:%20[form%20menu%20overflow-menu]","req_cache_control":"","req_last_modified":"","req_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Hotwire Native iOS; Turbo Native iOS bridge-components: [form menu overflow-menu]"}

I'm also on MacOS Sequoia Public Beta.. This could potentially be a reason.

nvm. I upgraded the OS to developer beta (Version 15.2 Beta (24C5079e)) and the simulator started working again.. going to check remote on sim and then close this issue..


can't load package: package github.com/FiloSottile/mkcert

:~/mkcert-1.0.0$ sudo make
GOPATH="/.GOPATH" go install -v github.com/FiloSottile/mkcert
can't load package: package github.com/FiloSottile/mkcert: cannot find package "github.com/FiloSottile/mkcert" in any of:
/usr/lib/go-1.10/src/github.com/FiloSottile/mkcert (from $GOROOT)
/.GOPATH/src/github.com/FiloSottile/mkcert (from $GOPATH)
Makefile:5: recipe for target 'mkcert' failed
make: *** [mkcert] Error 1

It looks like you are using an old version of mkcert. The current one is 1.3.0 and does not have a Makefile. Please follow the installation instructions, and open a new issue if there is a problem with the current version.


Updated integration with Clarifai python SDK functions

Description :
Updated the functions with new Clarifai python SDK.
Enabled initialisation of Clarifai class with model URL.
Updated docs with new functions examples.

@baskaryan could you please check and review this ?
thanks !

@efriis could you please check and review this ?
thanks !

@hwchase17  Can I get a review please ?
TIA !

Hey @efriis ,
Thanks for raising concern. We are moving away from using old SDK (which extensively used gRPC) with new developer friendly SDK and also with our new clarifai version bumps <9.10.2 these old functions might not work as well. Hence the migration was indeed planned one.
So Kindly do the needful.

@mogith-pn could you fix the merge conflicts? I think some steps were also taken in #14215

Hi @efriis ,
Thanks for the fix , although this current PR will address the issue , since we have completely revamped the functions with our new clarifai-python SDK.


add slurm resources

Added Slurm resources for GST production pipeline
Tested: mysql://ensadmin:xxxxx@mysql-ens-genebuild-prod-1:4527/leanne_gene_symbol_classifier_production

Looks good.


Issue with vertical orientation in some EXR files

The following thread on the openexr-dev mailing list seems to imply that DJV may not be handling the vertical orientation of OpenEXR files correctly, and some images will appear flipped vertically compared to Nuke or exrdisplay.
https://lists.aswf.io/g/openexr-dev/topic/openexr_rgbaoutputfile_is/70222932?p=,,,20,0,0,0::recentpostdate%2Fsticky,,,20,2,0,70222932

Hi, this was broken with the older version of DJV (1.3), but is fixed in the new 2.0 versions. I've verified this with the example image from the linked thread.


Remove hard-coding to G-Cloud 6 of content (filters, service page).

A one-line fix that became a bit more than that...

work in preparation for G-Cloud 9 category filtering / go-live;
G-Cloud 4 and 5 services are to continue to use G-Cloud 6
content and manifests (new config controls this);
refactor code to get 'latest' iteration of a framework that
already existed for DOS frameworks;
tests are largely unaltered, we probably want to write new
ones relating to G-Cloud 9 at some point.

https://trello.com/c/x6ANlaCf/339-filtering-based-on-category

I agree it's not the prettiest, but I don't have any obviously better alternatives at all.  It definitely feels like some kind of step forward to get rid of the explicit 'g-cloud-6' load everywhere.
Cajole the tests into submission, add a couple of pertinent comments, and I can live with this.
We should definitely do something similar in the other frontend apps to dynamically pick on start-up which manifests to load.

I won't be pushing the related ticket into test for this PR, so I'm wondering what the best way to get some QA love would be. Make a new ticket and push that through to @andrewchong, or just discuss here?

I don't think it needs a new ticket - tell Andrew what the relevant things to check on preview are once it gets merged I reckon.

I think this looks good to go :+1:
In terms of QA just the functional tests all running should give us a decent level of confidence that nothing is broken, as all relevant content must be being loaded for them to pass.
But would be good to give Andrew a heads up - I guess what we need to check is that service pages for all old frameworks load, plus briefs can still be made and responded to?  That should cover it?


Reddit ux feedback

Changes proposed in this merge request:

Additions: Option to re-generate a recipe w/ current setting (To address: https://github.com/nnichols/brew-bot/issues/10)
Updates: Fix bug when count/weight limit for an ingredient type was set to 0, bump dependency versions
Deletions: Formerly generated recipes, as they're no posted at: https://wallbrew.com/tag/brew-bot/

Pre-merge Checklist

[ ] Write + run tests
[ ] Update documentation
[ ] Update CHANGELOG and increment version

This will now address: https://github.com/nnichols/brew-bot/issues/12


Fix private index field on Output

Removing private index field from output, changed how outputs are marshalled
Fixes https://github.com/libsv/go-bt/issues/52

Codecov Report

Merging #55 (2d22a2a) into master (c41f54a) will decrease coverage by 1.28%.
The diff coverage is 73.07%.

:exclamation: Current head 2d22a2a differs from pull request most recent head 9c2355c. Consider uploading reports for the commit 9c2355c to get more accurate results

@@            Coverage Diff             @@
##           master      #55      +/-   ##
==========================================
- Coverage   85.96%   84.67%   -1.29%
==========================================
  Files          26       26
  Lines        2871     2917      +46
==========================================
+ Hits         2468     2470       +2
- Misses        275      316      +41
- Partials      128      131       +3

Impacted Files
Coverage Δ

tx.go
79.37% <71.42%> (-0.91%)
:arrow_down:

output.go
51.51% <73.68%> (-35.79%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c41f54a...9c2355c. Read the comment docs.


[localstorage] build data visualization elements for local data

This would inform users about their own usage behavior as well as give us a way of showing them the data that's being kept about them.

Related: https://github.com/elmsln/lrnwebcomponents/pull/263

PR merged, time to play...


How to use custom backends?

Hi, I'm trying to implement an apple login. But in my project, Apple login is needed both on the web interface and in the mobile application. I set up an apple backend and it works great! But for two platforms, you need to use two different client_id. I saw advice on stackoverflow that two platforms can use multiple backends.
I added my custom backend following python-social-auth instructions but it didn't work.
AUTHENTICATION_BACKENDS = (
    'oauth2_provider.backends.OAuth2Backend',
    'django.contrib.auth.backends.ModelBackend',
    'drf_social_oauth2.backends.DjangoOAuth2',
    'social_core.backends.apple.AppleIdAuth', # Works fine
    '.api.v1.users.custom-auth-backends.AppleIdMobile.AppleIdMobile',  # Not working :(
)

SOCIAL_AUTH_APPLE_ID_CLIENT = 'com.xxxx.xxxx'
SOCIAL_AUTH_APPLE_ID_TEAM = 'xxxxxxxx'
SOCIAL_AUTH_APPLE_ID_KEY = 'xxxxxxxxxx'
SOCIAL_AUTH_APPLE_ID_SECRET = "xxxxxxxx"
SOCIAL_AUTH_APPLE_ID_SCOPE = ['email', 'name']
SOCIAL_AUTH_APPLE_ID_EMAIL_AS_USERNAME = False
# the difference is only in client_id
SOCIAL_AUTH_APPLE_ID_MOBILE_CLIENT = 'com.yyyyyy.yyyyy'
SOCIAL_AUTH_APPLE_ID_MOBILE_TEAM = SOCIAL_AUTH_APPLE_ID_TEAM
SOCIAL_AUTH_APPLE_ID_MOBILE_KEY = SOCIAL_AUTH_APPLE_ID_KEY
SOCIAL_AUTH_APPLE_ID_MOBILE_SECRET = SOCIAL_AUTH_APPLE_ID_SECRET
SOCIAL_AUTH_APPLE_ID_MOBILE_SCOPE = SOCIAL_AUTH_APPLE_ID_SCOPE
SOCIAL_AUTH_APPLE_ID_MOBILE_EMAIL_AS_USERNAME = SOCIAL_AUTH_APPLE_ID_EMAIL_AS_USERNAME

I implemented my custom backend like this:

I took the source code for entering via apple from social_core/backends
Created a new class and changed its name to apple-id-mobile

It turned out something like this:
class AppleIdMobile(BaseOAuth2):
    name = 'apple-id-mobile'

    JWK_URL = 'https://appleid.apple.com/auth/keys'
    AUTHORIZATION_URL = 'https://appleid.apple.com/auth/authorize'
    ACCESS_TOKEN_URL = 'https://appleid.apple.com/auth/token'
    ACCESS_TOKEN_METHOD = 'POST'
    RESPONSE_MODE = None
    ....

When I try to convert-token, I get error:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/social_core/backends/utils.py", line 50, in get_backend
return BACKENDSCACHE[name]
KeyError: 'apple-id-mobile'

Any ideas what could have gone wrong? Any help would be very helpful, thanks!

I specified the wrong classpath in AUTHENTICATION_BACKENDSPath should not start with a dot.
In my example, correct path is:
AUTHENTICATION_BACKENDS = (     ....     'api.v1.users.custom-auth-backends.AppleIdMobile.AppleIdMobile',  # Working :)     .... )
Hope this helps someone

Thank you for your contribution @Danirill


Update DockerfilePytorch and fix CICD files

add spark lib in pytorch env
add recsys support (lightgbm, xgboost, transformers)
base image change from oneapi-aikit to ubuntu
fix cicd scripts

@zigzagcai , I successfully built my docker using this new Dockerfile with one additional argument as below:
docker build -t e2eaiok-pytorch -f DockerfilePytorch . --build-arg http_proxy --build-arg https_proxy
I think we'd better add this info to README to guide users who also needs proxy when building docker, below is my BKM

config ~/.docker/config.json with proxy info

{
        ...
        "proxies": {
                "default": {
                        "httpProxy": "http://${proxy_host}:${proxy_port}",
                        "httpsProxy": "http://${proxy_host}:${proxy_port}",
                        "noProxy": "localhost,::1,<IP_ADDRESS>/8,<IP_ADDRESS>/8,<IP_ADDRESS>/12,<IP_ADDRESS>/16"
                }
        }
}

When call docker build, add below cmd when using proxy

--build-arg http_proxy --build-arg https_proxy
# Example:
docker build -t e2eaiok-pytorch -f DockerfilePytorch . --build-arg http_proxy --build-arg https_proxy

I have tested the refined PyTorch Dockerfile, and it works fine with DLRM

@xuechendi Please help to merge this PR. So that Bin can trigger DLRM tests with the updated Dockerfile.

@zigzagcai , I successfully built my docker using this new Dockerfile with one additional argument as below: docker build -t e2eaiok-pytorch -f DockerfilePytorch . --build-arg http_proxy --build-arg https_proxy
I think we'd better add this info to README to guide users who also needs proxy when building docker, below is my BKM

config ~/.docker/config.json with proxy info

{
        ...
        "proxies": {
                "default": {
                        "httpProxy": "http://${proxy_host}:${proxy_port}",
                        "httpsProxy": "http://${proxy_host}:${proxy_port}",
                        "noProxy": "localhost,::1,<IP_ADDRESS>/8,<IP_ADDRESS>/8,<IP_ADDRESS>/12,<IP_ADDRESS>/16"
                }
        }
}

When call docker build, add below cmd when using proxy

--build-arg http_proxy --build-arg https_proxy
# Example:
docker build -t e2eaiok-pytorch -f DockerfilePytorch . --build-arg http_proxy --build-arg https_proxy

Thanks. README.md has been updated.

@Jian-Zhang @xuechendi Please help to merge this PR, so that @csdingbin can trigger DLRM CICD tests with the updated Dockerfile.
Thanks!


Internationalization Research

As a global user of MyWebsite, I want the website to be inclusive and considerate of my specific language and accessibility needs, so that I can easily access and engage with the content offered, regardless of my location, language, or potential disabilities.

@bmarani @tawana0518  - Please review the issue and feel free to add/correct. we will discuss it further when we meet later evening today. thank you!

Based on the current version of the MyWebClass.org website, it appears that the website does not have support for internationalization out of the box. This means that in order to add support for internationalization, significant changes to the code and architecture of the website would likely be required.
To add internationalization to the website, some possible changes that would need to be made include:

Adding support for different languages throughout the website, such as translating text, images, and multimedia content.
Implementing a language switcher that allows users to select their preferred language.
Setting the language of the website based on the user's preferred language, as determined by their browser settings or the Accept-Language header.
These changes can be complex and time-consuming to implement, but they would be necessary in order to fully support internationalization on the website.

To add minimal internationalization to the website without breaking the existing functionality, I  haved followed these steps:
Update the lang attribute in the html tag in index.html file to support dynamic language changes:

...

**Created a JavaScript function in the main.js file to set the language attribute dynamically based on the user's language** preference:
function setLanguage() {
  // Get the user's preferred language
  const userLang = navigator.language || navigator.userLanguage;
// Check if the user's language is supported (in this example, we're checking for English)
const supportedLang = userLang.substring(0, 2).toLowerCase() === 'en' ? 'en' : 'en';
// Set the 'lang' attribute of the 'html' tag to the supported language
document.documentElement.setAttribute('lang', supportedLang);
}
Call the setLanguage() function when the DOM content is loaded:
document.addEventListener('DOMContentLoaded', () => {
setLanguage();
// ... Your other code
});
These changes will set the language attribute of the html tag to the supported language (in this example, English) when the page is loaded. Keep in mind that this example only checks for English language support. If you need to support more languages, you can modify the setLanguage function and add more conditions.
Note that this is just a simple example of setting the language attribute dynamically. For a more complete internationalization solution, you might want to use a library like i18next or implement a more advanced language detection and content translation mechanism.


Infinite scroll issue

Hi,
First, thank you for your work.
I am having trouble with infinite scroll implementation.
As it is, I get a Target #pagination not found in AJAX response.error logged, and the same page tow loaded again and again as I scroll…

        {{ collection from="journal" sort="date:desc" paginate="25" as="billet" }}

            {{ billet }}
                {{ partial src="brick" preset="{view:glide_presets | shuffle | first}" }}
            {{ /billet }}

            {{ paginate }}

            {{ /paginate }}

        {{ /collection }}

I am using Statamic to display entries, and the way the pagination works, the pagination loop has to be inside the collection entries loop. Or, I have noticed that in your example https://alpine-ajax.js.org/examples/infinite-scroll/, the pagination is outside the target table body where the new elements are loaded and added.
I suppose this explains that, perhaps? But I do not understand why the plugin could not find the #pagination, wherever it is in the markup?
If I duplicate the {{ collection }} loop, once with the entries, and once with the pagination, outside of the target, it kinda works, but feels "messy".
Any inputs/ideas?
Thanks in advance for your thoughts.

Thanks for reaching out Olivier,
The "#pagination not found" error does seem like a bug, so I'll look into that.
However, there is an issue with the way your markup is structured: Your pagination div is nested inside the section where content is going to be appended, so when a new page is requested, the #pagination on the new page will also get appended to your list of articles, so you'll end up with two divs having id="pagination" on the same page. Two elements with the same id is going to start causing problems.
If you can keep the #articles and #pagination containers separated, you can avoid duplicating the #pagination container on every requests. I think Statamic will allow you to build your template like this:
{{ collection from="journal" sort="date:desc" paginate="25" as="billet" }}

      {{ billet }}
          {{ partial src="brick" preset="{view:glide_presets | shuffle | first}" }}
      {{ /billet }}

  {{ paginate }}

  {{ /paginate }}
{{ /collection }}

Using x-arrange="append" gets a little wild, and I think Alpine AJAX could have some better error handling around these situations, so thanks for

Thank you! Of course! I can't believe I searched for convoluted solutions when it was plain and obvious.
FYI, the error is not there anymore, so it is maybe not a bug, just a consequence of the nested markup.
I had to tinker a bit to end with x-intersect:leave.once="$ajax('{{ next_page }}' but it seems to work fine, even if my browser and computer do not seem to like it much, and hyperventilate 😅
Thanks again.


[WIP]

testing

Codecov Report
Patch coverage has no change and project coverage change: +0.01 :tada:

Comparison is base (bde2f42) 86.25% compared to head (1c578dd) 86.27%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #64      +/-   ##
==========================================
+ Coverage   86.25%   86.27%   +0.01%
==========================================
  Files         199      199
  Lines       14795    14811      +16
==========================================
+ Hits        12762    12778      +16
  Misses       1732     1732
  Partials      301      301

see 5 files with indirect coverage changes

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


fixed typo in redux essential tutorial part-1-overview-concepts

name: :memo: Documentation Fix
about: Fixing a problem in an existing docs page
Checklist

[ ] Is there an existing issue for this PR?

I don't think so

[ ] Have the files been linted and formatted?

Yes

What docs page needs to be fixed?

Section:
Tutorials
Page:
part-1-overview-concepts

What is the problem?
Just a quick typo fix no problem
What changes does this PR make to fix the problem?
Changed the array value from d to b

Hiya, thanks for the PR.  Looking at it, I think the current contents are correct and not a typo.  Thanks anyway!

Hello mark, the content isn't correct because this  is what is in the docs:
const arr = ['a', 'b']
// In the same way, we can change the contents of this array
arr.push('c')
arr[1] = 'd'
and it is supposed to be arr[1] = 'b' and not 'd'
Best regards
On Fri, Apr 15, 2022 at 9:10 PM Mark Erikson @.***>
wrote:

Hiya, thanks for the PR. Looking at it, I think the current contents are
correct and not a typo. Thanks anyway!
—
Reply to this email directly, view it on GitHub
https://github.com/reduxjs/redux/pull/4329#issuecomment-1100364938, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AJPIRZ4F7TLHD6QWAAEDM7LVFHELLANCNFSM5TRFFT5A
.
You are receiving this because you authored the thread.Message ID:
@.***>

That's actually my point.  'b' is what's already in the array.  But, this snippet is showing how you can change what's in the array.  In other words, it's intentionally showing "this is how you can overwrite 'b' with 'd' instead".

Ohhhh, thank you for the clarification then, I appreciate it.
Warm regards
On Fri, Apr 15, 2022 at 9:15 PM Mark Erikson @.***>
wrote:

That's actually my point. 'b' is what's already in the array. But, this
snippet is showing how you can change what's in the array. In other
words, it's intentionally showing "this is how you can overwrite 'b' with
'd' instead".
—
Reply to this email directly, view it on GitHub
https://github.com/reduxjs/redux/pull/4329#issuecomment-1100368957, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AJPIRZ6TB7KAF25I7VFSYA3VFHE6RANCNFSM5TRFFT5A
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add google analytics support

Add config variable for google analytics tag and add same to the header.html
Update the readme to direct how to configure this

Ajiboye & Aiden


wellness section UI : use cards with different styles Updated(#43)

Name : Vishal malyan

Mam, sorry for the late reply Please change the label of this issue to hard as I have work hard and spent many days to fix it .
please change please....

Mam , please change the label of this issue to hard.
please...


bump version

Can you please bump version to v0.3 after the import fixes for logrus and match master branch?

Done. Thx appreciated your issue 👍


Support 2 lang en and fr

done in 89b3df2 see the following for doc

https://gohugo.io/content-management/multilingual/
https://gohugo.io/functions/abslangurl/

done in 89b3df2 see the following for doc

https://gohugo.io/content-management/multilingual/
https://gohugo.io/functions/abslangurl/


Inconsistent UI behavior on selecting Host Registration URL

In a new installation, when adding the first host, Rancher asks for the Host Registration URL. Selecting the text box for "Something Else" and beginning to type does not change the radio button from the first option to the second option.
Later, after installation, in Settings, when changing the Host Registration URL, entering text in the "Something Else" box does change the radio button.
I was familiar with the latter, so when creating a new Rancher env, I didn't notice that entering a custom host registration url in the box didn't actually change the setting.
Rancher Versions:
Server: 1.4.1
Docker Version: 1.12.6
OS and where are the hosts located? (cloud, bare metal, etc): EC2
**Setup Details: ** single node
Environment Type: (Cattle/Kubernetes/Swarm/Mesos) N/A
Steps to Reproduce:

create new rancher server
begin to add new host
when presented with Host Registration URL page, enter text in the text box for "Something Else"
note that the radio button does not change
save
go to Settings
note that the host registration url did not change
click in the text box and begin to type
note that the radio button changes and the warning appears

Expected behavior:

the radio button should change when text is entered in the box in all instances where this content is displayed.

Changed in 2.0 (possibly 1.x somewhere..)


Add reference to software being open source

Consider adding, were appropriate, a statement in regard to “open source.” I believe there is an expectation that the deliverable will open source software.

Added in 2.3 Deployment Plan


Brief hold left click when Ctrl+click in stash

Some D2R players have noticed that holding down left click longer is helpful when experiencing problems with control+leftclick not properly moving items to/from stash. I had this problem a couple of times with the bot and got "stash full" in log. I replaced the instant click with a short press/release hold.

Lol, cant belive this fixes the issue. Maybe you should also open a pr on the D2R repo...
thx


WinAppDriver Drag and Drop example for Java

I am having trouble with the drag and drop functionality. It looks like the element is being picked up but then not moved with the mouse as a result our tests fail.
Do you have an example code in java?

Hi @guloz,
There is a sample for this already on our C# code. .


Install Prosody from Prosody's official apt repo

Changed the Prosody tutorial to install Prosody from the official Prosody apt repo. The most up-to-date version of Prosody is available in this repo, which is important because 0.12.x negates the need to configure HTTP certificates seperately from XMPP service certificates.

Can this be merged?

Happy new year

This can be closed because I added this in my PR #263


Documentation theme has a small width for content

I get that having to wide text is bad, but so is having it too narrow :stuck_out_tongue:

agreed, might be worth tracking in sphinx-asdf as well

This and other documentation issues were fixed by #1142.


"Abandon publish" button on "Publishes" page

As the title says. It will greatly save someone's time searching for the transaction in the wallet

Same as https://github.com/lbryio/lbry-desktop/issues/3814#issuecomment-596785684, thanks for filing!


Deployment

Deployment
User Story
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I visit the website using the URL,
THEN I can access my website from any browser

completed task of deploying prework study guide to GitHub Pages


Filter build result by trigger

The connector allows you to post on Teams the result of each build. However it isn't possible to filter them based on the trigger. Therefore the channel can be flooded due to PR builds. Would it be possible to filter by trigger (that way we can show only Individual CI and check when the master is broken). Thanks

Hi,
Now we have the Azure Pipelines app built for Microsoft Teams to easily monitor the events for your pipelines. Hope this will solve your problem.
Thanks

Hi,
Azure Pipelines with Teams app don’t have support to filter the build notifications based on a trigger at the moment.
Thanks


To remove kth index from a string in python

🚀 Feature
(A clear and concise description of what the feature is.)
To remove the kth index form a string and if not then returns the complete string
Have you read the Contributing Guidelines on Pull Requests?
Yes

/assign


Return error instead of logging and continuing in runLoop()

I noticed when running pro-bing with a condition that triggers an error such as in a "no route to host" scenario that the run loop logs and continues the loop. This can be misleading to callers and should probably return an error. There are two sections in runLoop() with FIXME comments that explain this behavior. It would be more correct to return an error here.
This PR replaces logger.Fatalf() with a return of a wrapped error to remediate this. We use %w to wrap the error so callers can unwrap and inspect the errors with something like:
if err := pinger.RunWithContext(ctx); err != nil {
    if neterr, ok := errors.Unwrap(err).(*net.OpError); ok {
        // do something interesting here with the error
    }
}

""no route to host"" should not stop the loop.

Lastly I apologize for the high number of PRs the past few days. My company has an internal application that uses a fork of go-ping/ping with internal patches from about 5 years ago. Given go-ping is no longer maintained we want to pull in pro-bing with a number of our internal patches upstreamed, at least the ones that make sense to share for general use. Thanks for your time reviewing these, I appreciate it.

More patches are great, thanks for contributing.

Normal /usr/bin/ping also returns this error without stopping the loop

Right, that makes sense but i need a way to signal that this occurs in the ping response. Its obvious via stdout but not in the struct returned by a pinger. I need to be able to distinguish that 100% packet loss was due to some underlying condition reported by linux and not a path problem. Are you open to adding a boolean to selectively enable returning an error? I'll submit another commit that does this and you can let me know what you think of the implementation. Thanks!

Sounds like we need another packet handler function registry. Something like:
if handler := p.OnPacketError; handler != nil {
	handler()
}

I did this: https://github.com/prometheus-community/pro-bing/pull/40/commits/7268dfe273a5496cd328971cb8ebdbd75a7ec667
... but seeing your latest comment perhaps that is a better approach. Happy to go that route if its preferable.

I need to think about this, and how other error cases are handled.

One brief thought, say we add something like this to the pinger:
OnPacketError func(*Packet, error)

One problem with this is it really only works for sending packets as we do not have packet info on the receiving side if we hit an error after icmp.ParseMessage() (for example).
We could also do this to make it more generic to both sending and receiving:
OnPacketError func(error)

but then we miss out on the packet details in the case where we have that info.
Maybe a handler for sending and another for receiving makes more sense?
OnSendError func(*Packet, error)
OnReceiveError func(error)

For my use case, in either one of these functions I could call pinger.Stop() in a closure when i hit an error which meets my needs.

Proposing #44 as an alternative to this PR based on comments from recent discussion

Closing in favor of #44


Difference between Post.updated_at, Post.original_updated_at?

i can guess about updated_at( seems like activerecord default.
what is Post.original_updated_at for?

It's not necessary anymore...
We can remove that column :put_litter_in_its_place:
We needs this column to sync some posts from another application at a time in the past.

thanks! 😉


Add the config necessary in polybar to readme.md

I couldn't find the wiki when I was trying to install the script on my system, so I only add the module config to the README.md

The wiki is just a section of the repo in the links along the top:


Don't hard-code upstream DNS resolvers

Applications should not hard-code their own DNS resolvers; they should use the configuration provided by the network (via DHCP) or by the user, perhaps with an overridable default if no other option exists.  This is an anti-pattern:
https://github.com/home-assistant/plugin-dns/blob/be7b7e7fc4460ef31483882e743ba4e3b62fe8c4/rootfs/usr/share/tempio/corefile#L30

This has been discussed in various places in the past.
https://github.com/home-assistant/plugin-dns/issues/22#issuecomment-769916961
The project is not changing this.

Would it be possible to make it configurable so that advanced users could disable this behavior?
I do not want to start a fundamental discussion, as I read a lot and I see that there are two or more views to this point.
But what is the technical reason not doing so?
I'm happy to support with that but unfortunately I do not have any experience in coding so I'm not able to raise a pull request.
Maybe some config in customize.yaml like:
dns-fallback: false

or
dns-fallback: true
dns-fallback-servers: tls://<IP_ADDRESS>


Idea: Output <link rel=canonical> in HTML, pointing to typescriptlang.org

Improvement Idea: Output <link rel=canonical> in HTML, pointing to typescriptlang.org
Why: It seems that TS website is also served under staging-typescript.org, and that website too gets indexed by search engines. For some queries, it's even higher than typescriptlang.org. This duplication is not really good, can lead to messy bookmarks etc.
Example with DuckDuckGo:

<link rel=canonical> is a canonical solution to this problem, to help the bots deduplicate content.
For example, https://www.staging-typescript.org/docs/handbook/declaration-files/dts-from-js.html should have <link rel="canonical" href="https://www.typsescriptlang.org/docs/handbook/declaration-files/dts-from-js.html"> in <head>.
Alternative ideas:
Create valid https://www.staging-typescript.org/robots.txt which prevents crawling the staging page.

Staging URLs get this set, which should do that:

But I'm open to adding a canonical ref in there too 👍🏻


Webauthn allows me to register my phone as security key but not login with it

Describe the bug
Webauthn allows me to register my phone as security key but not login with it
Expected behavior
After closing the native is security key prompt, A chrome prompt like this should pop up and allows me to select my phone to use as a security key

To Reproduce
Add a android phone as a security key by visiting your profile and clicking add security key and follow the expected behavior
Then logout and try to login with the same expected behaviour
My Platform
Windows 10 and chrome version Version 110.0.5481.177 (Official Build) (64-bit)
Additional context
None

I think I can reproduce this: the only option that it presents is for a security key, regardless of whether a security key is enabled or not, correct?

I think #13076 should fix this.

Is it out

Not yet, that PR needs merged first.


Index out of range exception for paired end reads

I was trying to run MA on paired end short reads with:
$ maCMD -x dbs/ma.json -p Illumina_Paired -i datasets/short_read.qc_1.fq -m datasets/short_read.qc_2.fq -o outputs/metax.pe.sam

But I got the error below:
starting alignment.
Drop exception (different thread threw already): Index out of range
Drop exception (different thread threw already): Index out of range
Drop exception (different thread threw already): Index out of range
Throw exception
Error:
Index out of range

It was fine with single end file or comma separated list of files.

Your command looks like it should work just fine.

Without that, I won't be able to figure out what causes the error.
My email is<EMAIL_ADDRESS>

I used the version from bioconda:
ma   1.1.1  py37h8270d21_1  bioconda

I have send you the minimal example PE reads files per email.

To summarize our e-mail correspondence:
I couldn't reproduce the error on my end, but version 1.1.2 (https://github.com/ITBE-Lab/MA/commit/96ebb636f3828b83a35fb52c76aeb7852c37198b) seems to resolve the problem.
Therefore, I'll close this issue for now.


Poor error message when the folder contains bad CSVs

Describe the bug
When the paths in the connection config point to a folder that contains one/more invalid/bad CSV files, the plugin returns the following error:
failed to plugin initialise plugin 'steampipe-plugin-csv': TableMapFunc 'PluginTables' had unhandled error: parse error on line 1, column 25: bare " in non-quoted-field

It is hard to understand what's actually wrong from this message IMO.
Steampipe version (steampipe -v)
Example: v0.9.0-rc.0
Plugin version (steampipe plugin list)
Example: v0.3.0
To reproduce
Add a bad CSV file(may contain a bare " somewhere ) to a folder, and add the path to the folder in the connection config.
Query a good CSV.
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

Happens with me as well.
Attaching CSV which are crashing the plugin
sample.csv
Happens with empty CSV files as well - but github won't let me upload empty files :-(


Presets for golf paths and cartpaths and driving ranges

Adds presets to correctly tag golf paths.
golf: cartpath is intended for the small, single vehicle electric or gas powered golf carts on an actual golf course.  North American/USA style golf.
golf: path is intended for walking only paths, typically in more traditional golf where walking is more common.  Intended for the connecting routes between holes on an actual golf course.
Related issue: https://github.com/openstreetmap/iD/issues/5859
Looking for feedback on correctness and how to validate my changes.

Also added a driving range preset since it's the 10th most common golf tag and has a wiki entry.

@bhousel Thanks!  Turns out that json linters can't catch : inside of the quotes.  :)
As far as the tags, I got them from here:
https://taginfo.openstreetmap.org/keys/golf#values
Cartpath and Path are 11 and 13th most common.  If the tags are accepted here, I'll look into what else is required to standardize the in-use tags and will at minimum complete the wiki entries with suitability licensed example photos.
My motivation is that I'm using the rest of the golf: tags for metadata analysis.  What I'd like to see is the standard for "natural walking trails", which I understand to be highway: footway (walking only, not wide enough to be a track or intended for vehicles) and highway: path (with golfcart designated as suggested).
The idea being that there is a standard tag for rendering and the golf: tags seem to be "extras" across the board.  For example, they are mostly landuse: grass, but that grass happens to be a golf:green.  With this in mind, I tried to find the most suitable walking paths and small vehicle paths and use add the "extra" golf tags.
Specifically, I'm trying to make it clear which paths are part of the design of golfcourses vs merely near a golf course.  There may be a hiking trail near a golf course, but a path architected to go from golf green to the following tee box isn't for general use and is a crucial part of the golf course.
Please let me know if the taginfo is valid and acceptable proof of use with my understanding of the golf: tags in general.
Thank you for reviewing.  Will I be able to test these changes if I follow through with the npm install?  I'd like to see that the icons, descriptions, and nesting are all correct.

Turns out that json linters can't catch : inside of the quotes. :)

Yes, it's not strictly an error - you can put anything in the quotes.

As far as the tags, I got them from here:
https://taginfo.openstreetmap.org/keys/golf#values
Cartpath and Path are 11 and 13th most common. If the tags are accepted here, I'll look into what else is required to standardize the in-use tags and will at minimum complete the wiki entries with suitability licensed example photos.

Sure but a few hundred uses is not really established:

You can use them if you really want, but again my strong recommendation is to subtag under the highway=* stuff, since that is a more normal way of inventing tags.
I'd do this:
highway=path+path=golf
highway=track+track=golf+tracktype=grade1
This looks strange to me:
highway=path+golf=path
highway=track+golf=cartpath

Thank you for reviewing. Will I be able to test these changes if I follow through with the npm install? I'd like to see that the icons, descriptions, and nesting are all correct.

Yes!

@bhousel Can you comment if the wiki is out of date?
https://wiki.openstreetmap.org/wiki/Key:highway#Paths
Most golf cart paths are not wide enough for tractors or jeeps, so this suggests that "path" should be used.  And while "path" suits both the walking and golf cart paths, now there isn't a clear distinction.
I would say that walking paths most resemble hiking paths, with maybe nicer grass and less dirt.
So the two possibilities I see:

Use path for both presets, but set "golf_cart": "designated" for the cart paths.
Use path for golf carts, use footpath for the walking trails.

In either case, should "golf_cart": "designated" be included?

@bhousel I updated this in the only way I could find that avoids connectivity errors in my editor.  I did try everything out locally and it's exactly what I wanted in terms of the UI and labeling.  Very clear and easy to search!
Ultimately, our reasoning for these paths is that they are not highways or routing paths - you can't really take them on route from a point A to a point B.  They are more descriptive pieces of the map.  Even within a golf course, there are often segments and routes that aren't for routing but just for traffic management.  For example, there may be no clear path between a tee and a green because you go to where your ball is, not in a consistent path.  Routing in this instance is out of scope for Open Street Map, it's not necessary to always navigate from "Hole 15 to Hole 7".  For this reasoning, we're proposing to only use golf: cartpath and golf: path in these situations, primarily to avoid connectivity errors.
In situations where the routes are NOT intended solely for the game of golf, then the usual highway rules will take precedent.  For example, a theme park has "golf cart paths" that its employees and emergency personnel use to travel in areas off limits to the guests.  These are NOT golf: cartpaths, but are the usual highway: path or highway:track.  This will need to be a clear distinction on the wiki pages.
For situations where both situations apply: example: a retirement community built around a golf course where the course's cart paths serve the purpose for the game as well as transportation routes for the residents, then the most appropriate tagging will be highway path/track with the golf:cartpath tag added.
Do you think these cases should be handled in the wiki?  Or should we add another preset or two here so that these difficult cases are handled better for users?
Maybe the set in order of Game -> Transportation:
Golf Walking Path (golf: path)
Golf Cartpath (golf: cartpath)
Golf Cartpath Multi Purpose (highway: track + golf:cartpath ; expected to connect)
(and I think the final case for non-Golf game cartpaths would be for generic Path or generic Track)
The last open item is that there's obviously no rendering for these.  Is there a secondary tag available that will provide clear rendering?  If not, I will work with the rendering project to add rendering for these  "new" tags.

For what it's worth, I prototyped a first pass at this idea and I think it works well.  It preserves the usage of highway:track for the larger, multipurpose golf cart paths, while supporting the game "golf:cartpath" tag.
I looked for a quick example and found this area.  Here you can see a Golf Cartpath transition into a special portion of the road where residents drive their own golf carts, even when they are not playing the game.  After a while, the highway turns back into a Golf Cartpath and is only used/intended when actually playing.

Golf Cartpath Multi Purpose (highway: track + golf:cartpath ; expected to connect)

Could you use highway=service for this instead of highway=track?   highway=track is really for roads which go off into the wilderness and might be dangerous to drive on because of obstacles or whatever.
otherwise looks good 👍

The last open item is that there's obviously no rendering for these. Is there a secondary tag available that will provide clear rendering? If not, I will work with the rendering project to add rendering for these "new" tags.

No, sorry.. We usually don't consider whether or not a feature will be rendered on the main osm-carto style, because people can make their own renderings if they want to, and the osm-carto project moves kind of slowly (some of this is due to technical limitations of how they render - they need to change their database schema to support new tags sometimes).

@bhousel Service sounds like a good fit!  Thanks!
OK, all updated.  Do I need to remove data/taginfo from the PR?

OK, all updated. Do I need to remove data/taginfo from the PR?

Thanks @chadrockey looks good!
No need to change the taginfo stuff, I will merge and rebuild everything, and make some updates to the .css files so the paths render nicely  👍

@quincylvania Do you have a timeline of when this might go live?  I'd like to make a video tutorial but don't want to do so until these new features are in.  I could record from a local instance of iD, so I might do that.
Thanks!

@chadrockey We're aiming for a release later this week! Though it can take another day or so until it's live on openstreetmap.org


Include MDLC in log4j renderer

Current the Log4JXMLEvent Layout Renderer includes the content of MappedDiagnosticsContext dictionary, but not MappedDiagnosticsLogicalContext.
This PR adds the content of MappedDiagnosticsLogicalContext too. Unit test is included.
My code uses the same flag includeMdc as MappedDiagnosticsContext, I'm not sure if a separate flag includeMdlc is required.

Codecov Report

Merging #2078 into master will decrease coverage by <1%.
The diff coverage is 80%.

@@           Coverage Diff           @@
##           master   #2078    +/-   ##
=======================================
- Coverage      81%     81%   -<1%
=======================================
  Files         289     289
  Lines       19908   19918    +10
  Branches     2354    2355     +1
=======================================
+ Hits        16199   16205     +6
- Misses       3112    3114     +2
- Partials      597     599     +2

Please add a new flag as MDC<>mdlc. Thanks!

OK, will do. Is ok to set it to true by default, or do you think it's a breaking change?

Skip my last question, without the #if the builds breaks. Fixed.

Thanks!
Could you please update the wiki? Please add "introduced in NLog 4.4.8”

Done, I've added includeMdlc in the wiki.
Thanks for accepting my PR.

pushing now 4.4.8!

https://www.nuget.org/packages/NLog/4.4.8


claim: printf

Be sure to git pull as soon as you can.  Some restructuring has been done to the layout.


Highlight missing Kourend Library books in side panel

Adds feature request #10418.
Here is a screenshot of this code in action:

It highlights the requested book green, books in your inventory white, and books not in your inventory red.
I could easily add a togglable config setting for whether to enable the coloring or not, but I'm not sure if that's necessary. The coloring does make the panel look a little busier but it's not that bad IMO.

Awesome, thank you for the quick work in implementing this!

I don't like the red. It would probably be better to dim the color of books in your inventory and keep things that are missing full white.


Egg Dropping Problem - Fix for Issue #5144

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
There is a building of N floors and you have K eggs. How many minimum number of attempts it would take to find the first floor f, where any egg dropped at a floor higher than f will break, and any egg dropped at or below floor f will not break.
Related Issues or Pull Requests
Fix for Issue #5144

@ankitaggarwal23 I will create another PR as this has conflicts with the base branch.


[WIP] asap-alchemy prep alchemize

We want to be able to run alchemy for P3 but it’s HtL so chemistry is much more diverse. We want to be able to find the maximum number of sub-networks we can run from a set like e.g. https://asap.postera.ai/molecule-set/7eaecca8-25b9-4e1e-9a2f-87336fc9d791?viewer=7eaecca8-25b9-4e1e-9a2f-87336fc9d791
and then generate SDF files (for now) for the clusters so that we can feed each of those into asap-alchemy prep run.
Developers certificate of origin

[x] I certify that this contribution is covered by the MIT license as defined in our LICENSE and adheres to the Developer Certificate of Origin.

this is already quite fast on an M2 macbook pro:

and should scale linearly. We'll need to implement multiprocessing if we ever go to sets of thousands.

OK - now with SDF writing enabled:

We should discuss how we're going to actually implement this thing, currently it's way too monolithic; a few of the methods should probably be migrated elsewhere. Also still need to write tests.

tested this on a larger set, still runs nicely on only a single processor:

parking for now, will figure out where this should live after my leave.

@hmacdope this is quite complete now - can you have a look through and if you're feeling it perhaps add multiprocessing that works correctly with tqdm in alchemize.rescue_outsiders()?

good catch on mac1! That's definitely not intended.


As a user, I should be able to tell which form fields are required.

When adding a dataset, it's not clear that the Title and Files fields are required until validation fails. All forms should clearly indicate which fields are required.

Title is required, Description is not.

PR created: https://github.com/codeforamerica/classifyr/pull/99


Add pdo and pdo_mysql extensions to php

I have been using your fork for a while, but sometimes I miss your updates since I have been using your base and just adding the two extra php extensions I need.
It would be easier if this was just part of your docker image, if you care to oblige me.
Thanks,
Jeff

Hi @jruby411,
Thank you for your pull request adding the php82-pdo and php82-pdo_mysql extensions. I appreciate your contribution and am glad to incorporate these changes into the Docker image.
Feel free to send more suggestions or improvements anytime. Your feedback is valuable and helps make the project better for everyone.
Thanks again!
Best,
Ernesto


[TC-TSTAT-2.1] Some Thermostat Attributes are missing from YAML framework

Summary :
As per Spec there are 49 attributes which supports Thermostat Cluster but when made a run 22 attributes are missing in YAML framework.
Spec Screenshot and Log file :

[TSTAT_2_1.txt](https://github

.com/project-chip/connectedhomeip/files/7497106/TSTAT_2_1.txt)

Only the attributes currently supported by the thermostat cluster are in the controller zap file.  The ones related to scheduling are present as scheduling implementation had been started, but were unable to be completed and tested due to missing functionality in the SDK (lists and structs).

@chrisbeach59 still observing attribute missing error in TC-TSTAT-2.1 Scripts,please find spec screenshot and error logs
Error screenshot :

Spec screenshot :