attribute((constructor)) is not supported in MSVC

https://github.com/google/perfetto/blob/372573604a3cebf15dd79edcdf27e0a5e1e91fdf/src/base/utils.cc#L86
When you compile Perfetto with MSVC (a supported scenario), the build fails on this line because _attribute((constructor)) is a GCC/Clang-ism, and not supported on MSVC.
Compiling with MSVC, with args.gn set to:
# Set build arguments here. See `gn help buildargs`.
is_debug = true
is_clang = false
enable_perfetto_x64_cpu_opt = true

... gives the following error on Windows:
FAILED: obj/src/base/base.utils.obj
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe /nologo /showIncludes /FC -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -DNOMINMAX -D_HAS_EXCEPTIONS=0 -DWIN32_LEAN_AND_MEAN -DPERFETTO_IMPLEMENTATION "-IC:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/include" "-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.22621.0/ucrt" "-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.22621.0/um" "-IC:/Program Files (x86)/Windows Kits/10/Include/10.0.22621.0/shared" -I../.. -I../../src/profiling/memory/include -I../../include -Igen/build_config -Igen /Od /bigobj /Gy /FS /utf-8 /WX /Z7 /W2 /wd4244 /wd4267 /permissive- /GR- /c ../../src/base/utils.cc /Foobj/src/base/base.utils.obj /Fd"obj/src/base/base_c.pdb"
D:\pseudodifferentialframetimeanalyzer\lib\perfetto\src\base\utils.cc(81): error C2059: syntax error: ':'
D:\pseudodifferentialframetimeanalyzer\lib\perfetto\src\base\utils.cc(87): error C2182: '__attribute__': illegal use of type 'void'
D:\pseudodifferentialframetimeanalyzer\lib\perfetto\src\base\utils.cc(87): error C2065: 'constructor': undeclared identifier
D:\pseudodifferentialframetimeanalyzer\lib\perfetto\src\base\utils.cc(88): error C2146: syntax error: missing ';' before identifier 'CheckCpuOptimizations'
D:\pseudodifferentialframetimeanalyzer\lib\perfetto\src\base\utils.cc(88): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
D:\pseudodifferentialframetimeanalyzer\lib\perfetto\src\base\utils.cc(90): error C2059: syntax error: ':'
D:\pseudodifferentialframetimeanalyzer\lib\perfetto\src\base\utils.cc(107): error C2059: syntax error: ':'
D:\pseudodifferentialframetimeanalyzer\lib\perfetto\src\base\utils.cc(124): warning C4508: '`anonymous-namespace'::CheckCpuOptimizations': function should return a value; 'void' return type assumed
[35/850] compile ../../src/ipc/protoc_plugin/ipc_plugin.cc
ninja: build stopped: subcommand failed.

A workaround would be appreciated.

Hey :)
Happy to ifdef out these attributes for MSVC but replicating the same behaviour as Clang seems non-trivial: https://stackoverflow.com/a/2390626
Let us know if you have any ideas otherwise (I don't know much about MSVC) but for now I'll just do that.

I think an alternative could be using a globally initialized variable, something like:
bool g_whatever  = [] {
  uint32_t eax = 0, ebx = 0, ecx = 0, edx = 0;
  ...
  ...
  return true;
}();

might be worth a try

I have a possible fix that enables the same behavior and keeps the intent, and also uses intrinsics instead of inline asm (which isn't easily supported on x64/MSVC without dropping to MASM).
namespace {

#if PERFETTO_BUILDFLAG(PERFETTO_X64_CPU_OPT)

// If we are building with -msse4 check that the CPU actually supports it.
// This file must be kept in sync with gn/standalone/BUILD.gn.
#ifdef _MSC_VER
#include <intrin.h>

union cpuid_registers {
  int result[4];
  struct {
    uint32_t eax;
    uint32_t ebx;
    uint32_t ecx;
    uint32_t edx;
  } r;
};

void PERFETTO_EXPORT_COMPONENT
CheckCpuOptimizations() {
  cpuid_registers cpuid;
  __cpuid(cpuid.result, 1);

  static constexpr uint64_t xcr0_xmm_mask = 0x2u;
  static constexpr uint64_t xcr0_ymm_mask = 0x4u;
  static constexpr uint64_t xcr0_avx_mask = xcr0_xmm_mask | xcr0_ymm_mask;

  const bool have_popcnt = cpuid.r.ecx & 0x800000000u; // Bit 23
  const bool have_sse4_2 = cpuid.r.ecx & 0x100000000u; // Bit 20
  const bool have_avx =
      // Does the OS save/restore XMM and YMM state?
      (cpuid.r.ecx & 0x08000000000u) &&  // OS support XGETBV - bit 27
      (cpuid.r.ecx & 0x10000000000u) &&  // AVX extensions - bit 28
      ((__readcr0() & xcr0_avx_mask) == xcr0_avx_mask);

  // Get level 7 features (eax = 7 and ecx= 0), to check for AVX2 support.
  // (See Intel 64 and IA-32 Architectures Software Developer's Manual
  //  Volume 2A: Instruction Set Reference, A-M CPUID).
  __cpuid(cpuid.result, 7);

  const bool have_avx2 = have_avx && (cpuid.r.ebx & 0x20u); // Bit 5
  const bool have_bmi = (cpuid.r.ebx & 0x8u); // Bit 3
  const bool have_bmi2 = (cpuid.r.ebx & 0x100); // Bit 8

  if (!have_sse4_2 || !have_popcnt || !have_avx2 || !have_bmi || !have_bmi2) {
    fprintf(
        stderr,
        "This executable requires a x86_64 cpu that supports SSE4.2, BMI2 and "
        "AVX2.\n"
#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
        "On MacOS, this might be caused by running x86_64 binaries on arm64.\n"
        "See https://github.com/google/perfetto/issues/294 for more.\n"
#endif
        "Rebuild with enable_perfetto_x64_cpu_opt=false.\n");
    _exit(126);
  }
}

struct static_init_cpu_check {
    static_init_cpu_check() {
      CheckCpuOptimizations();
    }
};

static static_init_cpu_check static_cpu_check();

#else // !_MSC_VER

// Preserve the %rbx register via %rdi to work around a clang bug
// https://bugs.llvm.org/show_bug.cgi?id=17907 (%rbx in an output constraint
// is not considered a clobbered register).
#define PERFETTO_GETCPUID(a, b, c, d, a_inp, c_inp) \
  asm("mov %%rbx, %%rdi\n"                          \
      "cpuid\n"                                     \
      "xchg %%rdi, %%rbx\n"                         \
      : "=a"(a), "=D"(b), "=c"(c), "=d"(d)          \
      : "a"(a_inp), "2"(c_inp))

uint32_t GetXCR0EAX() {
  uint32_t eax = 0, edx = 0;
  asm("xgetbv" : "=a"(eax), "=d"(edx) : "c"(0));
  return eax;
}

// If we are building with -msse4 check that the CPU actually supports it.
// This file must be kept in sync with gn/standalone/BUILD.gn.
void PERFETTO_EXPORT_COMPONENT __attribute__((constructor))
CheckCpuOptimizations() {
  uint32_t eax = 0, ebx = 0, ecx = 0, edx = 0;
  PERFETTO_GETCPUID(eax, ebx, ecx, edx, 1, 0);

  static constexpr uint64_t xcr0_xmm_mask = 0x2;
  static constexpr uint64_t xcr0_ymm_mask = 0x4;
  static constexpr uint64_t xcr0_avx_mask = xcr0_xmm_mask | xcr0_ymm_mask;

  const bool have_popcnt = ecx & (1u << 23);
  const bool have_sse4_2 = ecx & (1u << 20);
  const bool have_avx =
      // Does the OS save/restore XMM and YMM state?
      (ecx & (1u << 27)) &&  // OS support XGETBV.
      (ecx & (1u << 28)) &&  // AVX supported in hardware
      ((GetXCR0EAX() & xcr0_avx_mask) == xcr0_avx_mask);

  // Get level 7 features (eax = 7 and ecx= 0), to check for AVX2 support.
  // (See Intel 64 and IA-32 Architectures Software Developer's Manual
  //  Volume 2A: Instruction Set Reference, A-M CPUID).
  PERFETTO_GETCPUID(eax, ebx, ecx, edx, 7, 0);
  const bool have_avx2 = have_avx && ((ebx >> 5) & 0x1);
  const bool have_bmi = (ebx >> 3) & 0x1;
  const bool have_bmi2 = (ebx >> 8) & 0x1;

  if (!have_sse4_2 || !have_popcnt || !have_avx2 || !have_bmi || !have_bmi2) {
    fprintf(
        stderr,
        "This executable requires a x86_64 cpu that supports SSE4.2, BMI2 and "
        "AVX2.\n"
#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
        "On MacOS, this might be caused by running x86_64 binaries on arm64.\n"
        "See https://github.com/google/perfetto/issues/294 for more.\n"
#endif
        "Rebuild with enable_perfetto_x64_cpu_opt=false.\n");
    _exit(126);
  }
}
#endif

#endif

}  // namespace

If we go down that route I'd ask we factor out the divergent code that uses intrinsics and keep the common code together.
I don't want to have to maintain 2 near copies of the same logic.
Feel free to drop a patch for it (see https://perfetto.dev/docs/contributing/getting-started).

Maybe it would be worth convincing Microsoft to just add support for __attribute__((constructor)) to MSVC? It seems like that would benefit a lot of projects.

I mean that would be great but we have no power to convince the MSVC team :)

Well, a default response to requests like this on the official Visual Studio forums seems to be lack interest. You might actually have more power than you think, by just letting your interest be known.


Hyphenated last names not escaped properly (or at all) in BibTeX

[x] I have verified in the Zotero addons screen that I have the latest release of BBT (https://github.com/retorquere/zotero-better-bibtex/releases/latest) and Zotero installed
[x] I am posting a single question, bug or feature request
[x] I have included a descriptive subject of the problem
[x] I am available for follow-up questions and testing

I have a hyphenated last name. I.e., my name looks like "Firstname Last-Name". I believe that the proper way to handle such names in BibTeX is
@inproceedings{LasPaperWhose,
  title = {A paper whose author's last name is hyphenated},
  author = {Last{-}Name, Firstname}
}

(Note the curly braces around the hyphen.) At least, this is what I've always done. I've also seen the entire last name surrounded in curly braces, which seems fine too, though maybe this causes issues in more complicated cases.
Currently, my name is entered as [Last-Name][Firstname] in Zotero, and Better BibTeX outputs the following:
@inproceedings{LasPaperWhose,
  title = {A paper whose author's last name is hyphenated},
  author = {Last-Name, Firstname}
}

I.e., it does not put any curly braces to account for the hyphen. The issue with this is that BibTeX treats me as though I am two people! I.e., instead of the citation rendering as [L] or [Last] or whatever, it renders as [LN], as though there is an author whose last name is "Last" and another whose last name is "Name".
Here's a minimal running example to make sure we're on the same page. With the Better BibTeX output above, the following code
\documentclass[11pt]{article}

\begin{document}

\cite{LasPaperWhose}

\bibliographystyle{alpha}
\bibliography{HyphenatedName}

\end{document}

renders as

[LN]
References
[LN] Firstname Last-Name. A paper whose author's last name is hyphen-
ated.

With the correct BibTeX that escapes the hyphen, it renders as

[Las]
References
[Las] Firstname Last-Name. A paper whose author's last name is hyphen-
ated.

(Sorry if this is overly detailed. I know that most of these are far too vague, so I'm trying to avoid that pitfall.)
I tried a few alternatives like [Last{-}Name][Firstname], but I couldn't find anything that rendered properly. I tried searching for others with the same issue that had workarounds, but the closest I found was https://github.com/retorquere/zotero-better-bibtex/issues/565, which makes it seem as though Better BibTeX is expected to handle this itself.
I am exporting as BibTeX. I have the latest version. I submitted an error with Report ID YN457R2G.
Thank you for your time and for making a great product :).

I don't know whether it's the preferred method; I know (perhaps surprisingly) little about bib(la)tex, which is why I hailed @njbart, who know a lot about them.
The quotes are a standard feature of zotero (it will also work in word eg), but I don't know where it's documented.

Ok... this fix has a very annoying problem. It breaks when I add the #LaTeX tag to the document (which as I understand it is necessary when the title contains TeX). Is  preferred to using #LaTeX, since #LaTeX seems to be a more "global" tag that affects more fields.

#LaTeX affects almost all fields. If you use #LaTeX, you can just use Last{-}Name in the lastname field, BTW.
There's no real categorical preference between #LaTeX or <pre>. If quoting (without #LaTeX) doesn't do the right thing, I could look into fixing it, but I'd have to ask @njbarI what's best to do.

Wrapping a string in Zotero’s last name field in double quotes should be used for one purpose only: influencing Zotero’s parsing decisions if the string starts with a lower-case element, i.e., distinguishing von Braun (to be parsed as particle + last name) from "von Braun" (one multi-part last name).
Since Zotero (and BBT) have no difficulty parsing Last-Name as one multi-part last name, double quotes shouldn’t have to be used in Zotero in such cases.
What BBT could do is to add curly braces around either just the hyphen(s), or the complete (fully parsed) last name if it contains hyphen(s). Note that this seems to be necessary for bibtex only; biblatex, using its alphabetic style, does output a [Las18] label in the absence of any additional hyphens.

But that would be the fully parsed last name, excluding particles, right?

@Hyphenated-Name can you right-click an actual reference you have that has such a name and send a BBT error report? Then I can include it as a test case.

But that would be the fully parsed last name, excluding particles, right?

Right.

:robot: this is your friendly neighborhood build bot announcing test build <IP_ADDRESS>84.issue-976 ("test cases for #976").

6884 contains the fix (for BibTeX, not BibLaTeX). I'd appreciate feedback on whether that solves the issue for you.

Thanks so much for the incredibly rapid fix! :)
It looks good on first inspection. It's a little annoying for me that it doesn't play nicely with the #LaTeX tag, but maybe that's a feature and not a bug. I'll try it out more extensively when I have more time, and I'll let you know if I find any issues.

This is definitely a feature. #LaTeX means "yo BBT, get out of my way, I got this, I'll put raw latex code everywhere". If you don't want to type raw latex everywhere in that reference, don't use #LaTeX. You  can think of #LaTeX as wrapping every field in Zotero with <pre>...</pre>.


Add JDGrimes as a project collaborator

No more needs to be said than https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/commits/develop?author=JDGrimes

Done. @JDGrimes you can now merge PRs, and open feature branches directly on this repo instead of on your fork if you wish.

:smile: Thanks @westonruter!

+10000000000000.000000001


Thumbnail uri for the camera roll

I do not find in the response object anyway to display the video thumbnail.I've just found out that Aakash Sigdel is suggesting that this is doable. Any idea?

I'm not sure how to do this off the top of my head. Would accept a PR.

It's is very cool to implementat in video response.
one example of implementation may be this:

\\ config object

const optionsVideo = {
  Thumbnail: true,
  mediaType: 'video',
}

\\ get video

ImagePicker.launchCamera(optionsVideo, (response)  => {
    base64fromVideo = response.thumbnail
})

Any news on this?


Fix/ngboost col sample lt 1

Overview
Closes #3261
Description of the changes proposed in this pull request:
This PR only solves the problem if we have just 1 estimator. So for this script:
import shap
import ngboost as ngb
import numpy as np

X, y = shap.datasets.california(n_points=500)
model = ngb.NGBRegressor(n_estimators=1, col_sample = 0.9).fit(X, y)

predicted = model.predict(X)

# explain the model's predictions using SHAP values
explainer = shap.TreeExplainer(model, model_output=0)

explanation = explainer(X_predict_explain)

# check that SHAP values sum to model output
assert (
    np.abs(explanation.values.sum(1) + explanation.base_values - predicted).max()
    < 1e-5
)

Checklist

[x] All pre-commit checks pass.
[x] Unit tests added (if fixing a bug or adding a new feature)

Here is a breakdown of the issue: If we use ngboost with col_sample < 1 some columns of X get dropped, the rest is reordered, see here. Unfortunately, this might be different for each estimator. Which means, we would need to rewrite the shap_values function or predict function, not quite sure though.

Thanks for the PR @CloseChoice , I've not yet taken a close look at this, but can you add your script as a test that reproduces the error so we make sure we don't regress next time?
Maybe Connor's PR #3262 might be of inspiration as well.

@thatlittleboy so I found a better fix that also fixes the problem for n estimators. The problem was, that due to the reordering of columns in ngboost, the predictions of the ngboost model do not match the predictions that we get from the treeensemble model, that we directly construct from the ngboost trees. I fixed this by reordering the features correctly. I also added a test that checks that the predictions are always identical


SQL Bulk Insert of ExcelDataReader stream fails with "Specified method is not supported"

When attempting to use SqlBulkCopy to bulk insert a ExcelDataReader stream reader (for example, a Very Large XLS that one might not want to load into memory all at once in a dataset), the call fails with Specified method is not supported during WriteToServer:
For example:
            using (var stream = File.Open(fromFileXLSX, FileMode.Open, FileAccess.Read))
            {
                using (var r = ExcelReaderFactory.CreateReader(stream))
                {
                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(TrustedConnectionString(toServer, toDatabase)))
                    {
                        bulkCopy.WriteToServer(r);  // fails here
                    }
                }
            }

Returns this error:
 at ExcelDataReader.ExcelDataReader`2.GetOrdinal(String name) in C:\\workspace-PR\\ExcelDataReader\\src\\ExcelDataReader\\ExcelDataReader.cs:line 95
   at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerCommon(Int32 columnCount)
   at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServer(IDataReader reader)
   at BulkCopyStreamReader.Program.XlsFetch(String fromFileXLSX, String toServer, String toDatabase, String toTable) in C:\\workspace-PR\\ExcelDataReader\\Example\\BulkCopyStreamReader\\Program.cs:line 168
   at BulkCopyStreamReader.Program.Main(String[] args) in C:\\workspace-PR\\ExcelDataReader\\Example\\BulkCopyStreamReader\\Program.cs:line 187"

The root cause of this error is the not-yet-implemented GetName and GetOrdinal as noted in https://github.com/ExcelDataReader/ExcelDataReader/issues/535
See PR https://github.com/ExcelDataReader/ExcelDataReader/pull/537

Hi!
It should be possible to configure the SqlBulkCopy instance with column mappings to prevent from throwing (assuming I'm reading https://stackoverflow.com/q/60266053 correctly). The example project in the PR does this too, and shouldn't need any changes in the reader.
It would be nice with a reader-based bulk copy example in the readme or a wiki (which we don't have, alas). I'd rather not have to maintain examples in the repo as suggested in the PR.

Hi!
I agree that's what I expected to happen, but after doing the column mapping in what essentially appears to be the same as the SO link (but instead pulling XLS fields and assuming they are the same in SQL table) like this:
  foreach (DataColumn column in xlsHeader.Tables[0].Columns)
  {
    bulkCopy.ColumnMappings.Add(column.ColumnName, "[" + column.ColumnName + "]");
   }

the runtime call bulkCopy.WriteToServer(r) expected them to work, but failed with the exception.
As for the examples, well - I do believe that fully operational examples can be quite helpful. I also see your perspective on maintaining them here. Perhaps they belong in a new ExcelDataReader-Examples repo?  So many times I've tried to understand someone's wiki code segments, when simply having a full project tells the whole story so much better. The project is also much more maintainable, as it is otherwise impossible to ensure code in a wiki is complete and actually compiles properly.

Hi,
I suppose it throws if you use the (string, string) arguments overload of ColumnMappings.Add, since the bulk copier still needs to resolve the ordinals from the name:name mappings. The stackoverflow mentions an (int, string) overload to specify ordinal:name mappings directly:
for (var i = 0; i < xlsHeader.Tables[0].Columns.Length; i++)
  {
    DataColumn column = xlsHeader.Tables[0].Columns[i];
    bulkCopy.ColumnMappings.Add(i, "[" + column.ColumnName + "]");
   }

I didn't test this, but at least two people in the stackoverflow indicate this should work.
Also, in a perfect example, the target column names should be read manually from the reader rather than from a DataSet.


Misleading Logcat error when using custom layout for FirebaseUI Auth

FirebaseUI version: 6.0.2

Problem Description:
When creating an AuthMethodPickerLayout object to make a custom layout for the login screen,
you have to set button ids of the auth providers that you chose.
When you choose EmailBuilder as a provider but without providing a button id for it while creating the AuthMethodPickerLayout object the app crashes and shows this error in log cat:
Caused by: java.lang.IllegalStateException: No button found for auth provider: password
So the problem here is the "password" word, it should say "email" or "EmailBuilder."
I thought that this could be misleading to some people so I created this issue.
Steps to reproduce:

Create an AuthMethodPickerLayout object to make a custom layout.
Choose EmailBuilder as a provider but without providing a button id for it while creating the object.

Observed Results:
Caused by: java.lang.IllegalStateException: No button found for auth provider: password
Expected Results:
Caused by: java.lang.IllegalStateException: No button found for auth provider: email

@AhmedAshour thanks for filing this!  That's a reasonable request, I'll look into it for the next version.

The fix for this issue has been released in version 6.2.1


Redis & JWT

[ ] Setup Redis container with JWT (Both Access and Refresh tokens)

More Info:
https://stackoverflow.com/questions/44890564/should-i-store-jwt-tokens-in-redis

Look into OAuth (Adding functionality with Google/Facebook/Apple signin)
https://oauth.net/2/


Update CLI extensions available doc

Update CLI extensions available doc.
Triggered by Azure/azure-cli-extensions - TRAVIS_BUILD_ID=627423044
https://github.com/Azure/azure-cli-extensions/commit/7c5a7e25f6dc4bf6c697284bd83aa57a59ee3c1e

Docs Build status updates of commit 27ae346:
:clock10: Full build: the average full build time is 7 min(s) 9 sec(s), this is based on the last 317 build(s) for this repository.

Docs Build status updates of commit 27ae346:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Support of Roslyn C# Scripting

Issue Ref: None
First at all, I'm not goot at English, sorry.
Description:
CSharpX (Roslyn C# Scripting) runtime supports C# script (.csx), not C# (.cs).
Excample
using Kubeless.CSharpX;

string Hello( Event ev, Context ctx )
{
    return "Hello world!";
}

using microsoft/aspnetcore:2.0

Roslyn 2.8.0
.NET Core 2.0.8

To add dependencies, add a .csproj file.
Please see samples for details.
Thanks
TODOs:

[x] Ready to review
[ ] Automated Tests
[ ] Docs

Hey @DTXMania ! That's a great approach to support .csx (like Azure Functions). I will review the PR and check that, @andresmgot. 👍

Thanks
I think that .NET is a great environment, I hope we will have more scenes to use it.

Hey, this is really cool.
One thing i'm noticing in this as well as the other dotnetcore runtime is the use of the full blown aspnet mvc pipeline.
I don't think any of that is needed for any of this, I feel like we could remove all those dependencies, skip the pipeline entirely and just use some simple middleware.  Skipping the mvc pipeline would make this faster and the code a bit more simple in my opinion.
Small example doing everything in just the Startup.cs (could move this to a KublessMiddleware class though to keep it organized if we want).
public class Startup
{
    // constructor stuff ommitted

   public void ConfigureServices(IServiceCollection services)
   {
     // any services we'll need (probably not necessary)
   }

   public void Configure(IApplicationBuilder app, IHostingEnvironment env)
   {
       app.Use(next => ctx => { ctx.Request.EnableRewind(); return next(ctx); });
       app.Map("/health", builder =>
       {
           builder.Run(async context =>
           {
               await context.Response.WriteAsync("Ok");
           });
      });

     // this is static per container?  we could just do this once?
     // not sure if kubeless changes the env variables, or if we need to check them on
     // every request but we could do this on the actual request if needed
     var runnerContext = new Context();
     app.Run(async (httpContext) =>
     {
          var modulePath = $"/kubeless/{runnerContext.ModuleName}.csx";
          var functionCode = await File.ReadAllTextAsync(modulePath, context.RequestAborted);

         // you get the picture, rest of the code here

        httpContext.Response.StatusCode = 200;
        await httpContext.Response.WriteAsync(result, probablyALinkedCancellationToken);
     });
   }

Also, I believe in this one as well as the other dotnetcore one we're not using any of the requestaborted cancellation tokens?
I'm not sure if kubeless or the outside world will be cancelling the requests, but we can handle those cases, the HttpContext carries a cancellation token of RequestAborted for that purpose, we could link that with our function timeout token easy enough.
var timeoutToken = new CancellationTokenSource(TimeSpan.FromSeconds(timeoutDuration));
var requestAbortedToken = context.RequestAborted;

var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(timeoutToken.Token, requestAbortedToken.Token);

// any async work could use linked token

await scriptResult = await CSharpScript.EvaluateAsync<string>(/* parama */, linkedToken.Token);

Just some food for thought.
Anyway great work, excited to see these.

Hi @KyleGobel,
This suggestion make a lot of sense. Removing the whole mvc pipeline and changing it for one or two middlewares would be better.
About the CancellationTokenSource, loved the idea. To be honest, I didn't know the HttpContext carries a cancellation token. It would be easy then to adapt the current code to use both tokens - since today we only use one for timeout.
Would you like to send a PR with these changes? We would appreciate your contribution on these optimizations!

On startup.cs of the current .NET Core runtime, we could use two approaches:
Approach 01: Build two different docker images, with a single invoker hardcoded per image:

Image for .cs:

[...]
            services.AddSingleton<IInvoker>(new CsInvoker(timeout * 1000)); // seconds
[...]

Image for .csx:

[...]
            services.AddSingleton<IInvoker>(new CsxInvoker(timeout * 1000)); // seconds
[...]

Approach 02: Build a single docker image, and dispatch the right Invoker at runtime:

Image for both .cs  and .csx:

[...]
            //Somethink like:
            if(functionExtension==".cs")
                services.AddSingleton<IInvoker>(new CsInvoker(timeout * 1000)); // seconds
            else
                services.AddSingleton<IInvoker>(new CsxInvoker(timeout * 1000)); // seconds
[...]

This is a really important decision to take guys!
I would vote to merge both into one, regarding the specific implementation you choice.
What do you think? @DTXMania @KyleGobel @fcatae @andresmgot

There are many performance changes we could perform together on the .NET Core runtime, but before that, this decision is key to the next steps and the roadmap.

Casting my vote I would say using one docker image, and determine the IInvoker instance at runtime.
To me this seems like the easier approach, especially if we can get it to something like your example (just an if statement).  I like the idea of it being controlled by the runtime itself, versus some other area in kubeless.
Unless there are some advantages to the multiple docker image approach that i'm not seeing

There is no reason to distinguish between .csx and .cs in Kubeless.

Can you clarify this?
I think it's still necessary (well...nice to have), I think @allantargino was just proposing that this functionality be pulled into the single dotnetcore runtime.
I thought the Roslyn scripting stuff (typically .csx extension) supports a couple other things that a standard c# class library project doesn't?

loading references via, #r.
the ability to write just functions, similar to python or node.
lower barrier to entry and using C# in kubeless (less code required by end user)
azure functions uses something very similar making migration to and from easier.  (I believe they also use the .csx extension)

Also looking towards future (maybe not for kubeless but at least for myself with a custom runtime), adding some ability to add custom directives (nuget reference loading as a simple example)
#nuget "Newtonsoft.Json"
using Newtonsoft.Json;

string MyFunction(Event e, Context c) {
    return JsonConvert.SerializeObject(e);
}

Essentially have the runtime doing some simple string parsing to find #nuget (or whatever) directives and dynamically downloading package and loading/referencing them.
While yes the extension of the file doesn't really matter, detecting the extension is a good way to see if the runtime needs to compile the script or new up/call a method in an assembly.  There's value to having both paths in my opinion.

I am closing this PR as stale. If someone is interested on continuing this effort please check the new documentation at https://github.com/kubeless/runtimes/blob/master/DEVELOPER_GUIDE.md. We are accepting runtimes for the incubator state :)


Why documentation says to use NegotiateDefaults for IIS?

Why not builder.Services.AddAuthentication(IISDefaults.AuthenticationScheme); for Windows Authentication in IIS/IISExpress? That's how the documentation said to do it in .NET 5 and earlier, still works in .NET 6, and doesn't require brining in an additional package. The docs even specify using the Microsoft.AspNetCore.Server.IISIntegration namespace which includes IISDefaults.AuthentiationScheme.

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

ID: 401ad9a0-9e51-80a2-5846-82e9790d7257
Version Independent ID: fbc36c26-9992-1f4c-66d3-02f898ee7ec4
Content: Configure Windows Authentication in ASP.NET Core
Content Source: aspnetcore/security/authentication/windowsauth.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Thank you for contacting us. Due to a lack of activity on this discussion issue we're closing it in an effort to keep our backlog manageable. If you believe there is a concern which hasn't been addressed, please file a new issue.


operating/security: Remove mention of public security vul reports

Instead giving people the choice of either reporting security
vulnerabilities publicly via the issue trackers, or privately to the
maintainers of the relevant project, this patch removes the former,
giving us more time to mitigate the problem.
What are your thoughts?

This came up, looking into https://github.com/prometheus/alertmanager/issues/1734.

:+1:

Definitely yes!

:+1:

Makes sense.
I do wonder if we should ask them to CC -team in case maintainer[s] are on holiday, etc.

Yes I was thinking the same, it ends up being forwarded to team anyways.


features.md is missing

https://github.com/dmlc/tvm/blob/cffb4fba03ea582417e2630bd163bca773756af6/python/tvm/autotvm/feature.py#L74

Hi @merrymercy @tqchen
This issue has been posted on Discuss Forum and here, I'm interested in working on this if no one else has signed up. Can you please point me how to solve it because I cannot find the similar file which talking about axis in the IR under doc/ directory.
Many thanks,

replied at the forum


autoValue always needs to be optional?

Hi Eric,
I tried the autoValue but it only works for me if I set the value to optional. But the values should be required. The same happens with the createdAt property from the Collection2 example.
{
        owner: {
            type: String,
            autoValue: function () {
                if (this.isInsert) {
                    return Meteor.userId();
                } else if (this.isUpsert) {
                    return {$setOnInsert: Meteor.userId()};
                } else {
                    this.unset();
                }
            },

            denyUpdate: true,
            optional: true // not working if not set

        },
        // Force value to be current date (on server) upon insert
        // and prevent updates thereafter.
        createdAt: {
            type: Date,
            autoValue: function () {
                if (this.isInsert) {
                    return new Date;
                } else if (this.isUpsert) {
                    return {$setOnInsert: new Date};
                } else {
                    this.unset();
                }
            },
            denyUpdate: true,
            optional: true // not working if not set
        }
}

I use AutoForm where createdAt and owner are not applied to the form. Additionaly I use a meteormethod where the check(form,Collection.SimpleSchema()) is throwing "Match failed [400]"
Does autoValue only work on insert/update methods?
Cheers,
Dominic

@aldeed Hi, basing on the example above you gave
Collections.Clubs.simpleSchema().clean(club, {
  extendAutoValueContext: {
    isInsert: true,
    isUpdate: false,
    isUpsert: false,
    isFromTrustedCode: false
  }
});

on update the collection, should I set isInsert to false and isUpdate to true?? I try it but does not work; it works for me only when I set isInert to true and isUpdate to false.
Thank's for your help.


compileAsync should return Promise

For consistency with asynchronous validation.
It's a breaking change, in the next major version.

In 5.0.0-beta.0.
To use: npm install<EMAIL_ADDRESS>


zulipbot test issue (non-collaborator)

Testing non collaborator issue assigning with @synicaltests

@zulipbot claim-issue

tests


Allow interceptor to change method

Changing the request method from e.g. GET to POST in a network interceptor lead to the body not being written to the transport. That's because HttpEngine#permitsRequestBody() was using the original request to determine whether sending a request body was allowed.

Nice!


[WFLY-17111] WildFly documentation fixes

Fixes https://issues.redhat.com/browse/WFLY-17111

Two open issues:

[INFO] asciidoctor: ERROR: Getting_Started_Developing_Applications_Guide.adoc: line 32: include uri not readable: https://raw.githubusercontent.com/wildfly/quickstart/27.x/guide/Introduction.asciidoc (and others) ==> because the 27.x branch does not exist yet.
[INFO] asciidoctor: INFO: possible invalid reference: sts-implementation-class ==> I did not find the corresponding chapter

Thanks @boris-unckel


Firefox add-on cannot login to GMAIL after crash

Firefox crashed after a day, so restart firefox. uproxy is logged out for some reason, so login again (using gmail). The google authenticate page shows up, but uproxy is never able to log back in...

Thanks for the report.  I just tested this and I am able to replicate the same problem with the latest Firefox version, however Chrome still works fine - we will investigate.

@shaomeng - are you still experiencing this issue?  I could replicate it before but now Gmail is behaving fine on Firefox.
I'm suspecting some temporary issue on the Firebase side, maybe involving websockets, as OAuth succeeded but then it looks like we didn't get any data back from Firebase.

Let me do a test now and get back to you later!
On Tue, May 10, 2016 at 11:44 AM, dborkan<EMAIL_ADDRESS>wrote:

@shaomeng https://github.com/shaomeng - are you still experiencing this
issue? I could replicate it before but now Gmail is behaving fine on
Firefox.
I'm suspecting some temporary issue on the Firebase side, maybe involving
websockets, as OAuth succeeded but then it looks like we didn't get any
data back from Firebase.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/uProxy/uproxy/issues/2392#issuecomment-218251965

@dborkan  I'm able to repeat this issue.
My system is Mac OS X 10.10 with the latest Firefox: 46.0.1.


Compare to all-contributors

All Contributors is a similar tool. What do they do differently? How can we help them? How can we work together to make contributions easier?

That's interesting. All Contributors looks mostly like a manifesto that alignes with what name-your-contributors does pretty closely. It's a very different technique though; we're automatically scraping the list of contributions where contributions are defined as certain GitHub actions. Whereas, all-contributors-cli is a tool to make manual maintenance of a contributors list easier.
That has the obvious tradeoffs: automation is less work, but doing it by hand lets you be more generous and flexible with your definition of contribution.
We could output json that conforms to the all-contributors-cli format and use it to generate a contributors section in the README. Better than making our own I'd reckon.

Friendly ping @tgetgood @RichardLitt!

* you get to have the possibility to add/check contributors/contributions via the CLI or less manually via the bot

This sounds pretty awesome, to me. Also, the last point.
Thanks for the friendly ping - I was traveling this week, and haven't had time to really look into working on this. Let's see if we can improve that.
What's the best way forward? Video call? Figuring it out here?

I've got around to make the diagram I was on about when I said:

make another diagram showcasing a way in which NYC and AC could co-operate to in regards to finding who did what

It can be accessed here.

Pretty much. I wonder if we should have it more fine-grained; for instance, getting the label of 'bug' and putting that in the nyc output?

Pretty much. I wonder if we should have it more fine-grained; for instance, getting the label of 'bug' and putting that in the nyc output?

It will certainly help to have issues pre-populated with labels (cf. example of bug template) which would then be kept in the JSON object which would help in distinguishing what was the nature of the issue someone created.

Are there any blockers preventing this feature from being possible?

@protoEvangelion On my PR (^196) there is.

For some reason the data read by fs.readFileSync(configPath, 'utf-8') in ./util/config-file.js sometimes ends up being 0 which screws up the adding process.
Cf. #187

If you can help, it will be much appreciated.
I haven't looked at the blocking issue since quite some time (busy with other stuff and a much-needed break) so I'll probably be able to go around that but it seems I'm the only active core member from AC.

Ended up hacking together a workflow that worked for my needs and was much faster than adding one by one: https://github.com/all-contributors/all-contributors-cli/issues/117#issuecomment-533837655

@protoEvangelion Let me know if there is anything I can do to make this easier for you, outside of your work around.


Feature: China Region Codes

Add the China country region short codes, to replace the numbers currently there. The region code list was pulled from these sources:

https://www.chinacheckup.com/blogs/articles/china-province-abbreviations
https://www.iso.org/obp/ui/#iso:code:3166:CN

Terrific. Will look at tonight.


Account Page STUMPED

i got nowhere after about 8 hours on this.
i can knock out just the User info.
A mock up of the Order History
and then see what kinda functionality i can have done by the time class starts
But im thinking we just wrap things up tomorrow


docs(readme): fix import names

Very simple changes, just fixing some example imports.

Awesome! Thanks!


setVisibleThroughObjects does not work on transparent widgets

Describe the bug
If you set something to be visible through objects, it does not work with transparent widgets. Tested with Cube3D and Text3D
In which environment did the Bug appear?
Multiplayer server
To Reproduce
Steps to reproduce the behavior:

Use code below
Put wall in front of cube
See lack of visibility through wall.

Expected behavior
When set to true, 3d widgets with transparency should be visible through walls.
Screenshots / Code Snippet
If applicable, add the code you used and screenshots of how your setup looks like
local component = require("component")
cube = component.glasses.addCube3D()
cube.setVisibleThroughObjects(true)
cube.addColor(1, 0, 0, 0.6)
cube.addTranslation(-5, 1, 0) -- put a wall on the -X direction

Without transparency:

With transparency:

Minecraft:

Mod Version: OpenGlasses 2.2-50
Minecraft Version: 1.12.2
Forge Version: Forge <IP_ADDRESS>47

unfortunately this cant be fixed easily, i could make them visible behind walls BUT minecraft doesn't do depth sorting, so stuff would just overlap each other depending on what was drawn first.
if this will ever be fixed then after adding manual depth sorting for openglasses widgets, so i'll leave the bug open as enhancement


Upgrade deflateResponseFilter() to support non-text/* MIME types

It'd be great to be able to deflate application/x-javascript, application/json, etc. Javascript files in particular are often very weighty, even when minified.
Currently there's a todo for this within deflateResponseFilter(); I'm just expressing interest in seeing it implemented.

Question is which ones should be compressed.

Question is which ones should be compressed.

The todo in the code seems to propose a new configuration option to allow the end user to define that, which would be consistent with nginx and Apache.

How to best implement that? An option which accepts a list with allowed prefixes?

Content types I guess, not prefixes

@kelunik I mean by prefix of the content type. I.e. If you want to straight ahead deflate everything with a text/* mime, you just pass in "text/" instead of tens of combinations.

Yes, and I think we should not do that. We should compress text/* by default and then additional content types present in the config. I don't think prefixes make sense aside from text/.

You will want to compress text based format, like css/js/svg but not files etc... I guess some sane default can match 90% of the use-cases

@staabm The issue is that JS is usually served as application/x-javascript instead of text/javascript.
I think we should always compress text/* and default the option to application/x-javascript and application/json.

with text-based I did not technically meant text/* but "everything which is regular text content".
I guess something like

text/*
*/xml
/*+xml
/*javascript

could do as a default

Thus I think a simple regex should express that easily?
(i.e. #^(?:text/.*+|[^/]*+/xml|[^+]*\+xml|application/(?:json|(?:x-)?javascript))$#)
Then you can customize as much as you want to…

I think regex support would be good.

As long as the regex is fast enough, it's fine. It's a rather hot one that's hit on every single request. The chance of people shooting into their own foot is rather high compared to a simple list which can be done with a simple array index lookup in O(1). The number of content types one serves is usually pretty limited.

Good, I'll prepare a patch supporting regex and usually matching in O(1)
(I will create a fast-lookup map by matching against the known mime-types (from the mimefile) ahead of time, and falling back to regex if that mimetype isn't known.)
That should be the most flexible solution while still providing enough speed.

@bwoebi You don't need to check mime-types from the mimefile ahead of time. Just cache the content types in a look-up array.

I originally avoided regex here because perf. Ideally people specify the specific content types they wish to deflate so you can do a simple hash table lookup.
Beyond that you can use string functions to check the prefix for things like text/ matches. If we add the option for regex we should likely keep an in-memory LRU cache in a hash map for fast isset lookups before resorting to regex on every request.
Alternatively, it would be nice to have the regex checks be an option that you can turn on or off for perf reasons.

@rdlowrey No need to worry about perf, as @kelunik we may just cache the already checked content types and thus just have the overhead once per content-type for the whole lifetime of the server.

Sure, just make sure the number of cached entries have a limit otherwise it's a memory leak

Fixed by 544ee5f152db53f8a0fc79644131d13ac68d36a3


Update Ubuntu2004-README.md (Add GNU Make)

Description
Documentation Fixup (missing Make)
Check list

[x] Tests are written (if applicable)
ref: https://github.com/Mizux/inspect-ci/runs/3687003751?check_suite_focus=true#step:7:4
[x] Documentation is updated (if applicable)

README file is autogenerated, no need to add note to them.

@dibir-magomedsaygitov then may I have the url of the script which generating this list to understand why it is omitting GNU Make ?
Thanks.

@Mizux GNU Make is not included in README because it's installed as part of build-essential package which is mentioned here:
https://github.com/actions/virtual-environments/blob/fabf527ea8b5a9a2fe3e6742369d30f2cce4f11b/images/linux/Ubuntu2004-README.md#L302


cirrus customer_testing test failing while attempting to rebase

for example: https://cirrus-ci.com/task/5384699422965760
git rebase master
First, rewinding head to replay your work on top of it...
Applying: ++
Applying: Progress
Applying: Some docs
Applying: Updates sans new callback method
Applying: ++
Applying: Added callback to ServicesBinding... may need to relocate
Applying: Remove IDE junk
Applying: ++
error: Failed to merge in the changes.
Using index info to reconstruct a base tree...
M	packages/flutter/lib/fix_data.yaml
Falling back to patching base and 3-way merge...
Auto-merging packages/flutter/test_fixes/services.dart.expect
CONFLICT (add/add): Merge conflict in packages/flutter/test_fixes/services.dart.expect
Auto-merging packages/flutter/test_fixes/services.dart
CONFLICT (add/add): Merge conflict in packages/flutter/test_fixes/services.dart
Auto-merging packages/flutter/lib/fix_data.yaml
CONFLICT (content): Merge conflict in packages/flutter/lib/fix_data.yaml
Patch failed at 0008 ++
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
Exit status: 128

This was likely caused by https://github.com/flutter/flutter/pull/83964/files
A different error likely caused by the same PR is: https://cirrus-ci.com/task/6570226528550912?logs=main#L127
Downloading Dart SDK from Flutter engine a1468f9b2495ad0238c1479a4a7c50c546b79742...
Building flutter tool...
error: unknown option `:--:--'
usage: git checkout [<options>] <branch>
   or: git checkout [<options>] [<branch>] -- <file>...
    -q, --quiet           suppress progress reporting
    -b <branch>           create and checkout a new branch
    -B <branch>           create/reset and checkout a branch
    -l                    create reflog for new branch
    --detach              detach HEAD at named commit
    -t, --track           set upstream info for new branch
    --orphan <new-branch>
                          new unparented branch
    -2, --ours            checkout our version for unmerged files
    -3, --theirs          checkout their version for unmerged files
    -f, --force           force checkout (throw away local modifications)
    -m, --merge           perform a 3-way merge with the new branch
    --overwrite-ignore    update ignored files (default)
    --conflict <style>    conflict style (merge or diff3)
    -p, --patch           select hunks interactively
    --ignore-skip-worktree-bits
                          do not limit pathspecs to sparse entries only
    --ignore-other-worktrees
                          do not check if another worktree is holding the given ref
    --progress            force progress reporting
Exit status: 129

cc @Hixie

Interesting.

Fixed in https://github.com/flutter/flutter/pull/86063

I really have no idea what the :--:-- thing is about.


Load custom trained model problem

I want to write a detect function for my model,
It look like detect(image) and return class_prob, bounded box.
I use tiny-yolo model.
I already train and save one model(use model.save not model.save_weights) in the logs/000/ folder.
But I get error when I load model.
The first error message is NameError: name 'yolo_head' is not defined
So I import yolo_head.
The second error message is TypeError: list indices must be integers or slices, not list
Is there any better idea to get the bounded box from image when finish training own model?
Thanks

pls, have look at https://github.com/Borda/keras-yolo3/issues/2


feat(cli): verify command

Adds a mud verify --worldAddress command

lgtm! have you tested this with blockscout on garnet?

No, let me test that first!


Add shark_importer module and albert_shark_test example

This frontend API and design looks good, but it looks like it is based of IREE's python API. Can we do this based of SharkInference or SharkRunner?

Could you please add the description of this PR?


Bump ruamel-yaml from 0.18.5 to 0.18.6 (#7139)

Pull request opened by the merge tool on behalf of #7139

Merged in fc45e74704c980bb7a64f914a7a4f35105e2244c


feat(STONEINTG-947): migrating clamav-db to konflux-ci in quay

this PR is part of the effort to migrate  quay repo  to konflux-ci/clamav-db ,  on this step we add the new repo
so the clamav-db images will be pushed for both repos, once we see it works as expected then the old one will be decoupled
STONEINTG-947

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Please upload report for BASE (main@92c6969). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff            @@
##             main      #318   +/-   ##
========================================
  Coverage        ?   100.00%
========================================
  Files           ?        18
  Lines           ?       502
  Branches        ?         0
========================================
  Hits            ?       502
  Misses          ?         0
  Partials        ?         0

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

This was a good way to handle this, will modify my pr for konflux-test to do something similar so I dont have to attempt to juggle the rollout of the migration.

This idea of solution was proposed by @jsztuka , it's a good one


[ALLUXIO-2330]Simplify code in BaseFileSystem#exists

https://alluxio.atlassian.net/browse/ALLUXIO-2330

Can one of the admins verify this patch?

ok to test

Jenkins, add to whitelist

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11857/
Test FAILed.

Jenkins, test this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11891/
Test PASSed.


Eval Interval without a Validation Dataloader

I am using multiple datasets, some with validation dataloaders and some without.
When I pass None for a validation dataloader but keep the rest of my Trainer the same I get the error:
Specifying `eval_interval` without an `eval_dataloader` has no effect.
I have tried setting eval_dataloader to 0, None but nothing seems to work...
Thanks,
Trenton

Btw, we've opened a PR in dev https://github.com/mosaicml/composer/pull/1791 to update the error messages so they're more helpful

@mvpatel2000 thanks for this. So if I need to set a value I can set =1 (even though I am not passing in an eval dataloader?)

Nope it failed. Still getting:
ValueError: Specifying eval_intervalwithout aneval_dataloader has no effect.

This is when I am passing in None for the val_dataloader

@TrentBrick could you potentially share more of your code? Here is the code that controls this error:
https://github.com/mosaicml/composer/blob/release/v0.11.1/composer/trainer/trainer.py#L1093-L1097

so I'm not sure why you're still hitting it if you're specifying eval_interval=1. I'm assuming you're on the most recent release (0.11.1)

if "no_validation" in params and params.no_validation:
        dataloaders['val'] = None
    else:
        dataloaders['val'] = dataloader_fn(params,
            data_path,train_or_val="val"),

---

if "no_validation" in params and params.no_validation:
        params.eval_interval_str = 1

---

trainer = Trainer(
            ...,
            eval_dataloader=dataloaders['val'],
            eval_interval=params.eval_interval_str,
)

@TrentBrick would you mind providing a minimal repro? Happy to help debug with one.

Ok in making a minimal repro I figured out that my tester script (rather than parallelized runner) hadn't updated with the entry of "1". Now things work. Sorry for the confusion.

great! glad its working. Feel free to reach out if you hit any other issues


Add click

click is a runtime dependency.

That import was actually unused so I removed it.
Thanks for your effort tho :)


Compute tests can accidentally pass based on stale output

It seems that if a compute test has previously written a .actual.txt output, but then we change things in a way that leads to the code failing to compile, render-test is doing a comparison based on the old output instead, and deciding that things have passed.

I believe this was fixed in #240.


Added english language

Added English language

Thanks for your PR.
Using the manaul way is not a good option.
Use flutter internationalization tools:
https://flutter.dev/docs/development/accessibility-and-localization/internationalization
Then open a new pull request and also write fixes #14 in your PR's description


Why an agent can't learn on cheat data?

I tried two different tune runs: with future data(you can find this code by "#Future data") and without. I expected to see a big difference in rewards betweent these two runs(or at lease some difference), but instead of this I got almost the same results:

Here is the code which I used to tune environment with future data(when I tuned without future data I just commented out the corresponding lines):
#Importing the libraries
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
# matplotlib.use('Agg')
import datetime
import optuna
%matplotlib inline
from finrl.apps import config
from finrl.finrl_meta.preprocessor.yahoodownloader import YahooDownloader
from finrl.finrl_meta.preprocessor.preprocessors import FeatureEngineer, data_split
from finrl.finrl_meta.env_stock_trading.env_stocktrading_np import StockTradingEnv as StockTradingEnv_numpy
from finrl.drl_agents.rllib.models import DRLAgent as DRLAgent_rllib
from stable_baselines3.common.vec_env import DummyVecEnv
from finrl.finrl_meta.data_processor import DataProcessor
from finrl.plot import backtest_stats, backtest_plot, get_daily_return, get_baseline
import ray
from pprint import pprint
from ray.rllib.agents.ppo import PPOTrainer
from ray.rllib.agents.ddpg import DDPGTrainer
from ray.rllib.agents.a3c import A2CTrainer
from ray.rllib.agents.a3c import a2c
from ray.rllib.agents.ddpg import ddpg, td3
from ray.rllib.agents.ppo import ppo
from ray.rllib.agents.sac import sac
import sys
sys.path.append("../FinRL-Library")
import os
import itertools
from ray import tune
from ray.tune.suggest import ConcurrencyLimiter
from ray.tune.schedulers import AsyncHyperBandScheduler
from ray.tune.suggest.optuna import OptunaSearch

from ray.tune.registry import register_env

import time
from typing import Dict, Optional, Any

def sample_a2c_params():
    return{
        "lambda": 0.9,
        "entropy_coeff": 0.0000066,
        "lr": 0.0003
    }

MODELS = {"a2c": a2c, "ddpg": ddpg, "td3": td3, "sac": sac, "ppo": ppo}

def get_train_env(start_date, end_date, ticker_list, data_source, time_interval,
          technical_indicator_list, env, model_name, if_vix = True,
          **kwargs):

    #fetch data
    DP = DataProcessor(data_source, **kwargs)
    data = DP.download_data(ticker_list, start_date, end_date, time_interval)
    data = DP.clean_data(data)
    data = DP.add_technical_indicator(data, technical_indicator_list)
    if if_vix:
        data = DP.add_vix(data)
    price_array, tech_array, turbulence_array = DP.df_to_array(data, if_vix)

    #Future data
    arr = []
    for i in range(10):
        arr.append((np.roll(price_array, -i)))
    tech_array = np.concatenate(arr, axis=1)

    print(tech_array)
    train_env_config = {'price_array':price_array,
              'tech_array':tech_array,
              'turbulence_array':turbulence_array,
              'if_train':True}

    return train_env_config

TRAIN_START_DATE = '2014-01-01'
TRAIN_END_DATE = '2019-07-30'

VAL_START_DATE = '2019-08-01'
VAL_END_DATE = '2020-07-30'

TEST_START_DATE = '2020-08-01'
TEST_END_DATE = '2021-10-01'

technical_indicator_list = [] #config.TECHNICAL_INDICATORS_LIST

model_name = 'a2c'
env = StockTradingEnv_numpy
ticker_list = ['TSLA']
data_source = 'yahoofinance'
time_interval = '1D'

train_env_config = get_train_env(TRAIN_START_DATE, VAL_END_DATE,
                     ticker_list, data_source, time_interval,
                        technical_indicator_list, env, model_name)

from ray.tune.registry import register_env

env_name = 'WithFuture'
register_env(env_name, lambda config: env(train_env_config))

MODEL_TRAINER = {'a2c':A2CTrainer,'ppo':PPOTrainer,'ddpg':DDPGTrainer}
if model_name == "ddpg":
    sample_hyperparameters = sample_ddpg_params()
elif model_name == "ppo":
    sample_hyperparameters = sample_ppo_params()
elif model_name == "a2c":
    sample_hyperparameters = sample_a2c_params()

def run_optuna_tune():

#     algo = OptunaSearch()
#     algo = ConcurrencyLimiter(algo,max_concurrent=4)
    scheduler = AsyncHyperBandScheduler()
    num_samples = 5
    training_iterations = 100

    analysis = tune.run(
      MODEL_TRAINER[model_name],
      metric="episode_reward_mean", #The metric to optimize for tuning
      mode="max", #Maximize the metric
#       search_alg = algo,#OptunaSearch method which uses Tree Parzen estimator to sample hyperparameters
      scheduler=scheduler, #To prune bad trials
      config = {**sample_hyperparameters,
                'env': env_name,'num_workers':1,
                'num_gpus':0,'framework':'torch'},
      num_samples = num_samples, #Number of hyperparameters to test out
      stop = {'training_iteration':training_iterations},#Time attribute to validate the results
#       verbose=1,local_dir="./tuned_models",#Saving tensorboard plots
      # resources_per_trial={'gpu':1,'cpu':1},
      max_failures = 1,#Extra Trying for the failed trials
      raise_on_failed_trial=False,#Don't return error even if you have errored trials
      keep_checkpoints_num = num_samples-5,
      checkpoint_score_attr ='episode_reward_mean',#Only store keep_checkpoints_num trials based on this score
      checkpoint_freq=training_iterations#Checpointing all the trials
    )
    print("Best hyperparameter: ", analysis.best_config)
    return analysis

analysis = run_optuna_tune()

I think this is important because if agent can't even learn on cheat data, then what is the reason to try to find some useful indicators?
What do you think and how can I fix it?

Can you re-run the experiments with all the technical indicators. I am not sure that why it is not performing well. Here are some of the reasons that I am speculating:

Maybe in the testing set, the model performed well on the exposed data and then it didn't do well. Check the actions dataframe for it.

Also, the RL agent doesn't remember the data, rather it tries to capture the variation in data and based on those variations trades. These are just possible reasons, but yeah do run some more experiments to conclude.

@Athe-kunal thanks for your attention!

Can you re-run the experiments with all the technical indicators

Add technical indicators as tech_array? I already tried it(but without future data), or are you talking about something different?

Maybe in the testing set, the model performed well on the exposed data and then it didn't do well.

Sorry, didn't get it, could you explain?

Check the actions dataframe for it.

What exeactly should I check?

Also, the RL agent doesn't remember the data, rather it tries to capture the variation in data and based on those variations trades.

But the agent can remember that tech_array always contains future data and the agent can rely on this, isn't it?

@Athe-kunal could you please answer these questions? Because I still have the problem.


handler: handle multiple socket in check socket

Problem: stat --printf=%n for OSD sockets produces one concatenated string
of multiple paths, consequently in the next ansible task fuser command
fails with non-zero exit code and triggers next task deleting of non-existed
path.
Solution: add space to separate multiple sockets in stat output by modifying the
command to stat --printf="%n ". fuser can handle multiple space
separated arguments. For consistency modify all usages of stat in current file,
although this issue can happen only with OSD. It's unlikely that there will be
multiple sockets on one machine for MON, MDS, RGW or other Ceph services.
Why this solution: simple quick fix, minimal probability to introduce new bug.
May uncover other hidden bugs :-)
Alternatives: PR #3071, which does a lot of additional improvements.
Signed-off-by: G-Tarik<EMAIL_ADDRESS>(cherry picked from commit 39df7fe7cdee0ec3191041ff09697174a7653d8e)

@G-Tarik could you add the Fixes: #3065 in your commit message and rebase on master?
Thanks!


[WIP] Enable simtk.units in CVDefinedVolume

It adds simtk.unit and simtk.openmm to the allowed packages and rewrite the
CVDefinedVolume and PeriodicCVDefinedVolume that they work also with simtk.unit
Problem was that simtk.unit does not support % so I had to rewrite it.
Should pass tests. Ready for review and merge

Wait, this get insanely complicated... NaN and simtk. % and simtk. Ahhh...

Okay, that should do it...

You can now use CVs that output Quantities. Make sure that your ranges also use compatible units or you get an error.

Fixed the two issues. I left in a check for float('inf') to allow a user to use inf without specifying a unit. Hope this will pass now

Tests pass. Ready for review again :)

I still don't understand why there's an explicit check against float("±inf"). After all, x < float("inf") for any x. (That's kind of the point, right?)

This is a simtk.unit Because you cannot compare
3 * unit.nanometers < float('inf')

What would work is
3 * unit.nanometers < float('inf') * u.meters

To allow to just use min_lambda='inf' without knowing the unit that is used. I added the
check for infinity. We can argue that we remove it and a user needs to write min_lambda=floor('inf') * unit` instead, but we already allow to use a string.

Can you add a comment for that as well? Any time there's code that looks pointless but is necessary for some obscure reason (ugh... I hate units), it would be nice to have a comment explaining the reason.
Add that, fix comment typo (in line note above), and this should be ready to go!

ugh... I hate units

True, that is making a lot of stuff complicated coding wise...
Done... Should pass tests since I only added comments


Set unlimited retries for Fluent Bit http output

Description
Fluent Bit's default settings make only one retry attempt on a retry-able output error. With our persistent buffer usage, more retries would be beneficial.
Changes proposed in this pull request:

Set retry_limit to no_limits for Fluent Bit http output
Do not collect logs from http-mockserver sample

Related issue(s)

https://github.com/kyma-project/kyma/issues/17113

/hold

/retest


[Feature Request]: Support perplexity.ai

Is your feature request related to a problem? Please describe.
Yes, when interacting with perplexity.ai, I encountered a BadRequestError with the following message:
BadRequestError: Error code: 400 - {'error': {'message': 'After the (optional) system message(s), user and assistant roles should be alternating.', 'type': 'invalid_message', 'code': 400}}

This error indicates that perplexity.ai requires a strict alternating sequence of user and assistant roles in the messages.
Describe the solution you'd like
To support seamless integration with perplexity.ai, the solution should enforce the strict alternating sequence rule for user and assistant roles in the messages. This will ensure that the messages are structured in a way that is compatible with perplexity.ai's requirements, preventing the BadRequestError from occurring.
Additional context
To reproduce the issue, you can create multiple agents with a group chat agent and designate one of the agents to be operated by perplexity.ai. When attempting to interact with this agent, you will encounter the BadRequestError if the message sequence does not adhere to the strict alternating user/assistant role pattern required by perplexity.ai.
By implementing the proposed solution and enforcing the alternating role sequence, the integration with perplexity.ai should become more robust and error-free. This will enhance the overall user experience and allow for seamless communication between Autogen and perplexity.ai.

Thanks for creating this issue @sinwoobang. Could you post a sample code snippet for how to use perplexity ai to help others getting started? Also, since you might be the one with the most knowledge about perplexity ai here, would you like to look into this? It could be a configuration issue. We can add some documentation to: https://microsoft.github.io/autogen/docs/topics/non-openai-models/about-using-nonopenai-models

@ekzhu The Perplexity AI API Spec is compatible with Open AI Client. It works if you change BASE_URL of the Open AI Python SDK to https://api.perplexity.ai. Therefore, It shall work without extra configuration.
Here is my snippet https://gist.github.com/sinwoobang/33feda60c4ed36388a944e4177d3d957. Please ask Pele vs Maradona vs Messi, especially Messi with real-time data.. While the agents communicate with each other, it emits the error.

@ekzhu https://microsoft.github.io/autogen/blog/2024/01/26/Custom-Models#step-1-create-the-custom-model-client-class I got a reference link on Discord. One folk mentioned that the custom model client may resolve this issue. What do you think about it? The sequence of request messages is in control of the model client?

@sinwoobang any updates? did you manage to re-sequence the messages for this custom model? I'm having trouble calling the OpenAICient from the custom model class.

@edanweis I did. What part are you struggling with?

@edanweis I did. What part are you struggling with?
Thanks @sinwoobang I managed with this

class PerplexityAIClient:
    def __init__(self, config: Dict[str, Any]):
        self._config = config
        self.model = config["model"]
        self.base_url = config["base_url"]
        self.api_key = config["api_key"]
        self._client = OpenAIWrapper(
            model=self.model,
            api_key=self.api_key,
            base_url=self.base_url
        )
        self._last_tooluse_status = {}

    def create(self, params: Dict[str, Any]) -> Completion:
        messages = params["messages"]

        # Ensure the sequence of user and assistant messages is alternating
        for i, message in enumerate(messages):
            if message['role'] != 'system':
                # If it's the last message or an odd-indexed message, set role to 'user'
                message['role'] = "user" if i == len(messages) - 1 or i % 2 != 0 else "assistant"

        # Remove all messages except the first and last
        params["messages"] = [messages[0], messages[-1]]

        # Copy params and modify for client request
        params = params.copy()
        params["stream"] = False
        params.pop("model_client_cls")
        params["max_tokens"] = params.get("max_tokens", 4096)

        # Make request to client
        response = self._client.create(**params)

        # Remove message retrieval function if it exists
        if hasattr(response, 'message_retrieval_function'):
            delattr(response, 'message_retrieval_function')

        return response

@edanweis I did. What part are you struggling with?
Thanks @sinwoobang I managed with this

class PerplexityAIClient:
    def __init__(self, config: Dict[str, Any]):
        self._config = config
        self.model = config["model"]
        self.base_url = config["base_url"]
        self.api_key = config["api_key"]
        self._client = OpenAIWrapper(
            model=self.model,
            api_key=self.api_key,
            base_url=self.base_url
        )
        self._last_tooluse_status = {}

    def create(self, params: Dict[str, Any]) -> Completion:
        messages = params["messages"]

        # Ensure the sequence of user and assistant messages is alternating
        for i, message in enumerate(messages):
            if message['role'] != 'system':
                # If it's the last message or an odd-indexed message, set role to 'user'
                message['role'] = "user" if i == len(messages) - 1 or i % 2 != 0 else "assistant"

        # Remove all messages except the first and last
        params["messages"] = [messages[0], messages[-1]]

        # Copy params and modify for client request
        params = params.copy()
        params["stream"] = False
        params.pop("model_client_cls")
        params["max_tokens"] = params.get("max_tokens", 4096)

        # Make request to client
        response = self._client.create(**params)

        # Remove message retrieval function if it exists
        if hasattr(response, 'message_retrieval_function'):
            delattr(response, 'message_retrieval_function')

        return response

May I review the code? I would remove the part below since you have params["messages"] = [messages[0], messages[-1]]. You can revise messages[-1] then. What do you think?

    for i, message in enumerate(messages):
        if message['role'] != 'system':
            # If it's the last message or an odd-indexed message, set role to 'user'
            message['role'] = "user" if i == len(messages) - 1 or i % 2 != 0 else "assistant"

@sinwoobang Yes of course, nice catch! Thanks. I realised that perplexity online models are effectively search engines for which a message history doesn't make much sense. Perhaps this should be a function call.

@edanweis Exactly. I have been deciding on a similar problem. Perplexity is somewhere in the middle between a function call and a LLM service.

Hey folks, what would you recommend to me as someone encountering this same error with Perplexity.ai as my LLM?
I tried your custom client class but am running into registration issues...
Is there an easy way to get Perplexity to work with Autogen?

It seems registering a custom client is a challenge in itself, so I've created an issue for that: https://github.com/microsoft/autogen/issues/3502


display certificate level requirements

Show what level of certificate each question is required for.
There was already code to do this, it just didn't work, (quelle suprise)

Coverage increased (+0.1%) to 81.79% when pulling 63b6fc02e156dfc62edd2f36fc48bfbc0fc5feb2 on feature-display-certificate-level-requirements into 5b758d51dd8ea2a678a7350c119fc16ec79a8100 on staging.


Call to undefined method app\models\User::find()

Thank you for writing this module. It gives me a great example for my own project. I am learning a lot of it.
However, I do have problem.
If I lookup an answer I get the error:
Call to undefined method app\models\User::find()
Everything else is working fine.
On  http://www.yiiframework.com/forum/index.php/topic/58356-call-to-undefined-method-appmodelsuserfind/
the answer is to: Try extending from yii\db\ActiveRecord instead.
That do I have to change in the code to solve this problem?
My config is:
    'qa' => 'artkost\qa\Module',
    'userClass' => 'dektrium\user\Module',
    'userNameFormatter' => 'getUserName'

That is I am using the dektrium user class.

You have a typo in config, you need use ' \dektrium\user\models\User' class and need point same class for 'user' component. For ex:

'user' => [
    'identityClass' => ' \dektrium\user\models\User'
]

Thank you for the response. However, it still does not work.
On edit I get this error:
Call to undefined method app\models\User::find()
But there is not app\models\User entry in the config anymore.
My 'complete' user config is:
'modules' => [
'user' => [
'class' => 'dektrium\user\Module',
...
'modelMap' => ['User' => 'dektrium\user\models\User'],
],
'qa' => 'artkost\qa\Module',
'userClass' => 'dektrium\user\models\User',
'userNameFormatter' => 'getUserName'
],
'components' => [
'user' => [
'identityClass' => ' \dektrium\user\models\User',
'enableAutoLogin' => true,
],
And now I am lost. What do I have to change to get artkost working?

Thanks, i check it soon

Hello,
@arjenmeijer : I'm having the exact same issue on edit. Did you end up solving the issue ?
Cheers

No. I stopped using this module.

If you use dektrium you need:
use app\models\User;
change to
use dektrium\user\models\User;
in your controller.


[dpp 10.0.20] x86 static build failure

Host Environment

OS: Windows 10 64 Bit
Compiler: x86 msvc v19.latest

To Reproduce
Steps to reproduce the behavior:
./vcpkg install dpp:x86-windows-static
Failure logs
Error: dpp[core] is only supported on '(windows & !static & !uwp) | linux | osx'

Additional context
The release pages of dpp github have a x86 static library, but it fails on vcpkg.

cc @braindigitalis
Does dpp support static build?

cc @braindigitalis Does dpp support static build?

sorry for late reply - on windows, no it does not.

Since this port doesn't support x86 static on windows, so I am closing this issue for now.


A problem about the callback for jspb.Map.forEach for

What I see:
jspb.Map<string, string>.forEach(callback: (entry: string, key: string) => void, thisArg?: {} | undefined): void

I saw the entry and key here, but where is the value?
Map in TS is:
Map<string, string>.forEach(callbackfn: (value: string, key: string, map: Map<string, string>) => void, thisArg?: any): void

Saw your issue https://github.com/protocolbuffers/protobuf-javascript/issues/163. This repository isn't the right one either. You have to open a PR against https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/google-protobuf


docs: adding prettier instruction

As some new contributors are facing trouble to ensure the code quality and forget to run prettier before their commits.

What kind of change does this PR introduce?
docs related

Did you add tests for your changes?

Does this PR introduce a breaking change?
N/A

What needs to be documented once your changes are merged?
N/A

I think in some cases it needs manual attention as CI is failing because of this.

Thanks for your contribution. I am closing PR because it is too stale..


Update .travis.yml to not do a "go get"

Use the built in support for vanity domains in Travis:
https://docs.travis-ci.com/user/languages/go#Go-Import-Path

Just doing a pull request to verify correctness before pushing.

kicking off this build again. it failed because travis got out of quota errors when checking out from googlesource.com


Headscale Discord link invalid

Bug description

To Reproduce
-> New issue -> click on "Open"

I'm also unable to join Discord to ask some questions.


setup: don't execute the version.py file

This is breaking the build with Python 3.13:
https://bugzilla.redhat.com/show_bug.cgi?id=2280551

This repository seems staled.
You can use the maintained fork https://github.com/maurerle/eralchemy2 instead, which already moved to pyproject.toml instead of setup.py :)

we moved back the maintained fork into this repository so this PR is now obsolete as @maurerle has already moved toward pyproject.toml
Thanks for your contribution !


Web: Emulation frequently hangs unless input events are sent continously

In an attempt to reduce CPU usage for desktop platforms, the event loop control flow is driven by WaitUntil and since the emulation is clocked on another thread, this poses no problems for emulation speed.
However this change to reduce CPU usage of the main thread has unintentionally tied the emulation rate on web (which is single threaded) to the rate at which events are received.
The easy fix should be to change web to always use Poll, which is more CPU intensive. It may be possible to always set it to WaitUntil with the target duration until next frame based on the audio queue (if audio is enabled) or the 60fps if disabled.

Original report was on Chrome Beta 126.0.6478.8 , Windows 11. I have yet to be able to reproduce this on the same browser on macOS.

Hi! Thanks, I'm hoping to get sometime this weekend on my windows 10 install. Unless Microsoft/chrome is somehow majorly changed how the priority scheduler queue works in windows 11 it shouldn't be all that different.
I also had a thought today that I probably just need a different timing mechanism anyways instead of relying on winits AboutToWait event. I think much of the winit development hasn't accounted for cases like emulation where you need a consistent timer not tied to the rate you receive events and where you don't want to churn the event loop as fast as possible by using Poll. The WaitUntil control flow seems like it would work for this but I haven't had much luck getting it to work.
I'm any event, I'm going to experiment some more. Having a reliable way to reproduce would help determine if it's actually solved or not though.

@sn-o-w So I tested on Windows 10 with Chrome Beta 126.0.6478.8 with a known good ROM and couldn't reproduce any pauses due to lack of input. Have you tried other ROMs? There is a surprising range of quality when it comes to finding ROMs online. For example, do any of the included homebrew ROMs have a similar issue where it pauses intermittently unless the mouse is moved or keys pressed? I haven't deployed the changes I made yet, as I was trying to reproduce first to ensure they are useful changes that won't negatively impact overall performance. I assume you haven't made any other settings changes from the default Chrome or Window install that would throttle or otherwise limit performance?

Thanks for those details. Unfortunately, I still can't reproduce. Performance stats being open should have little to do with it, because the reason it's not working is that toggling it via the Debug menu like that is simply failing to send the message to the emulation thread to start sending stats over a channel which is fixed on main already. If you toggle it via Ctrl-F the stats should work as expected.
It looks like you have a number of browser plugins installed - have you tried with a fresh install or incognito with extensions disabled? Another thing you may try is going directly to https://lukeworks.tech/tetanes-web/index.html - the primary page uses an iframe, which shouldn't normally be an issue, but best to rule it out.
From the video it's looking like the entire event loop is being halted - even the run time, that should be ticking every second is stalling out. The only way I can think that could happen is that if the underlying priority scheduler isn't calling back to winit frequently enough. With the Poll and WaitUntil control flow strategies for the web, winit relies on the Scheduler API: https://developer.mozilla.org/en-US/docs/Web/API/Scheduler/postTask
If disabling all plugins still results in issues, I'd need some more detailed performance profiling from Chrome to pin point why this is happening. You can do that by opening up the developer console and going to the Performance tab, recording, then reproducing the issue. You can then save the profile and attach it for further review.

I did have one other thought that may explain why having the performance stats window open affects things. GC pauses. Every string for the UI (label, button, etc) ends up being a new allocation each frame. It's an unfortunate limitation of the egui API right now and there's not a clear workaround - see https://github.com/emilk/egui/issues/1098
Does the issue happen if you have no other windows open and disable showing the menu bar as well?

Oh great. That should help a lot. Thanks!

Does the issue happen if you have no other windows open and disable showing the menu bar as well?

What do you mean by "disable showing the menu bar as well"? Do you mean the Performance Stats? Because if the Performance Stats window is not opened, everything is fine.

Under the Window menu there's a checkbox to hide the menu bar - Ctrl+E shortcut by default.
If things work fine, that's interesting. Can you try having the Preferences or Keybinds windows open (under the Config menu)? If those can stay open and not have this issue then that really narrows it down and I should be able to find a more permanent fix without needing to reproduce.


Doc issue ?

Hello,
I believe that there might be a mistake in the doc in "Running a JobManager or a TaskManager"
Given command for jobmanager : "$ docker run --name flink_jobmanager -d -t flink taskmanager"
Given command for taskmanager : "$ docker run --name flink_taskmanager -d -t flink taskmanager"
For me jobmanager command should be "$ docker run --name flink_jobmanager -d -t flink jobmanager"
Am I right or did I understand something wrong ?

Nope, you're right. Thanks for the report, I'll get it fixed!


Add a shortcut to toggle the visibility of private components in the component browser

Pull Request Description
Closes #4962
This PR adds the cmd+alt+p shortcut to toggle the visibility of components with a "PRIVATE" tag in the component browser. The default is to have these private components hidden.
https://user-images.githubusercontent.com/117099775/218478582-8c803d96-77b0-44d9-8e92-ace87fa0339b.mp4
Important Notes

Checklist
Please include the following checklist in your PR:

[x] The documentation has been updated if necessary.
[x] All code conforms to the
Scala,
Java,
and
Rust
style guides.
All code has been tested:

[x] Unit tests have been written where possible.
[x] If GUI codebase was changed: Enso GUI was tested when built using BOTH
./run ide build and ./run ide watch.

On the video, when you are switching modes, the icons on the left of the component browser are blinking - this should not happen. Do you know why it is so now? :)

I suspect this has to do with the selection changing when the component list is updated. I'll investigate and fix the issue.

On the video, when you are switching modes, the icons on the left of the component browser are blinking - this should not happen. Do you know why it is so now? :)

The navigator buttons glitch should be fixed now.


Private message a user if no conversation has been started yet.

I can send private message to a user same a as how I send message to a room like so:
module.exports = (robot) ->
  robot.router.post "/hubot/say", (req, res) ->

    room = req.body.room
    message = req.body.message

    robot.logger.info "Message '#{message}' received for room #{room}"

    user = robot.adapter.userForId 'broadcast'
    user.room = room
    user.type = 'groupchat'

    if message
      robot.send user, "#{message}"

    res.writeHead 200, {'Content-Type': 'text/plain'}
    res.end 'Thanks\n'

BUT I can only send private message to people who actually have a conversation with the bot beforehand, and I cannot send private messages to people who aren't yet.
How can I send private messages to all users, without needing them to message the bot first.
Thanks!

From this commit [1156fd60baa63de63e3c44aa1253c85e4b16b2b1] onwards, you can private message any user.

@suhasgaddam thanks, let me take a look at that on implement that base on that one :)

I believe this should no longer be an issue, so I am closing as resolved.


test: remove pytest-splunk-addon as not used

pytest-splunk-addon is not used in the current state, so there is no reason to keep it as it is for now.
And, it depends on splunk-appinspect, which uses jinja2 version 2, which is a blocker for migration to jinja2 version 3.

Codecov Report

Merging #264 (7d1da98) into main (d963aef) will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #264      +/-   ##
==========================================
- Coverage   59.09%   59.05%   -0.04%
==========================================
  Files          42       42
  Lines        2596     2596
==========================================
- Hits         1534     1533       -1
- Misses       1062     1063       +1

Impacted Files
Coverage Δ

splunk_add_on_ucc_framework/start_alert_build.py
78.04% <0.00%> (-2.44%)
: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 d963aef...7d1da98. Read the comment docs.

And it speeds up poetry install command in the CI too.

:tada: This PR is included in version 5.5.5 :tada:
The release is available on:

v5.5.5
GitHub release

Your semantic-release bot :package::rocket:


KYLIN-4470 The user cannot log in kylin normally after being assigned…

… to a group
Proposed changes
Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.
Types of changes
What types of changes does your code introduce to Kylin?
Put an x in the boxes that apply

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

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have create an issue on Kylin's jira, and have described the bug/feature there in detail
[x] Commit messages in my PR start with the related jira ID, like "KYLIN-0000 Make Kylin project open-source"
[x] Compiling and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If this change need a document change, I will prepare another pr against the document branch
[ ] Any dependent changes have been merged

Further comments
If this is a relatively large or complex change, kick off the discussion at user@kylin or dev@kylin by explaining why you chose the solution you did and what alternatives you considered, etc...

Codecov Report

Merging #1187 into master will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master    #1187      +/-   ##
============================================
- Coverage     25.00%   25.00%   -0.01%
- Complexity     6251     6254       +3
============================================
  Files          1449     1449
  Lines         88499    88533      +34
  Branches      12373    12381       +8
============================================
+ Hits          22129    22134       +5
- Misses        64190    64221      +31
+ Partials       2180     2178       -2

Impacted Files
Coverage Δ
Complexity Δ

...g/apache/kylin/rest/controller/UserController.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...che/kylin/stream/core/storage/CheckPointStore.java
63.63% <0.00%> (-3.04%)
21.00% <0.00%> (-1.00%)

.../java/org/apache/kylin/engine/spark/SparkUtil.java
0.00% <0.00%> (ø)
0.00% <0.00%> (ø%)

...ava/org/apache/kylin/rest/service/CubeService.java
0.00% <0.00%> (ø)
0.00% <0.00%> (ø%)

...ache/kylin/metrics/lib/impl/hive/HiveProducer.java
0.00% <0.00%> (ø)
0.00% <0.00%> (ø%)

...rg/apache/kylin/cube/inmemcubing/MemDiskStore.java
70.21% <0.00%> (+0.60%)
7.00% <0.00%> (ø%)

...a/org/apache/kylin/dict/Number2BytesConverter.java
82.53% <0.00%> (+0.79%)
18.00% <0.00%> (+1.00%)

...he/kylin/job/impl/threadpool/DefaultScheduler.java
76.74% <0.00%> (+2.32%)
12.00% <0.00%> (ø%)

...g/apache/kylin/common/util/CliCommandExecutor.java
31.70% <0.00%> (+2.95%)
9.00% <0.00%> (+3.00%)

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 fa4f72d...fdb220b. Read the comment docs.

Check list

[ ] Step 1. [OPTIONAL]Understand background/root cause/design basically(one hour EST) . Its issue type is

[ ] bug fix
[x] new feature
[ ] enhancement

[ ] Step 2. Test cases are designed and documented (30 minutes EST).
[ ] Step 3. Prepare specific env, for example:

mock data (maybe some specific data type)
test env (maybe install a RDBMS instance).

[ ] Step 4. Verify and make sure test cases passed.
[ ] Step 5. Paste manual important steps and screenshots here (20 minutes EST).

If you find difficulty in pick most important evidence, please attach diagnosis package.

[ ] Step 6. Do more check in user perspective (20 minutes EST)

[ ] Doc need be updated? And if it is updated? Ask help for release manager if so.
[ ] If it is a breaking change so we should notify Kylin community? Ask help for release manager if so.

[ ] Step 7.  Summarize this test (20 minutes EST).

Total estimate

4 hours for small issue from optimistic estimate.

Note
If you find some unexpected and unrelated error/mistake, please DO report it if it is truly a mistake, I think we may research and fix it in the future.
If you find background information/root cause analysis is not complete or ambiguous, please try to contact to author or do a quick research and record what you find. It is a good chance to learn something interesting.
If you find it is not easy to design testcase, please notify release manager.

Design test cases
Prepare test env

bin/kylin.sh start

Test case

Create user named test_user and assign it to ROLE_ANALYST group
Sign out ADMIN and use test_user user login

Expected result

User test_user can login kylin normally

Prepare test env

[x] Built on commit_SHA : 5d592b91769b5129c76df3c8b1deb3bd58ebcbb8
[x] Hadoop env : CDH 5.7

Verify test case

kylin 3.0.1
User test_user can't log in kylin for Bad credentials after being assign group.

master
User test_user can log in kylin normally after being assign group.

Summary

Bug fixed.


MERV filter guidance issues

https://www.microcovid.org/blog/hepafilters currently says:

Central heat / AC systems don't work for this. These typically use MERV-rated filters. These are significantly less effective at removing small particles than HEPA-rated filters (the best MERV rating, MERV-16, merely removes 75% of particles.

MERV-16 is rated at 95%, not 75%: https://www.nafahq.org/understanding-merv-nafa-users-guide-to-ansi-ashrae-52-2/  Maybe you were thinking of MERV-14's performance in the 0.3-1 micron range?
Even then, doesn't it depend on airflow?  A lower-filtration option should outperform a higher-filtration one if the flow difference is large enough.

doesn't it depend on airflow? A lower-filtration option should outperform a higher-filtration one if the flow difference is large enough.

Lots more on this now: https://www.jefftk.com/p/merv-filters-for-covid

@beshaya, you had written the original article - curious for your thoughts on this.


replace googlemock source from google site to github

google site is blocked for people under the wall, we could help them by using official google github repo

Can one of the admins verify this patch?

Jenkins, test this please.

@tensorflow-jenkins test this please
(no, sadly only we can kick off tests)

well, that didn't work :(

@vrv , oh, there's some files missing in the github version of gmock, I'll see how to solve this.


New install on S3-Box-3 ends up in boot loop

I bought a new S3-Box-3 and have not been able to get it to load the voice assistant firmware for the last few weeks. Currently running HAOS 2024.7.4 and ESPHome 2024.7.3
Seems to be getting stuck in a boot loop as per below log output
[13:00:59][C][api:025]: Setting up Home Assistant API server... [13:00:59][C][voice_assistant:072]: Setting up Voice Assistant... [13:00:59][C][esp_adf.speaker:024]: Setting up ESP ADF Speaker... [13:00:59][I][app:062]: setup() finished successfully! [13:01:04]E (12771) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time: [13:01:04]E (12771) task_wdt:  - loopTask (CPU 1) [13:01:04]E (12771) task_wdt: Tasks currently running: [13:01:04]E (12771) task_wdt: CPU 0: IDLE0 [13:01:04]E (12771) task_wdt: CPU 1: IDLE1 [13:01:04]E (12771) task_wdt: Aborting. [13:01:04] [13:01:04]abort() was called at PC 0x420785f8 on core 0 [13:01:04] [13:01:04] [13:01:04]Backtrace: 0x403779d2:0x3fc9d440 0x40380f71:0x3fc9d460 0x40388dba:0x3fc9d480 0x420785f8:0x3fc9d4f0 0x403783b5:0x3fc9d510 0x4212deb3:0x3fcaf110 0x42078dd9:0x3fcaf130 0x403824d0:0x3fcaf150 WARNING Found stack trace! Trying to decode it /data/cache/platformio/packages/toolchain-xtensa-esp32s3/bin/xtensa-esp32s3-elf-addr2line: '/data/build/esp32-s3-box-3-059f88/.pioenvs/esp32-s3-box-3-059f88/firmware.elf': No such file /data/cache/platformio/packages/toolchain-xtensa-esp32s3/bin/xtensa-esp32s3-elf-addr2line: '/data/build/esp32-s3-box-3-059f88/.pioenvs/esp32-s3-box-3-059f88/firmware.elf': No such file /data/cache/platformio/packages/toolchain-xtensa-esp32s3/bin/xtensa-esp32s3-elf-addr2line: '/data/build/esp32-s3-box-3-059f88/.pioenvs/esp32-s3-box-3-059f88/firmware.elf': No such file /data/cache/platformio/packages/toolchain-xtensa-esp32s3/bin/xtensa-esp32s3-elf-addr2line: '/data/build/esp32-s3-box-3-059f88/.pioenvs/esp32-s3-box-3-059f88/firmware.elf': No such file /data/cache/platformio/packages/toolchain-xtensa-esp32s3/bin/xtensa-esp32s3-elf-addr2line: '/data/build/esp32-s3-box-3-059f88/.pioenvs/esp32-s3-box-3-059f88/firmware.elf': No such file /data/cache/platformio/packages/toolchain-xtensa-esp32s3/bin/xtensa-esp32s3-elf-addr2line: '/data/build/esp32-s3-box-3-059f88/.pioenvs/esp32-s3-box-3-059f88/firmware.elf': No such file /data/cache/platformio/packages/toolchain-xtensa-esp32s3/bin/xtensa-esp32s3-elf-addr2line: '/data/build/esp32-s3-box-3-059f88/.pioenvs/esp32-s3-box-3-059f88/firmware.elf': No such file /data/cache/platformio/packages/toolchain-xtensa-esp32s3/bin/xtensa-esp32s3-elf-addr2line: '/data/build/esp32-s3-box-3-059f88/.pioenvs/esp32-s3-box-3-059f88/firmware.elf': No such file [13:01:04] [13:01:04] [13:01:04] [13:01:04] [13:01:04]ELF file SHA256: 03e08a82b34a8edd [13:01:04] [13:01:04]Rebooting...
yaml file is as per below
`substitutions:
name: esp32-s3-box-3-059f88
friendly_name: ESP32 S3 Box 3 059f88
packages:
esphome.voice-assistant: github://esphome/firmware/voice-assistant/esp32-s3-box-3.yaml@main
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
api:
encryption:
key: 9xuFYZ2WUQalroebq6HH+/LmVsi5m0p/AvvlObchLx4=
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password`

try again, dont install it via esphome integration, use the website.. esphome is garbage.. it bricks devices from my experience..
https://www.home-assistant.io/voice_control/s3_box_voice_assistant/
Open this in chrome or edge only otherwise you wont be able to conenct from the website..  select the box 3 option

press connect and install it that way, once it installs, press connect on the page again and in the pop up there should be add wifi option. if not then try again, keep pressing, try rebooting device, at some point it will show up.. it took me 15 min to get it..

That's what I tried initially, and although ESPHome recognised it once therefore it must have connected to the network (which I can see in the logs), it never actually worked. I have tried again through the website you linked and I still get the same error ultimately ended up in a boot loop.
E (13070) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time: E (13070) task_wdt:  - loopTask (CPU 1) E (13070) task_wdt: Tasks currently running: E (13070) task_wdt: CPU 0: IDLE0 E (13070) task_wdt: CPU 1: IDLE1 E (13070) task_wdt: Aborting.

I have the same issue: Installed to a new ESP32-S3-BOX-3 via the HA voice assistant website. Installation, Wi-Fi setup and pairing to HA worked without issue. The box then works, until I reboot it, e.g. hit reset button or unplug and plug it in again. It's then showing the loading, three dot image, thinks for a moment, flickers, and shows the loading screen again, ... By checking the logs, again though the website, I can see it's rebooting over and over with the same error message as in @goobags's last comment.


rent

Please provide us with the following information:

OS?

Windows 7, 8 or 10. Linux (which distribution). Mac OSX (Yosemite? El Capitan?)

Versions.

Please run ng --version. If there's nothing outputted, please run in a Terminal: node --version and paste the result here:

Repro steps.

Was this an app that wasn't created using the CLI? What change did you do on your code? etc.

The log given by the failure.

Normally this include a stack trace and some more information.

Mention any other details that might be useful.

Thanks! We'll be in touch soon.

@vyava It looks like you may have opened this issue by accident :)

@deebloo It seems like so :) Sorry for that.


disable modal for images with data-modal="false" in docs pages

Notes for Reviewers
This PR fixes

currently, all imgs are opened in modal on pages using docs layout causing the nav grid icon to malfunction, the pr prevents this behaviour for imgs that have data-modal attribute set as false ( we an just set the attribute for such other opt-out icons as well)

Signed commits

[ ] Yes, I signed my commits.

@leecalcote
This was a bug in the site due to which, from any docs page when clicked all the <img /> elements would open in modal including the footer icons. e.g.

I fixed this here.

Thanks for getting this fixed!