Fix linker error when creating symlinks on Windows

When working on Windows builds for ponyup, I found that it wouldn't
link due to an error with the FFI call in symlink. This commit
adds a test to verify that symlink works.
This PR contains a test that I verified fails on Windows and then adds a change to FilePath.symlink that then allows the failing test to pass.

Symlink test failed: https://ci.appveyor.com/project/ponylang/ponyc/builds/29979213/job/li79c53euxnw147r#L8794

@Theodus I'm aware. Thus the "do not merge".

@kulibali So, if you pass "1" to CreateSymbolicLink (its a directory)... then it fails, if I change it to always pass U32(0) as the 3rd parameter it always passes. Not really sure what is up with that. You mentioned you would investigate.
Should I hard-code U32(0) for now and you can look at your leisure and this can be merged or do you want to look into it more first?

So theres problems with symlinks on Windows: you can only create them if you are running with elevated privileges (you have run a command window as Administrator, or spawned a process with elevated privileges, in which case a UI dialog will pop up, meaning we can't use this in CI or are using "Developer Mode" os-wide).
https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/
I see a couple of problems -- if we include a symlink test on Windows then it will only work with elevated privileges, which are a problem for CI.  Also, ponyup's symlinking stuff won't work without elevated privileges.
Just for illustrative purposes, the following diff makes the FilePath.symlink() method try its best to create the symlink, and adds a more extensive test.
 diff --git a/packages/files/_test.pony b/packages/files/_test.pony
 index 981668f3..c41a6f5c 100644
 --- a/packages/files/_test.pony
 +++ b/packages/files/_test.pony
 @@ -51,6 +51,7 @@ actor Main is TestList
      test(_TestFileLinesSingleLine)
      test(_TestFileLinesMultiLine)
      test(_TestFileLinesMovingCursor)
 +    test(_TestFilePathSymlink)

 primitive _FileHelper
 fun make_files(h: TestHelper, files: Array[String]): FilePath ? =>
 @@ -1068,3 +1069,49 @@ class _TestFileLinesMovingCursor is UnitTest
      h.assert_eq[String](fl3.next()?, "d")
      h.assert_eq[USize](file.position(), 7)
      end
 +
 +class _TestFilePathSymlink is UnitTest
 +  var tmp_dir: (FilePath | None) = None
 +
 +  fun ref set_up(h: TestHelper) ? =>
 +    tmp_dir = FilePath.mkdtemp(h.env.root as AmbientAuth, "symlink")?
 +
 +  fun ref tear_down(h: TestHelper) =>
 +    try
 +      (tmp_dir as FilePath).remove()
 +    end
 +
 +  fun name(): String => "files/FilePath.symlink"
 +
 +  fun ref apply(h: TestHelper) ? =>
 +    test_file(h)?
 +    test_directory(h)?
 +
 +  fun ref test_file(h: TestHelper) ? =>
 +    let target_path = (tmp_dir as FilePath).join("target_file")?
 +    let content = "abcdef"
 +    with target_file = CreateFile(target_path) as File do
 +      h.assert_true(
 +        target_file.write(content),
 +        "could not write to file: " + target_path.path)
 +    end
 +
 +    let link_path = (tmp_dir as FilePath).join("symlink_file")?
 +    h.assert_true(
 +      target_path.symlink(link_path),
 +      "could not create symbolic link to: " + target_path.path)
 +
 +    with link_file = OpenFile(link_path) as File do
 +      let fl = FileLines(link_file)
 +      h.assert_true(fl.has_next())
 +      h.assert_eq[String](fl.next()?, content)
 +    end
 +
 +  fun ref test_directory(h: TestHelper) ? =>
 +    let target_path = (tmp_dir as FilePath).join("target_dir")?
 +    h.assert_true(target_path.mkdir(true))
 +
 +    let link_path = (tmp_dir as FilePath).join("symlink_dir")?
 +    h.assert_true(
 +      target_path.symlink(link_path),
 +      "could not create symbolic link to: " + target_path.path)
 diff --git a/packages/files/file_path.pony b/packages/files/file_path.pony
 index 8bd61c80..6e724cca 100644
 --- a/packages/files/file_path.pony
 +++ b/packages/files/file_path.pony
 @@ -246,7 +246,7 @@ class val FilePath

      0 == @rename[I32](path.cstring(), new_path.path.cstring())

 -  fun symlink(link_name: FilePath): Bool =>
 +  fun val symlink(link_name: FilePath): Bool =>
      """
      Create a symlink to a file or directory.
      """
 @@ -255,7 +255,67 @@ class val FilePath
      end

      ifdef windows then
 -      0 != @CreateSymbolicLink[U8](link_name.path.cstring(), path.cstring())
 +      try
 +        var err: U32 = 0
 +
 +        // look up the ID of the SE_CREATE_SYMBOLIC_LINK privilege
 +        let priv_name = "SeCreateSymbolicLinkPrivilege"
 +        var luid: U64 = 0
 +        var ret = @LookupPrivilegeValueA[U8](
 +          USize(0),
 +          priv_name.cstring(),
 +          addressof luid)
 +        if ret == 0 then
 +          return false
 +        end
 +
 +        // get current process pseudo-handle
 +        let handle = @GetCurrentProcess[USize]()
 +        if handle == 0 then
 +          return false
 +        end
 +
 +        // get security token
 +        var token: USize = 0
 +        let rights: U32 = 0x0020 // TOKEN_ADJUST_PRIVILEGES
 +        ret = @OpenProcessToken[U8](handle, rights, addressof token)
 +        if ret == 0 then
 +          return false
 +        end
 +
 +        // try to turn on SE_CREATE_SYMBOLIC_LINK privilege
 +        // this won't work unless we are administrator or have Developer Mode on
 +        // https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/
 +        var privileges: _TokenPrivileges ref = _TokenPrivileges
 +        privileges.privilege_count = 1
 +        privileges.privileges_0.luid = luid
 +        privileges.privileges_0.attributes = 0x00000002 // SE_PRIVILEGE_ENABLED
 +        ret = @AdjustTokenPrivileges[U8](
 +          token,
 +          U8(0),
 +          privileges,
 +          U32(0),
 +          USize(0),
 +          USize(0))
 +        if ret == 0 then
 +          @CloseHandle[U8](token)
 +          return false
 +        end
 +
 +        ret = @CloseHandle[U8](token)
 +        if ret == 0 then
 +          return false
 +        end
 +
 +        let flags: U32 = if FileInfo(this)?.directory then 3 else 0 end
 +        ret = @CreateSymbolicLinkA[U8](
 +          link_name.path.cstring(),
 +          path.cstring(),
 +          flags)
 +        ret != 0
 +      else
 +        false
 +      end
      else
      0 == @symlink[I32](path.cstring(), link_name.path.cstring())
      end
 @@ -314,3 +374,11 @@ class val FilePath

      0 == @utimes[I32](path.cstring(), addressof tv)
      end
 +
 +struct ref _TokenPrivileges
 +  var privilege_count: U32 = 1
 +  embed privileges_0: _LuidAndAttributes = _LuidAndAttributes
 +
 +struct ref _LuidAndAttributes
 +  var luid: U64 = 0
 +  var attributes: U32 = 0

@kulibali do you want to update that branch with the patch and we can not have the test on for Windows but merge it so it will at least work?
I'd say we also update the docs to note the requirement re: administrative privileges.

OK, will do.

@SeanTAllen this looks good to me


Fix the french text author names

The authors of the french text are not correct

'Le masque' written by 'Charles Baudelaire'
'Le bateau ivre' written by 'Arthur Rimbaud'

Fix a broken url in the readme.

Merged and released on Nuget.org in 1.1.0. Thank you very much!


File extension specific settings

This was discussed here:
https://github.com/Microsoft/vscode/issues/1587
but instead what was implemented was language specific settings. That doesn't help us where we have the same language in files with different extensions but what to impose different settings on them.
(ex. I have a DSL like language that looks like JS, I want to make it syntax highlight as JS, but disable validation because some things aren't quit right. Having to fork the JS language bindings for that and maintain it is unfortunate.)

@esprehn You can associate file types with languages and associate settings to languages
Example:
"files.associations": {
	"*.idt": "markdown"
}
"[markdown]": {
          "editor.tabSize": 2
}

Is there a different use case that you need to associate settings to file associations?

I explained why I need this in the report example. I have a DSL that looks like JS, but isn't quite JS. I can map files with extension .foo to JS, but I can't say "syntax highlight .foo files, but don't show syntax errors". I would need to totally disable syntax errors for all JS language files. Similarly I may want other editor settings different for .foo files (ex gutter width), but I do want them syntax highlighted like JS.
I often do this in other editors like Sublime where I have various languages that have no language definition mapped to another language (ex. some obscure language I might map to Java since they have the same keywords.) That way I get nice syntax highlighted code which is easier to read. VSCode forces you to set things like the syntax error (red underline) reporting for a whole language, not on a per extension basis.

@esprehn I see. I agree with the editor settings example.
But for excluding files from linters, I think linters should have an option to exclude.

Having those settings be on a per linter setting seems unfortunate, there's tons of settings like php.validate.enable, each type has a {lang}.validate.enable flag. Instead of having every linter support .exclude it'd be much easier to just allow "[.foo]": { "php.validate.enable": false }

I don't like that unless the user has an extension installed to handle a file-type, I cannot specify the tab / ruler settings for arbitrary file-types in a portable, reliable way. For example, I have my own Markdown like system "ReMarkable" with a file-type of ".rem", it requires the use of tabs instead of spaces. I want to be able to specify this in the repositories I distribute, but with VSCode as it currently stands cannot do this.
".editorconfig" gets me almost there, but it's not a built in extension (it should be), and it doesn't support setting rulers.
Please reconsider this feature request.

Here's my feeble attempt to stop it from formatting production files...
"editor.formatOnSave": true,
"files.associations": {
    "**/dist/**": "ignore"
  }

It works. Problem is, it converts it to Plain Text. I wish the following worked...
"[**/dist/]": {
   "editor.formatOnSave": false
}

@mjbvz this discussion seems mostly central to file extension specific settings (except for @joemaffei's comment  above), whereas #50888 & #52087 (closed as dupes) focus on individual files and directories - if this discussion is meant to encompass all three of these issues as one feature request now, can you consider renaming it so that others trying to open similar issues will be more easily able to identify this as a potential duplicate?
If this discussion will remain central to file extensions only, can one of the other issues be reconsidered as a separate feature request? Thank you!

I want word wrap on for .txt files but not for .csv files.

Just to add a use case: We format some of our our C++ headers manually but always use clang-format for source files, so I'd like to enable format-on-save just for "*.cpp" files.

I wish the following worked...
"[**/dist/]": {
   "editor.formatOnSave": false
}

I'd like this too - is there any way to make this work today?

if editorConfig was bundled with VSCode this would be so easy (for the users), hope to see this achieved soon
"files.insertFinalNewline": false,
[keywords.txt]{
    "files.insertFinalNewline": true,
}

if editorConfig was bundled with VSCode this would be so easy (for the users), hope to see this achieved soon
"files.insertFinalNewline": false,
[keywords.txt]{
    "files.insertFinalNewline": true,
}

editorConfig would only solve this for behaviors supported by editorConfig.

indent_style
indent_size
tab_width
end_of_line (on save)
insert_final_newline (on save)
trim_trailing_whitespace (on save)

FormatonSave is not a supported behavior of editorConfig
"[**/dist/]": {
   "editor.formatOnSave": false
}

editorConfig would only solve this for behaviors supported by editorConfig.

Right, but i guess that after they implement the code that recognize the file type using per file settings should be feasible

The "by language" instead of "by filetype" also isn't useful when you're dealing with a proprietary language and extension that doesn't have an existing vscode extension and isn't recognized by vscode already.

Hello. I'm facing a similar problem.
I try to enable editor rulers for only a single file or files matching the pattern but it seems there's no way to do such a thing.
I've tried the following ways. No one worked for me
    "[./myfile]": {
        "editor.rulers": [20]
    },
...
    "[{workspaceFolder}/myfile]": {
        "editor.rulers": [20]
    },
...
    "[/absolute/path/to/my/file]": {
        "editor.rulers": [20]
    },

@arsdever I hope you figured out how to do it, but here's the solution.
In settings JSON file add this field.
{
  "files.associations" : {
    "*.myextension": "myfile"
}

After this you can add file extension specific settings
{
  "[myfile]": {
    "editor.rulers": [20]
  }
}

From my own issue... I think it would be nice to support multiple extensions and/or globs in a setting via comma separated list (whitespace trimmed out), using parens as a block instead of square braces for easier detection.
For Example:
{
  "(.txt, .ans, .asc, .msg, .rip)": {
    "editor.renderControlCharacters": true,
    "files.encoding": "cp437",
  },
}

Adding my use case here:
I am programming schematics for our Angular project and would love to have ejs syntax highlighting for the .template files (Angular is not using ejs but Angular template syntax is quite the same). What I do not want is auto formatting for those files since they are treated as HTML and get formatted pretty ugly.
  "[*.template]": {
    "editor.formatOnSave": false
  },

That could even replace the "files.associations" setting:
"[file:*.template]": {
  "language": "html",
  "editor.formatOnSave": false
},

This feature would also be really helpful for ignoring files when having project wide organize-imports on save.
If you have global imports in some files (maybe because the library you are using is forcing you to do so), you will have to disable auto organize for the whole project. Otherwise your code will break, due to reordering of the imports.
Like so:
"editor.codeActionsOnSave": {
  "source.organizeImports": true
},
[!file/with/global/import]: {
  "editor.codeActionsOnSave": {
    "source.organizeImports": false
  },
}

Another good case is to set different settings for *.spec.ts / *.test.ts files. Means: A pseudo extension. For example like:
{
  "editor.rulers": [120],
  "*.(spec|test).ts": {
    "editor.rulers": [80],
  }
}

If we want a more stronger typed key, we could use "file:*.(spec|test).ts". But I'm sure, you have a better idea for that. :)
Not sure if regex will work. Alternatives e.g. *.{spec,test}.ts or [*.spec.ts, *.test.ts]. It would be greate if I could specify multiple names.

This feature would also be helpful for adjusting test configuration when running an integration tests vs a unit test. I'd like to be able to add adjust go.testTags when running integration tests, for example:
{
  "[*_int_test.go]": {
    "go.testTags": "integration",
  }
}

In my case, a.csv is encoded by cp932, b.csv is encoded by UTF-8. In this case, when I want to customise files.encoding, file specific, not file extension specific, config is required.

Another use case: tabSize: 4 for .php files, tabSize: 2 for .phtml files. I'd use the latter for HTML with some PHP parts inside and the former for PHP code only files.

@Neonit For your use-case I can recommend https://editorconfig.org/

@deiga Went with modelines for now, but maybe an editorconfig would be even more convenient. Thanks for your suggestion.

Another usecase is to disable removing trailing whitespace in .unity files, which Unity would add back.
The following does not work, because no "unity" language exists, and it doesn't seem to be possible to define your own languages in settings.json:
    "[unity]": {
        "files.trimTrailingWhitespace": false
    },
    "files.associations": {
        "*.unity": "unity"
    },

https://github.com/microsoft/vscode/issues/35350#issuecomment-895211215 is also solved with editorconfig.

While editorconfig is possible, it would be nice to have an in-the-box solution as well.

My use case is for overriding wordWrapColumn on a per-file/directory basis — especially in JS/PHP config files relating to APIs. When wrapped, the long endpoint urls become disorderly very quickly, and it'd be nice to make these a bit more readable.
Definitely hope to see this implemented, but I'm also going to take a look at extending what's already been accomplished in modelines.

Python Use Case: Sorting imports on save can break code in setup.py. e.g. setuptools must be imported before Cython when creating Extension modules, but alphabetically Cython comes ahead of it. black now alphabetizes imports (not just isort), so this is a headache when checking in code.

#35350 (comment) is also solved with editorconfig.

Again, not for formatOnSave or codeActionsOnSave. editorconfig does not handle things like excluding specific files from having their imports sorted.

Python Use Case: Sorting imports on save can break code in setup.py. e.g. setuptools must be imported before Cython when creating Extension modules, but alphabetically Cython comes ahead of it. black now alphabetizes imports (not just isort), so this is a headache when saving and checking in code.

Looks like I'm late to the party. @muuvmuuv @zawys @uloco already mentioned the python import sorting use case, so I gave them all a +1.

FWIW, for Python, adding # isort: skip after import works
# These do not get sorted
from setuptools import find_packages, setup  # isort: skip
from Cython.Build import cythonize  # isort: skip

My settings.json has the following:
"[python]": {
    "editor.codeActionsOnSave": {
    "source.organizeImports": true
    },
    "editor.formatOnSave": true
}

I am on Windows 10 and my Visual Studio Code is version 1.66.1

Another use case... Unity's UI Toolkit now uses XML and stylesheets to design user interfaces (.uxml and .uss files). Easy enough to add support for both files with a straight-forward option in settings.json:
  "files.associations": {
    "*.uss": "css",
    "*.uxml": "xml"
  },

The problem is some rules make use of their own vendor prefix: -unity- among several differences to CSS.
.bar-value-text {
    font-size: 30px;
    -unity-text-align: middle-center;
}

I'm not expecting support for .uss files without a VSCode extension. In the meantime, it would be nice to silence some of the warnings without interfering with my normal web dev workflow, outside of Unity. As others have suggested, I'd love to be able to make an exception to my settings.json file specifically for the .uss file extension.
Something like:
"[*.uss]": {
  "css.lint.compatibleVendorPrefixes": "ignore",
  "css.lint.unknownVendorSpecificProperties": "ignore",
}

I usually find myself jumping to types.d.ts file definitions when working on Typescript and fixing that file, only to compile and find out that nothing's changed and I didn't update the definition.
In my case I want to change the background of .d.ts pseudo extension to notice when I'm about to edit an already compiled file. Even better if I can set this setting to **/dist/*.d.ts or `**/build/*.d.ts/ etc.

Another use case, I'm using Prysk to write tests. The file extension for test files is .t and I want to disable removing trailing white spaces on save for these files. I can assosicate these files with [plaintext], but that affects all plaintext files, which is not ideal.
In general, it should be possible to have settings for file extensions that are generally unknown to VSCode.

Another use case, I'm using Prysk to write tests. The file extension for test files is .t and I want to disable removing trailing white spaces on save for these files. I can assosicate these files with [plaintext], but that affects all plaintext files, which is not ideal.
In general, it should be possible to have settings for file extensions that are generally unknown to VSCode.

You could use an editorconfig for that:
[*.t]
trim_trailing_whitespace = false

@KuSh I tried that, but it seems that VSCode settings are trumping editorconfig config.

For C/C++ files I'd like to enable format on save for some file paths. Some of the source files have been formatted (clang-format). I would like to keep those files formatted, but not touch other files.

Is there any interest from the team to do anything about this?
It's been over three years since a member even commented on this https://github.com/microsoft/vscode/issues/35350#issuecomment-578640866 and it's been over five years since a member made a comment actually about this issue https://github.com/microsoft/vscode/issues/35350#issuecomment-335399238.
If you're not going to implement something, at least let us know with a wontfix or somethign rather than leaving the issue open for five and a half years with no word.

I think it's pretty clear there is no interest from the team to address this. I'm not certain why it hasn't been closed other than so duplicates aren't created.
The options for a work around are not ideal either.
I also don't see this as the job of a plugin or a job a single plugin could do well.

Honestly, I don't know why I keep being surprised at this sort of thing in Microsoft projects.
Someone suggests something cool, everyone who sees it loves it, permanent radio silence.
It's not all feature requests, not by a long shot, but enough requests are ignored that it's intensely uppsetting.

It could be that the effort is too high and it benefits too few users.

I too would find this useful. Our use case is as follows: We are redesigning our web application. In one folder we have all the old legacy CSS/JS, which doesn't conform to our new coding style/formatters. In another folder, we have all our new CSS/JS, which we want formatting to run on save for. We have turned on format on save for JS/CSS, but that means that now when we edit the old CSS/JS, it tries to format that, leading to lots of changes in the diff. Would be helpful to be able to turn off format on save for a path.
"[css][scss][javascript][typescript]": {
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true
},
"[app/assets/**/*]": {
   "editor.formatOnSave": false
}

Given that this is 6 years old now and the only response from anyone close to being on the vs code team has been:
"no one wants this" and
"use an extention"
I think it is probably safe to move on with the assumption it is never going to happen.
Gretchen Wieners will make "Fetch" happen faster than this will be addressed.

Just throwing in my support for this since it hasn't had any activity in a couple months.
My use case: I use Prettier to format my regular JSON files, but I have another file type that stores a whole bunch of data in JSON format and I have "files.associations": { "*.my-file-extension": "json" } set up for syntax highlighting. There's a bug in the Prettier formatter which breaks the JSON in these files, so I want to use the "vscode.json-language-features" formatter for my custom data type. Right now it seems to be one or the other, I can't set Prettier for regular JSON and JSON Language Features for my custom file extension JSON file.

Almost 7 years since this issue was created and such a basic feature still hasn't been implemented.
Embarrassing.

not even reacting to an open issue with this many upvotes

I'd assume that on a repo with 5000+ open issues, most/all devs have notifications disabled so they won't be overwhelmed with comments every second; thus I think they're only notified when specifically @ pinged.

After 7 years not having notifications on is not an excuse for not addressing g this issue.
6 years ago we got a "use an extension" answer and a "won't fix" resolution. there is still not an extension that handles many of these use cases elegantly.
I messaged the vscode TikTok account and asked them to feature this issue in a video.

Related on Stack Overflow: vscode setting for specific filename

my use case that doesn't work, is to support changed file extensions:
  "[html.erb]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "aliariff.vscode-erb-beautify"
  },

it seems it doesn't match the saved file... (only checks the last part?)
i only want to beautify html templates with this plugin, but not other template files that also uses the erb engine (like server provisioning config templates)

@Frexuz this issue is asking for a new feature that doesn't yet exist even for simple (single dot) file extensions.

Is this going to require another "[x, y, x]":  treatment where someone just implements a naive version and the team steal it and make it work properly? I think that may be the fastest way to get it into main.
Haven't comprehensively checked all messages but I feel like the general want is for a globbing syntax to allow for overriding settings based on the file. Since a glob pattern might overlap with the language [markdown] syntax we may want to consider a different style. How about something like "(glob pattern)". And all it would require is a pure glob match against the currently open file within the editor and that should do it. Anybody got other considerations for the design or does that cover most use cases?

My issue #232954 was closed referencing this topic. I partially agree, but there is one nuance I'd like to clarify:
It would be great to configure formatting rules not only by file extension but also by matching patterns in the file name using regular expressions. Something like **/*_model.dart (noting that this should apply within the scope of a single language).
I explain in more detail below why this is necessary in projects.
This feature would be especially useful for Dart and other languages where generated code, like constructors from packages like Freezed, becomes less readable with a standard line length of 80 characters. Being able to specify a longer line length (e.g., 200 characters) for these specific files would improve code readability without affecting the rest of the project.
Example of Desired Configuration:
"[dart]": {
  "editor.rulers": [80],
    "**/*_model.dart": {
    "editor.rulers": [200]
  }
}

Code Example Highlighting the Issue:
@immutable
@Freezed(makeCollectionsUnmodifiable: false)
class TransactionsRequestModel with _$TransactionsRequestModel {
  const TransactionsRequestModel._();

  @HiveType(typeId: HiveManager.idTransactionsRequestModel)
  const factory TransactionsRequestModel({
    @HiveField(0) @JsonKey(name: 'type') @Default(TransactionType.all) @TransactionTypeConverter() TransactionType type,
    @HiveField(1) @JsonKey(name: 'sort_by') @Default(SortFactorType.displayMostRecent) @SortFactorTypeConverter() SortFactorType sortFactor,
    @HiveField(2) @JsonKey(name: 'date_from') @DateConverter() DateTime? dateFrom,
    @HiveField(3) @JsonKey(name: 'date_to') @DateConverter() DateTime? dateTo,
    @HiveField(4) @JsonKey(name: 'search') @Default('') String search,
    @HiveField(5) @JsonKey(name: 'page') @Default(1) int page,
    @HiveField(6) @JsonKey(name: 'tags') @Default([]) @TagConverter() List<TagModel> tags,
    @HiveField(7) @JsonKey(name: 'category') int? categoryId,
  }) = _TransactionsRequestModel;

  factory TransactionsRequestModel.fromJson(Map<String, dynamic> json) =>
      _$TransactionsRequestModelFromJson(json);

  StatisticRequestModel get toStatistic {
    return StatisticRequestModel(
      type: type,
      dateTo: dateTo,
      dateFrom: dateFrom,
      search: search,
      tags: tags,
    );
  }
}

As shown above, setting the line length to 80 characters makes these constructors difficult to read and manage. A more flexible approach for file-specific formatting settings would greatly improve developer productivity and code clarity.


"Audit Log" link under Troubleshooting Guide references old content

It goes to a 2015 article that references Audit Logs resource, which are now referred to as Activity logs

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

ID: 8bd031e3-d36b-dae2-1ddc-f12439563545
Version Independent ID: 836c4826-05c8-3af8-30e8-ff67552ea958
Content: Azure Security Center Troubleshooting Guide
Content Source: articles/security-center/security-center-troubleshooting-guide.md
Service: security-center
GitHub Login: @rkarlin
Microsoft Alias: rkarlin

@kmchannon Thanks for your feedback! We will investigate and update as appropriate.

@kmchannon Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.

Hi @kmchannon thanks for catching this. we'll update the link!

#please-close


Error building windows installer, latest version

I'm trying to use the latest version with Electron 0.37.6, node 6.1.0, npm 3.8.6 but whatever i try it keeps give me this error:
Running "create-windows-installer:x64" (create-windows-installer) task
Warning: Cannot read property 'link' of undefined Use --force to continue.
I was trying it with Windows 7 which worked well until i updated to latest and OSX with wine

This module doesn't create installers.

create-windows-installer:x64 task it's using grunt-electron which fails, i reverted grunt-electron from 4.0.0 to 2.0.1 and it works so the problem is in this module

grunt-electron is just a tiny wrapper for electron-packager. Your problem is in that case there.


Memory link is not working

Every time i input Pokemon Black's GameSync ID in Pokemon Black2,game screen always prompt communicate error.

Can you provide the logs/debug.log file?

Can you provide the logs/debug.log file?

debug.log

Nothing seems out of the ordinary there, and I can't reproduce the issue.
Does it always happen no matter how many times you try?

Nothing seems out of the ordinary there, and I can't reproduce the issue. Does it always happen no matter how many times you try?

I figured out that the problem caused by VirtualBox's virtual Host-Only Ethernet Adapter.
I've succeeded test memory link function on Windows 8.


[AWIBOF-6942] Reactor Wrapping IO is moved from uram internal to device manager

Signed-off-by: sejun.kwon<EMAIL_ADDRESS>

수고하셨습니다!


Run a single test by name

All my tests take multiple minutes to run. I categorize them into separate files but it would still be nice to provide a string of a test name to only run that test to bats.

@dougm This seems like a very useful feature.  I hope it gets added soon.  It would be cool to see a feature where BATS could do test grouping similar to TestNG.

@harschware Just opened PR #117 - I've continued to use it myself as-is via bats-mode.el since

Here is a simple shell script you can customize to run a single test:
$ cat one_test.sh
#!/bin/bash
batsdir=$(dirname $(readlink -f bats))
echo $batsdir
export PATH=$batsdir:$PATH

in=$1
a_test=$2

if [[ ! -e "$in" ]]
then
  echo "not found: '$in'"
  exit 2
fi

out=$(mktemp)
bats-preprocess < $in > $out

if [[ -z "$a_test" ]] || ! grep -q "^$a_test" $out
then
  echo "test '$a_test' not found in $in"
  echo "available test are:"
  grep -o -E '^test_[^ ]+' $out
  exit 1
fi

echo "temp_file: $out"
export BATS_TEST_SOURCE=$out
bats-exec-test $in $a_test

As you can see bats as already almost all for that, but you need to preprocess the file yourself, and pass the filename via export BATS_TEST_SOURCE
Not extensively tested…
list test available:
$ ./one_test.sh bats-preprocess.bats
/home/sylvain/code/bats/test/internal
test '' not found in bats-preprocess.bats
available test are:
test_preprocess_myself()
test_dummy_test()

run one by its encoded name
$ ./one_test.sh bats-preprocess.bats test_dummy_test
/home/sylvain/code/bats/test/internal
temp_file: /tmp/tmp.qJ5hM2Rl0O
1..1
ok 1 dummy test

enjoy.

Thanks, @Sylvain303 ! One little fix: should be "readlink -f $(which bats)" (at least it helped me run it in my env).


Hardened HttpClient Tests Further

Description
Hardened HttpClient tests by using WireMock functionality instead of binding a Socket manually. This should reduce transient test failures when the Socket takes a long time to be accepted.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


Add command to start everything at once

added to be able to quickly test things.
now one can say just all and everything will be started (I opted for native build, because the pace of iteration of rebuilding it is just way faster, typically doesn't require rebuilding at all).
side note: perhaps naming it just start would be better?

When triggering a trade, I ran into the problem that my order did not get matched!
We also have to spin up the maker when starting all the systems, otherwise the order will never get matched!
I think we have to:

add maker to just all
add cleaning up the maker data to just wipe

sure, I'll do that!

bors r+

bors r-

bors r+


Use a dedicated pointer for representing delete action

I discovered that with newer versions of node, sometimes the pointer returned from a zero length buffer is nullptr (which makes sense, it doesn't really need to point to anything). I had been using nullptr as a marker for delete actions, and so zero length buffer values (which are a valid value in LMDB) were being confused with deletions (so put(key, Buffer.from([]) would delete the key/entry). This provides a dedicated pointer to denote deletion actions so zero length binary values can be stored in LMDB without causing random deletions.

Thanks, your good work is appreciated as always.


Bbox update for ribbon based shape updates

The Bbox of a ribbon based shape (ribbon, tubes, extrusions, etc) is now updated when the shape is dynamically morphed.
Note : for performance reasons, the min and max computations are done in the same loop than the position computations. So no call to refreshBoundingInfo and no extra iteration.

Hi Jerome,
Quick question - why are there so many file changes?

WTF... I just commited one ts file in VS Code (new version) and those compiled js files came along with... I did not even noticed them, tsssss

do I need to redo everything ?

It seems like js file were added to the texture library. Need to check if their names are correct. On mobile, give me an hour.

well, I modified just MeshBuilder, so the rest comes from the repo, is compiled here and goes back (not intentionally) to the repo. Nothing is added or removed by me (I hope)

not sure to understand
let me recap :
I close my branch
I open new one
I modify the ts only,
I commit first
then I compile and test
If ok, then PR
right ?
Le 08/07/2016 14:22, Raanan Weber a écrit :

Not your fault but Windows' fault. The file exists already, but with a
different name (uppercase) this will probably cause problems to
Windows users...
Might I ask you to close this one and try committing the change only?
 This way only the ts file
will be changed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/BabylonJS/Babylon.js/pull/1251#issuecomment-231345955,
or mute the thread
https://github.com/notifications/unsubscribe/AAAtCVCfohctgs0e79chahu4jB_lxm0Qks5qTkD0gaJpZM4JH4rK.

Sounds like a great plan!
Thanks. I'll see how to solve this case problem with those files. A git rename will probably do the trick.

Ohh, and of course, don't commit again after building.


Custom domains, sub domains CNAME and multiple Front Doors...

This just doesn't make sense. The sentences contradict each other:

A custom domain and its subdomain can be associated with only a single Front Door at a time. However, you can use different subdomains from the same custom domain for different Front Doors by using multiple CNAME records. You can also map a custom domain with different subdomains to the same Front Door.

First you say that a custom domain and all its subdomain has to use the same front door, then in the next sentence you say that you can put different subdomains of the same custom domain in different front doors.
The third sentence is just weird.

Also, be very clear about exactly what you mean by "using a custom domain with front door", especially since the full functionality of Front Door is not available when using anything but sub domains of your custom domain.
The paragraph also implies it is possible to use multiple subdomains of your custom domain using only a single CNAME as long as they all use the same Front Door

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

ID: 0b19a24a-e9e6-0296-69b2-d1fead57c16c
Version Independent ID: 9d0164f0-1b82-439d-c32d-c93a4c56f314
Content: Tutorial - Add custom domain to your Azure Front Door configuration
Content Source: articles/frontdoor/front-door-custom-domain.md
Service: frontdoor
GitHub Login: @duongau
Microsoft Alias: duau

@Bartolomeus-649
I have assigned the issue to the content author for further review and update the doc as appropriate.

#reassign: gunjanj

Hello @Bartolomeus-649, I've updated that sentence to correctly reflect what was intended to be said. the change will be reflected later today. Thank you #reassign: @duongau

#please-close

PR: https://github.com/MicrosoftDocs/azure-docs-pr/pull/235978

Thank you for you dedication to our documentation.
Unfortunately, we have been unable to review this issue in a timely manner. We sincerely apologize for the delayed response. We will create an internal tracking work item to address this issue. For now, we are closing this issue. If you have any additional information you would like to, please respond to this issue with any additional details.
Please continue to provide feedback about the documentation. We appreciate your contributions to our community.
#please-close


Compressed Transfer

All the data is uncompressed:
http://www.webpagetest.org/result/150701_BB_156V/
Compressing the JS and CSS would decrease the size of the first access by ~1 MB, which is meaningful for mobile users.
I'd like to see support for compressed mol2 transfer, if possible, since some of those files can get large.

Okay, I believe something like this would work: https://flask-compress.readthedocs.org/en/latest/
I will add it tonight.

Done now with ngnix.

Can we close this only when it hits production? Thanks.


gpac: 2.2.1 -> 2.4.0, clear knownVulnerabilities list

Description of changes
Changes:
https://github.com/gpac/gpac/releases/tag/v2.4.0

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

I recently provisioned another machine where I had to allow gpac 2.2 as an insecure package - granted in my context it's not a huge problem because I only feed it input that I created myself, but I'd really appreciate if this was merged. The changes are minimal and no further review has happened in three months.

I would also like to see this get merged. I found this PR and ended up reviewing it after trying to use GPAC several months ago.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/4194


[Feature Request] Threading

Is your feature request related to a problem? Please describe.
I find the time it takes to "Update database" long and slow..
Describe the solution you'd like
If you could enable threading and give Threadfin many cpu threads for tasks it could run a lot faster.
Additional context
Add any other context or screenshots about the feature request here.
https://stackoverflow.com/questions/17868419/how-can-my-go-program-keep-all-the-cpu-cores-busy

You need to shrink your m3u. Or you can try a better processor. I'm not taking any new feature requests at this time


is_party_to? will fail when there is no neighbor

When there is no neighbor, the second element of the array is nil. nil does not have an id method.

This has been fixed as part of the Messages Controller Test Suite.


Better defaults

aur2ccr needs to be more strict, to avoid that users use it to install software from arch linux, which breaks their systems.

This was done years ago, closing.


Link incidents to components

Linking an incident to a component has no effect on the component status yet.

:+1:

Updating a components status isn't easy (pragmatically it is) but it's the mapping between an incident status and a component status that isn't.

Maybe, you should leave this as is, and only mention that an incident is tied to a component in the UI, because both can be decorrelate IMO.

Yeah I think that Cachet should link the statuses, but what we could do is this:

User selects a component from the dropdown.
Cachet displays the inline status editor.
On save, the incident gets created and the component status will update too.

If no status is chosen from the inline status picker, nothing happens to it.
Thoughts?

Sounds good to me. Cachet should let users:

create incidents without any components linked
change component statuses without having to create a new incident nor link to an existing incident

I'm glad you agree. As far as I'm concerned, Cachet shouldn't do anything unexpected.
In which case, I'm going to leave this PR open until I've had time to implement the inline status editor within the incident pages.


Would you be able to add CHD support for Amiga CD32?

Hello. Would it be possible to add .chd support for the Amiga CD32? I have a RG503 and I tested it by loading a file directly in Retroarch, and the Amiga core does support the CHD format. Emulationstation doesn't recognize the files in the folder. I am hoping it is an easy change.
Thank you for ArkOS. It has been my go to since I got my first handheld, the RK2020. :-)

Sure that's a simple change.

Thanks!

This has been added with today's update.

Thank you very much! I just tested it out, and it works perfectly. You're the best! :-)


Validate attachment snippets

This pull request makes attachment snippet matching far more robust. It also fixes a problem where some attachments don't have a url, which was resulting in a 500 server error for a few cma case pages.
Eventually, I'd like to see if we can surface some of the information in AttachmentReporter to the user-interface so that users can see errors if the snippets are invalid. It also reports on attachments that aren't used in the body of the document.

👍


Work with latest-stable version of alpine instead of hardcoding a specific one?

Is it possible to adapt this to work with the latest-stable branch of alpine instead of locking it to a particular version?

Hi @reedog117,
I lock Alpine to the last version I had this tested on. I don't like using latest since any updates to alpine upstream can break the build.
However, since 3.8 is nearing EOL, I'll look into updating the latest working version soon.

Thanks @reedog117. I left some comments on your PR.

Fixed on #46 using 3.8. However, on your PR I would still like to have the forked source in a separate Dockerfile if possible.


pkg/blobserver/google/cloudstorage: staticcheck

Closing this, see my comment here:

https://github.com/perkeep/perkeep/pull/1405#issuecomment-894727096


Feature: Create an automated message once an issue is created

Type of feature
📦 Chore
Current behavior
Someone creates an issue and the needs triage issue label and other relevant label, e.g. feature, is added.
Suggested solution
Keep doing the current behaviour, but consider generating an automated message along the lines of "Thanks for the issue, our team is looking into it. Once the issue is ready..."
Here is an example automated response from the Forem code base where I used to work. https://github.com/forem/forem/issues/11458#issuecomment-729173747

Thanks for the issue! We'll take your request into consideration and follow up if we decide to tackle this issue.
To our amazing contributors: issues labeled type: bug are always up for grabs, but for feature requests, please wait until we add a ready for dev before starting to work on it.
To claim an issue to work on, please leave a comment. If you've claimed the issue and need help, please ping @forem/oss and we will follow up within 3 business days.
For full info on how to contribute, please check out our contributors guide.

Here is the workflow used to generate the automated message, https://github.com/forem/forem/blob/main/.github/workflows/issue.yml
I only mention it as I've seen several issues pop up where they're created and then the issue creator asks immediately to work on it. To save some time for the team (potentially), this automated flow would potentially prevent someone from asking to take the issue immediately before we consider it a valid issue. Or even if they ask immediately to take the issue, we won't need to respond because the automated message says we're looking into it.
Thoughts?
Additional context
No response
Code of Conduct

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

Contributing Docs

[X] I agree to follow this project's Contribution Docs

I brought up something similar here https://github.com/bdougie/take-action/issues/23
But open to trying anything proposed in this issue as well.

I like the idea of blocking on the .take in https://github.com/bdougie/take-action/issues/23.
Maybe a combo of both suggestions?
Or at a minimum, if you do a .take, the automated message kicks in after and blocks assigning?
Thoughts @brandonroberts @jpmcb @BekahHW?

I like the idea of a combo. I like the idea of an automated response bc I think it will decrease the number of DMs or follow-up tags if we don't respond immediately.

I like the combo idea also. It would be nice to block it until it has been triaged, but that could be in the future.

@diivi did you want to explore this? We can fix it in the workflow in this repo, but I see value in fixing it upstream for others in the bdougie/take-action repo.

Combination of both sounds great 👍🏼 communicating to people in the community why we're blocking .take makes sense and will hopefully prevent the churn we've seen with issues being assigned right away before we've had a change to look at them

Sorry I forgot to inform, I have exams first week of october, will do this after that.


Tests

[ ] Add way more tests to test things
[ ] Setup CodeClimate test coverage

I'll tackle this.

Awesome, I'll task you the ticket, hit me up on Discord if your there and want to discuss more on it.


Code generation

Add* methods in ModelBuilder has been auto-generated from ops.yml now

And some codes in DaqReader.cpp are replaced by macro


upgrade dependencies, loosen Phoenix.HTML version requirement

Coverage remained the same at 100.0% when pulling 2d9611d62ed45c300608430d2f35b8fa88c4caf6 on dependency-upgrades into 60d1a1ee6545e16911d59368e83c2faa6ab652cf on main.


pex.resolver.Untranslateable when using setup from setuptools

Hello,
I am trying to build a pex file with several requirements and my own package that has a setup.py.
From reading pex --help, I understand that I need to use the -s to provide the directory that contains my setup.py file.
I get this error:
pex -s . -e greatpackage.script -o output.pex
**** Failed to install greatpackage-0.1. stdout:

**** Failed to install greatpackage-0.1. stderr:
Traceback (most recent call last):
  File "<stdin>", line 6, in <module>
IOError: [Errno 2] No such file or directory: 'setup.py'

Traceback (most recent call last):
  File "/Users/bqm/garbage/reproducible/env/bin/pex", line 9, in <module>
    load_entry_point('pex==0.8.4', 'console_scripts', 'pex')()
  File "/Users/bqm/garbage/reproducible/env/lib/python2.7/site-packages/pex/bin/pex.py", line 325, in main
    pex_builder = build_pex(args, options)
  File "/Users/bqm/garbage/reproducible/env/lib/python2.7/site-packages/pex/bin/pex.py", line 303, in build_pex
    cache_ttl=options.cache_ttl)
  File "/Users/bqm/garbage/reproducible/env/lib/python2.7/site-packages/pex/resolver.py", line 229, in resolve
    new_requirements.update(requires(highest_package, requirement))
  File "/Users/bqm/garbage/reproducible/env/lib/python2.7/site-packages/pex/resolver.py", line 201, in requires
    raise Untranslateable('Package %s is not translateable.' % package)
pex.resolver.Untranslateable: Package SourcePackage('file:///Users/bqm/.pex/build/greatpackage-0.1.tar.gz') is not translateable.

Here is a way to reproduce my error:
mkdir reproducible
cd reproducible
virtualenv env
. env/bin/activate
pip install wheel
pip install pex
mkdir greatpackage
echo '
from setuptools import setup, find_packages

setup(
    name="greatpackage",
    version="0.1",
    author="bqm",
    packages=find_packages(),
    scripts=["greatpackage/script.py"]
)' > setup.py

touch greatpackage/__init__.py

echo '
if __name__ =="__main__":
  print "Hello world!"
' > greatpackage/script.py

pex -s . -e greatpackage.script -o output.pex

Am I missing something? What am I doing wrong?
Thanks

I forgot to mention:
I am using macosx 10.10 and python 2.7.6

I have not dug into pip code to see how it special cases for this, but pex -s does not auto-include setup.py so you'll need a MANIFEST.  Additionally, instead of installing wheel, you just need to --no-wheel for now.
A working example built off yours:
mkdir reproducible
cd reproducible
virtualenv env
. env/bin/activate
pip install pex
mkdir greatpackage

cat << EOF > setup.py
from setuptools import setup, find_packages

setup(
    name="greatpackage",
    version="0.1",
    author="bqm",
    packages=find_packages(),
    scripts=["greatpackage/script.py"]
)

EOF

cat << EOF > MANIFEST.in
include *.py

EOF

touch greatpackage/__init__.py

cat << EOF > greatpackage/script.py
if __name__ == "__main__":
  print("Hello world!")

EOF

pex --no-wheel -s . -e greatpackage.script -o output.pex
./output.pex

See this discussion for reference: https://groups.google.com/forum/#!searchin/pants-devel/Trying$20to$20make$20a$20single$20executable$20file$20with$20PEX/pants-devel/WDMzxuW0ybs/hmblP6i_vbcJ

That was very helpful!
Thank you


How Flutter Renders the Frame in Real Time?

Steps to reproduce
I passed the frame into Dart through the FFI callback function, but the rendering speed of Dart is very slow. I use the Dart technique:
ui: StatefulWidget+CustomPainter+ChangeNotifierProvider
data: decodeImageFromPixels=>ui.Image  canvas.drawImage(_image, Offset.zero, Paint());
Did I choose the wrong technology? Window app

c side:

            MCSLOG_INFO("m_callBack(ctx->frame->data)..."); m_callBack(ctx->frame->data);

dart side:

static void callBackFromCxx(Pointer<Pointer> data) {
_instance!.update(
fillPixelsWithRGBFrame(data, _instance!._width, _instance!._height));
}
static Uint8List fillPixelsWithRGBFrame(
Pointer<Pointer> data, int width, int height) {
int frameSize = width * height * 3;
Uint8List pixels = Uint8List(width * height * 4);
for (int i = 0; i < frameSize; i += 3) {
  int r = data.value[i];
  int g = data.value[i + 1];
  int b = data.value[i + 2];

  int pixelIndex = i ~/ 3 * 4;

  pixels[pixelIndex] = r;
  pixels[pixelIndex + 1] = g;
  pixels[pixelIndex + 2] = b;
  pixels[pixelIndex + 3] = 255;
}
return pixels;

}
void update(Uint8List byte) async {
printWithTime("update...1");
Completer<ui.Image> c = Completer<ui.Image>();
ui.decodeImageFromPixels(
byte, _width, _height, ui.PixelFormat.rgba8888, (a) => c.complete(a));
ui.Image image = await c.future;
printWithTime("update...2");
_imageQueue.addLast(image);
// 一次更新两次，太慢了
notifyListeners();
printWithTime("update...3");
}
class _ImagetWidgetSate extends State {
@override
Widget build(BuildContext context) {
return Consumer(builder: (context, model, child) {
printWithTime('build......: ${model._imageQueue.length}');
return CustomPaint(
painter: ImagePainter(model._imageQueue.length > 1
? model._imageQueue.removeFirst()
: model._imageQueue.first),
);
});
}
}

log: It can be seen that the delay increases with time，add start render on 33 frame,_imageQueue.length==33
flutter: [9:37:21.713] update...2
flutter: [9:37:21.713] update...3
flutter: [9:37:21.714] update...2
flutter: [9:37:21.714] update...3
flutter: [9:37:21.714] update...2
flutter: [9:37:21.715] update...3
flutter: [9:37:21.715] update...2
flutter: [9:37:21.715] update...3
flutter: [9:37:21.716] update...2
flutter: [9:37:21.716] update...3
flutter: [9:37:21.717] update...2
flutter: [9:37:21.717] update...3
flutter: [9:37:21.717] update...2
flutter: [9:37:21.717] update...3
flutter: [9:37:21.718] update...2
flutter: [9:37:21.718] update...3
flutter: [9:37:21.718] update...2
flutter: [9:37:21.718] update...3
flutter: [9:37:21.720] build......: 33
[2024-05-18 09:37:21.730] [info] [AVClient.cpp:864] m_callBack(ctx->frame->data)...
flutter: [9:37:21.735] update...1
.........
..........
flutter: [9:37:22.391] update...2
flutter: [9:37:22.391] update...3
flutter: [9:37:22.408] build......: 37
[2024-05-18 09:37:22.420] [info] [AVClient.cpp:864] m_callBack(ctx->frame->data)...
flutter: [9:37:22.423] update...1
[2024-05-18 09:37:22.450] [info] [AVClient.cpp:864] m_callBack(ctx->frame->data)...
flutter: [9:37:22.450] update...2
flutter: [9:37:22.450] update...3
flutter: [9:37:22.454] update...1
flutter: [9:37:22.457] update...2
flutter: [9:37:22.457] update...3
flutter: [9:37:22.458] build......: 38
[2024-05-18 09:37:22.500] [info] [AVClient.cpp:864] m_callBack(ctx->frame->data)...
flutter: [9:37:22.503] update...1
flutter: [9:37:22.507] update...2
flutter: [9:37:22.507] update...3
flutter: [9:37:22.524] build......: 38
[2024-05-18 09:37:22.540] [info] [AVClient.cpp:864] m_callBack(ctx->frame->data)...
flutter: [9:37:22.543] update...1
flutter: [9:37:22.546] update...2
flutter: [9:37:22.546] update...3
flutter: [9:37:22.558] build......: 38
[2024-05-18 09:37:22.590] [info] [AVClient.cpp:864] m_callBack(ctx->frame->data)...

Code sample
Code sample
class ImagetWidget extends StatefulWidget {
  const ImagetWidget({super.key});

  @override
  State<ImagetWidget> createState() => _ImagetWidgetSate();
}

class _ImagetWidgetSate extends State<ImagetWidget> {
  @override
  Widget build(BuildContext context) {
    return Consumer<ImageModel>(builder: (context, model, child) {
      printWithTime('build......: ${model._imageQueue.length}');
      return CustomPaint(
        painter: ImagePainter(model._imageQueue.length > 1
            ? model._imageQueue.removeFirst()
            : model._imageQueue.first),
      );
    });
  }
}

class ImagePainter extends CustomPainter {
  const ImagePainter(this._image);
  final ui.Image _image;

  @override
  void paint(Canvas canvas, ui.Size size) {
    canvas.drawImage(_image, Offset.zero, Paint());
  }

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) {
    return true;
  }
}

/// 提供图像数据
class ImageModel extends ChangeNotifier {
  final int _width;
  final int _height;
  Queue<ui.Image> _imageQueue;

  static ImageModel? _instance; //单例，为了适配static 和 非static 方法

  // 私有构造函数，防止外部实例化
  ImageModel._(width, height)
      : assert(width > 0),
        assert(height > 0),
        _width = width,
        _height = height,
        _imageQueue = Queue<ui.Image>();

  // 使用工厂构造函数来返回单例实例
  factory ImageModel(int width, int height) {
    // 如果_instance为空，则创建新的实例；否则返回已有的实例
    // _instance ??= ImageModel._(width, height);
    if (_instance == null) {
      _instance = ImageModel._(width, height);
      _instance!.initQueue();
      // 开始播放服务
      final callback =
          NativeCallable<CallBack>.listener(ImageModel.callBackFromCxx);
      startPlayService(callback.nativeFunction, width, height);
      // callback.close();//回调要保持
      callback.keepIsolateAlive = false; //但是Isolate
    }
    return _instance!;
  }
  void initQueue() async {
    final byte = ImageModel.generateRedImage(_width, _height);
    Completer<ui.Image> c = Completer<ui.Image>();
    ui.decodeImageFromPixels(
        byte, _width, _height, ui.PixelFormat.rgba8888, (a) => c.complete(a));
    final image = await c.future;
    ImageModel._instance!._imageQueue.addLast(image);
  }

  static void callBackFromCxx(Pointer<Pointer<Uint8>> data) {
    _instance!.update(
        fillPixelsWithRGBFrame(data, _instance!._width, _instance!._height));
  }

  static Uint8List generateRedImage(int width, int height) {
    final List<int> pixels =
        List<int>.filled(width * height * 4, 255); // RGBA format, red color
    for (int i = 0; i < pixels.length; i += 4) {
      pixels[i] = 255; // Red channel
      pixels[i + 1] = 0; // Green channel
      pixels[i + 2] = 0; // Blue channel
      pixels[i + 3] = 255; // Alpha channel
    }
    return Uint8List.fromList(pixels);
  }

  static Uint8List fillPixelsWithRGBFrame(
      Pointer<Pointer<Uint8>> data, int width, int height) {
    int frameSize = width * height * 3; // RGB格式每个像素占用3个字节
    Uint8List pixels = Uint8List(width * height * 4); // 创建用于存放RGBA数据的列表

    // 一像素一像素复制：+3
    for (int i = 0; i < frameSize; i += 3) {
      int r = data.value[i];
      int g = data.value[i + 1];
      int b = data.value[i + 2];

      int pixelIndex = i ~/ 3 * 4; // RGBA格式每个像素占用4个字节

      pixels[pixelIndex] = r;
      pixels[pixelIndex + 1] = g;
      pixels[pixelIndex + 2] = b;
      pixels[pixelIndex + 3] = 255; // 设置透明度为255
    }

    return pixels;
  }

  void update(Uint8List byte) async {
    printWithTime("update...1");
    Completer<ui.Image> c = Completer<ui.Image>();
    ui.decodeImageFromPixels(
        byte, _width, _height, ui.PixelFormat.rgba8888, (a) => c.complete(a));
    ui.Image image = await c.future;
    printWithTime("update...2");
    _imageQueue.addLast(image);
    notifyListeners();
    printWithTime("update...3");
  }
}

void printWithTime(String message) {
  DateTime now = DateTime.now();
  String formattedTime =
      "${now.hour}:${now.minute}:${now.second}.${now.millisecond}";
  print("[$formattedTime] $message");
}

void main() async {
  loadLib();
  // print(sumService(1, 2));
  const width = 1024;
  const height = 600;

  // await Future.delayed(Duration(seconds: 1));
  runApp(
    MaterialApp(
      title: 'My app', // used by the OS task switcher
      home: SafeArea(
        // child: widget,
        child: ChangeNotifierProvider(
          create: (context) => ImageModel(
              width, height), //class CartModel extends ChangeNotifier
          child: const ImagetWidget(),
        ),
      ),
    ),
  );
}
/// load your lib
typedef CallBack = Void Function(Pointer<Pointer<Uint8>>);
typedef StartPlay = Int32 Function(Pointer<NativeFunction<CallBack>>, Int, Int);
typedef StartPlayNative = int Function(
    Pointer<NativeFunction<CallBack>>, int, int);
final startPlayService =
    dylib.lookupFunction<StartPlay, StartPlayNative>('start_play');

Performance profiling on master channel

[X] The issue still persists on the master channel

Timeline Traces
Timeline Traces JSON
[Paste the Timeline Traces here]

dart_devtools_2024-05-18_10_47_18.039.json

lutter: [10:46:23.29] update...1
flutter: [10:46:23.33] update...2
flutter: [10:46:23.33] update...3
flutter: [10:46:23.38] build......: 180
[2024-05-18 10:46:23.074] [info] [AVClient.cpp:864] m_callBack(ctx->frame->data)...
flutter: [10:46:23.80] update...1
flutter: [10:46:23.82] update...2
flutter: [10:46:23.82] update...3
flutter: [10:46:23.89] build......: 180
[2024-05-18 10:46:23.096] [info] [AVClient.cpp:864] m_callBack(ctx->frame->data)...
flutter: [10:46:23.99] update...1
flutter: [10:46:23.102] update...2
flutter: [10:46:23.102] update...3
flutter: [10:46:23.105] build......: 180
Video demonstration

Video demonstration
[Upload media here]

What target platforms are you seeing this bug on?
Windows
OS/Browser name and version | Device information
Windows (desktop) • windows • windows-x64    • Microsoft Windows [版本 10.0.19045.4412]
Does the problem occur on emulator/simulator as well as on physical devices?
Unknown
Is the problem only reproducible with Impeller?
N/A
Logs
Logs
PS C:\Users\mcs\Desktop\lernning\code\vscode-flutter\flutter_demo> flutter run .\lib\video_play.dart
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Connected devices:
Windows (desktop) • windows • windows-x64    • Microsoft Windows [版本 10.0.19045.4412]
Chrome (web)      • chrome  • web-javascript • Google Chrome 124.0.6367.202
Edge (web)        • edge    • web-javascript • Microsoft Edge 124.0.2478.105
[1]: Windows (windows)
[2]: Chrome (chrome)
[3]: Edge (edge)
Please choose one (or "q" to quit): 1
Launching .\lib\video_play.dart on Windows in debug mode...
Building Windows application...                                    10.8s
√ Built build\windows\x64\runner\Debug\flutter_demo.exe
Syncing files to device Windows...                                  65ms

Flutter run key commands.
r Hot reload.
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

A Dart VM Service on Windows is available at: http://<IP_ADDRESS>:64365/AT8QBlxu6uE=/
[2024-05-18 11:02:19.678] [info] [AVClient.cpp:89] initInput: avformat_network_init
flutter: [11:2:19.679] build......: 0

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following StateError was thrown building Consumer<ImageModel>(dirty, dependencies:
[_InheritedProviderScope<ImageModel?>]):
Bad state: No element

The relevant error-causing widget was:
  Consumer<ImageModel>
  Consumer:file:///C:/Users/mcs/Desktop/lernning/code/vscode-flutter/flutter_demo/lib/video_play.dart:22:12

When the exception was thrown, this was the stack:
#0      ListQueue.first (dart:collection/queue.dart:690:25)
#1      _ImagetWidgetSate.build.<anonymous closure> (package:flutter_demo/video_play.dart:27:33)
#2      Consumer.buildWithChild (package:provider/src/consumer.dart:179:19)
#3      SingleChildStatelessWidget.build (package:nested/nested.dart:259:41)
#4      StatelessElement.build (package:flutter/src/widgets/framework.dart:5557:49)
#5      SingleChildStatelessElement.build (package:nested/nested.dart:279:18)
#6      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5487:15)
#7      Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#8      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5469:5)
#9      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463:5)
#10     SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11)
...     Normal element mounting (15 frames)
#25     _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11)
...     Normal element mounting (7 frames)
#32     SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11)
...     Normal element mounting (243 frames)
#275    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340:16)
#276    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6904:36)
#277    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6916:32)
...     Normal element mounting (483 frames)
#760    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340:16)
#761    Element.updateChild (package:flutter/src/widgets/framework.dart:3849:18)
#762    _RawViewElement._updateChild (package:flutter/src/widgets/view.dart:291:16)
#763    _RawViewElement.mount (package:flutter/src/widgets/view.dart:314:5)
...
PS C:\Users\mcs\Desktop\lernning\code\vscode-flutter\flutter_demo>

Flutter Doctor output
Doctor output
PS C:\Users\mcs\Downloads\sdk-3.4.0\samples\ffi\http> flutter -v doctor
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
[√] Flutter (Channel stable, 3.22.0, on Microsoft Windows [版本 10.0.19045.4412], locale zh-CN)
    • Flutter version 3.22.0 on channel stable at D:\mysoftware\flutterSDK\flutter_windows_3.19.6-stable\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5dcb86f68f (8 days ago), 2024-05-09 07:39:20 -0500
    • Engine revision f6344b75dc
    • Dart version 3.4.0
    • DevTools version 2.34.3
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[√] Windows Version (Installed version of Windows is version 10 or higher)

[X] Android toolchain - develop for Android devices
    X Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Professional 2022 17.9.7)
    • Visual Studio at D:\mysoftware\VisaualStudio2022
    • Visual Studio Professional 2022 version 17.9.34902.65
    • Windows 10 SDK version 10.0.22621.0

[√] Android Studio (version 2022.3)
    • Android Studio at D:\mysoftware\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)

[√] IntelliJ IDEA Ultimate Edition (version 2021.2)
    • IntelliJ at D:\mysoftware\IntelliJ IDEA 2021.2.4
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [版本 10.0.19045.4412]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 124.0.6367.202
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 124.0.2478.105

[√] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.
PS C:\Users\mcs\Downloads\sdk-3.4.0\samples\ffi\http>

300ms.If you lose frames, let's lose frames. There are gains and losses


GIF support

Was playing around with GIF's in Xam.Forms today and came across...
https://github.com/jamesmontemagno/Xamarin.Forms-Awesome-Controls/blob/master/GifImageView/GifImageView/GifImageView.FormsPlugin.iOSUnified/GifImageViewImplementation.cs#L76
This routine seems to work fairly well and doesn't seem like it would be hard to throw in, at least in a alpha/beta stage.
Feels like you could check the image properties and animate if necessary
https://github.com/jamesmontemagno/Xamarin.Forms-Awesome-Controls/blob/master/GifImageView/GifImageView/GifImageView.FormsPlugin.iOSUnified/GifImageViewImplementation.cs#L94
Just a thought.

Here is a fork that has some VERY HACKY changes to allow for Gif's in iOS.
https://github.com/alanspires/FFImageLoading/tree/gif-proof-of-concept
Video
https://www.dropbox.com/s/xsfis0gv8d1sbiv/gifexample.mov?dl=0
Only file changed was FFImageLoading.Forms.Touch.CachedImageRenderer
Key Areas
https://github.com/alanspires/FFImageLoading/blob/gif-proof-of-concept/source/FFImageLoading.Forms.Touch/CachedImageRenderer.cs#L296
https://github.com/alanspires/FFImageLoading/blob/gif-proof-of-concept/source/FFImageLoading.Forms.Touch/CachedImageRenderer.cs#L389

Here is my second go on this. Found that adding it to the "Target" made more sense.
https://github.com/luberda-molinet/FFImageLoading/compare/master...alanspires:ios-gif-try2?expand=1

Whenever you get a chance I'd like to discuss future possibilities of this. Seems that it would be non-invasive but I'm not familiar enough with the library to complete it.

@alanspires did you try this one recently? I remember we added GIFs to our app about a year ago and this particular library was a bit choppy. It was faster to have just a webview displaying the GIF.

@patookllc  I tested basic GIF's from gihpy.com on a iPhone 6 using my above mentioned code and everything looked good. Ideally what I need to do is convert https://github.com/Flipboard/FLAnimatedImage (used by FlipBoard App) to C#. On my to do list. But if we could at least get basic support (https://github.com/luberda-molinet/FFImageLoading/compare/master...alanspires:ios-gif-try3?expand=1) added, and let the community + me make it better moving forward I think that would be awesome.

Here is a good technical write up. http://engineering.flipboard.com/2014/05/animated-gif/

It's a really nice-to-have feature, but first, I need to review some other things 👍 If you have any more resources (Android, Windows), feel free to add it here.

Will be awesome to have gif support in FFImageLoading, we need here so much...

@alanspires I saw you started something in your fork regarding Gif support.
Have you been able to do more?

Super basic support for ios is easy. I can make a pull for that. I'm not familiar enough with droid to add that though. So if that's cool I can make a pr.
Sent from my iPhone

On Jan 23, 2017, at 11:50, Fabien Molinet<EMAIL_ADDRESS>wrote:
@alanspires I saw you started something in your fork regarding Gif support.
Have you been able to do more?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

#470

I'll close this one, as it's implemented for iOS / Android.


Dockerhub pull request limits - mitigation planning

See https://docs.docker.com/docker-hub/download-rate-limit/ & some useful analysis at https://www.openshift.com/blog/mitigate-impact-of-docker-hub-pull-request-limits
Need to consider

effect on build process
effect on consumers
whether we need to save base images (as those images will have restrictions)
use of other registries (github, azure, quay.io) and/or premium subscriptions

tbc....

Dockerhub is now offering exemption for qualifying open source projects -> see https://www.docker.com/blog/expanded-support-for-open-source-software-projects/
Will see if we can get this in place cc: @jmertic

During an attempt to test the 2.10 release #5211 , the following was noted when trying to setup egeria:
 Warning  Failed          19s               kubelet            Failed to pull image "docker.io/odpi/egeria:2.10": rpc error: code = Unknown desc = Error reading manifest 2.10 in docker.io/odpi/egeria: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Following https://www.docker.com/blog/checking-your-current-docker-pull-rate-limits-and-status/ we see:
$ curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/2.10 2>&1

and decoding at jwt.io :
{
  "access": [
    {
      "type": "repository",
      "name": "odpi/egeria",
      "actions": [
        "pull"
      ],
      "parameters": {
        "pull_limit": "100",
        "pull_limit_interval": "21600"
      }
    }
  ],
  "aud": "registry.docker.io",
  "exp":<PHONE_NUMBER>,
  "iat":<PHONE_NUMBER>,
  "iss": "auth.docker.io",
  "jti": "fTZgVmovxlHuKuoo9K1Y",
  "nbf":<PHONE_NUMBER>,
  "sub": ""
}

curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/odpi/egeria/manifests/2.10 2>&1
HTTP/1.1 200 OK
content-length: 19568
content-type: application/vnd.docker.distribution.manifest.v1+prettyjws
docker-content-digest: sha256:e3c61ab251ec404b05d0dc92b136a7823b245690989e1b20badf30c7c6d0d792
docker-distribution-api-version: registry/2.0
etag: "sha256:e3c61ab251ec404b05d0dc92b136a7823b245690989e1b20badf30c7c6d0d792"
date: Thu, 27 May 2021 22:25:35 GMT
strict-transport-security: max-age=31536000
ratelimit-limit: 100;w=21600
ratelimit-remaining: 100;w=21600

This doesn't seem to indicate an issue.....

It looks as if the image limits are now controlled by IP address - so this limit may only apply to my k8s cluster.
Or the entire cloud provider...
If so we may have less of a problem. See https://www.docker.com/blog/scaling-docker-to-serve-millions-more-developers-network-egress/ . However at this time quay.io appears to remain free/unlimited for public repos

dockerhub is useful for 'visibility', so we may be able to publish to both, and have our charts pointing to quay.io.

Even with a free account, these limits are slightly higher if authenticated when doing a pull.
Additionally, rather than have the potential for sharing any free quotas with other users appearing at same IP (which may depend on network topology/cloud provider) this uses a unique user id for 'me'.
Additionally if an org is making extensive use of images they can either build locally, or pull the image into their local container registry.
As an example, for openshift by following https://docs.openshift.com/container-platform/4.7/openshift_images/managing_images/using-image-pull-secrets.html
oc create secret docker-registry dockerhub --docker-server=docker.io --docker-username=MYUSERID --docker-password='MYPASSWORD --docker-email=MYEMAIL
oc secrets link default  dockerhub --for=pull

(For odpi-egeria-lab we currently use the 'default' serviceaccount - the egeria-lab chart is different)
With this done images would then load & containers start

May not be request-limiting, but noticing more occurances of outages connecting to dockerhub

it would be prudent to start looking at publishing to an additional repository soon.....

ie
  Warning  Failed          17m                  kubelet            Failed to pull image "docker.io/odpi/egeria-configure:2.11-SNAPSHOT": rpc error: code = Unknown desc = error pinging docker registry registry-1.docker.io: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:39047-><IP_ADDRESS>:53: i/o timeout


base64 encoded ssh public_key stored via custom resource template form in Secret manifest shows cannot be handled

Describe the bug
the base64 encoded public key, when entered via template form and then the Secret manifest which is generated, has some issue with storing it correctly. Both kubectl and Monokle Desktop throw the following error.  If I once click on Form in Editor in Monokle Desktop, the format somehow gets corrected and then I can deploy the secret successfully.
sonali@SONALI-SRIVASTAVA:~/Monokle/ssh_enable$ kubectl apply -f ssh-secret.yaml
Error from server (BadRequest): error when creating "ssh-secret.yaml": Secret in version "v1" cannot be handled as a Secret: illegal base64 data at input byte 76

To Reproduce
Steps to reproduce the behavior:

Go to https://github.com/cerebro31/monokle-resource-template/tree/main/ssh_pod
Install this plugin and create new project using it.
Provide image: cerebro31/monokle-helloworld:1.5
port: 80
ssh-public-key: base64 encoded public key
Select secret manifest, save it and click on deploy.
See the error
Click on Form in Editor
Now click on deploy

Expected behavior
Directly the base64 encoded public key should be stored properly so that it can be directly deployed
Screenshots
Here is the video showing a complete demonstration to recreate the issue
https://user-images.githubusercontent.com/125909758/225030040-f4429c97-4722-483d-9952-f935814e144c.mp4
Desktop (please complete the following information):

OS: Ubuntu
Version: 20.04

Fixed in https://github.com/kubeshop/monokle/pull/3403.


Fix minor typos in README.md

Fix minor typos in the readme

I made some edits based on Nick's original Gist on reproducibility.
I also think some [more technical people than myself] will still find that gist very useful, because it goes into deeper and deeper levels as you continue, and hence it should be retained.

i did not get the app_repo_branch in my image filename.


Handle moduleAliases with source code fragment

Resolves rdar://88722774

@swift-ci  smoke test

@swift-ci smoke test


SAK-43266: Correct capitalize "Enter access View"

https://jira.sakaiproject.org/browse/SAK-43266

@fostersdesign using the text from the bundle probably makes the most sense than performing a transform unless the transform is locale aware. So I agree with @FerAlvarez95 here. Anyone else?

@fostersdesign this can always change again later, but were trying merge things for the branch :D hope you understand


[Fixed]: Removed bootstrap clashes with navbar class

Description

There were different navbar on home and other pages, due to Bootstrap import clashes.
Cards Styling were clashing due to bootstrap.
Before:

After:

Fixes: #194 *

Screenshots
Before: Navigation bar is bigger in height, Dalle OpenAI and Login are not centered

After:

You can also Check for the testing deployment below:
https://imagine-6grpasviu-pranavsikarwal.vercel.app/
This could be merged on priority, so that no more clashes on home.ejs are faced. (Removing bootstrap which caused clashes)
Checklist

[x] Removed the Bootstrap clashes and it's imports.
[x] Checked for the Deployment after changes were made

@SurajPratap10 Convey if any changes further needs to be done, Thanks

Can you check the live deployed site @PranavSikarwal  as I'm seeing the before image u sent. Earlier it was okay ig

@SurajPratap10 , this is not caused by any of my code, this was present earlier also.

@SurajPratap10. i have just removed bootstrap links:
It fixes the navbar,
Cards behave differently on chrome vs firefox :-
cards are not fixed, they remain as they were earlier,
On chrome:-

On Firefox:

You can revert it but it will make no sense as earlier this card issue was also present on chrome.
Bootstrap is no more required whereas.

Ya, I was just confirming that only as I'm out now and on my phone there's only chrome browser so I'm not able to see the Firefox version. So it's working fine no @PranavSikarwal ?

@SurajPratap10 ya sure i will completely agree with you anyways.
Thanks for you support in such conditions also.

@SurajPratap10 ya sure i will completely agree with you anyways.
Thanks for you support in such conditions also.

Welcome, you folks are also amazing keep going @PranavSikarwal  ✌


Unable to capture multiple photos (Live view changes to preview)

I want to take multiple photos at once without previewing the image. But on taking 1st picture live view changes to preview mode and if i capture the picture again app crashes.

I am suffering from this issue, right now I am recreating the Camera Fragment but this cause a black screen appear for 2 or 3 seconds

m doing the same. but i don't want that

if you solve the issue. please update me

You have to change Camera1Manager.java to continue showing preview.
camera.startPreview();
public void takePhoto(File photoFile, final CameraPhotoListener cameraPhotoListener, final CameraFragmentResultListener callback) {
this.outputPath = photoFile;
this.photoListener = cameraPhotoListener;
    EventBus.getDefault().post(new RecordStateEvent(RecordStateEvent.State.Photo));
    backgroundHandler.post(new Runnable() {
        @Override
        public void run() {
            setCameraPhotoQuality(camera);
            try {
                camera.takePicture(null, null, new Camera.PictureCallback() {
                    @Override
                    public void onPictureTaken(byte[] bytes, Camera camera) {
                        Camera1Manager.this.onPictureTaken(bytes, camera, callback);
                        camera.startPreview();
                    }
                });
            } catch (Exception e) {
                Log.e(TAG, "takePhoto error: "+e.getMessage()+" (usually caused by a double tap on photo trigger)");
                if(cameraPhotoListener!=null)
                    cameraPhotoListener.onPhotoTakeError();
            }
        }
    });
}


Add fields for birthday and phone number

To support the new person form in https://github.com/vaadin/starter-wizard/issues/108, add fields for birthday and phone number. The existing "Occupation" field is used for the "role" field in https://github.com/vaadin/starter-wizard/issues/108, so no "Role" was added.

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


fix: (GRO-384) jsx-a11y/anchor-is-valid linter error in auth footer

This PR contains the "Secondary Change" part of a reverted PR #7821.
From the description of reverted PR:

When committing my changes I experienced an error during the pre-commit hook that executes yarn lint --fix:

error  Anchor used as a button. Anchors are primarily expected to navigate. Use the button element instead. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md  jsx-a11y/anchor-is-valid

I reached out to #dev-help and the recommendation was to replace the <Link> component with <Clickable>. The scope of this change affects only src/v2/Components/Authentication/Footer.tsx elements. This change also affected a number of tests that were updated in this PR. I tried to keep the behavior and look exactly how it was before.

Find the review app here.
Integrity change that goes along with this.

LGTM 👍


Add support for keep dragged div within bounds

Snap div back within bounds if dragged outside.
(parent div, defined area/size, browser window, etc.)

I tried to implement this myself by changing the CSS in

(stopped)="onDragEnd($event)"

It works but has some strange behaviour when picking it up again... So this feature would be awesome, yeah!
`private onDragEnd(box: any) {
let screensize = window.screen,
curPosX = 0,
curPosY = 0;
    try {
        // get current pos out of css
        let curPos = box.style.transform.split('(')[1].split(')')[0].split(', ');
        curPosX = Math.abs(curPos[0].split('px')[0]);
        curPosY = Math.abs(curPos[1].split('px')[0]);

        if(
            curPosX + 55 > (screensize.width/2) ||
            curPosY + 55 > (screensize.height/2)
        ) {
            // outside of window, reset to middle
            let value = "translate(" + 0 + "px, " + 0 + "px)";
            box.style.transform = value;
            box.style.webkitTransform = value;
            box.style.MozTransform = value;
            box.style.msTransform = value;
            box.style.OTransform = value;
            box.style['-moz-transform'] = value;
            box.style['-ms-transform'] = value;
            box.style['-o-transform'] = value;
        }
    } catch(ex) {
        console.log('transformation failed');
    }
}`

@boom235 Thanks for your support. Now I have new implementation in v1.1.0-beta.0


Fix Paned.GetHandleWindow(): should return gdk.Window, not gtk.Window

See https://docs.gtk.org/gtk3/method.Paned.get_handle_window.html

Syntax typo?
return &gdk.Window{glib.Take(unsafe.Pointer(c))  }   , nil
wrapWindow ... How should this not be used?

wrapWindow returns a gtk.Window
but according to the docs, it should be a gdk.Window
a typo makes no sense. I literally copied and pasted it from a func further below.
see Viewport.GetBinWindow or Viewport.GetViewWindow

can you make a new PR?

Sure. Give me a sec
And I just saw: even your revert failed: https://github.com/gotk3/gotk3/actions/runs/7753441381/job/21144754351?pr=914


Make build.sbt more beginner friendly

With the added comma, it does not matter whether a dependency is added before or after the existing line.
This can trip up beginners, as the error message is not the best if they forget: "string literal found, but ) expected"

Context:
I am using these giter8 templates in adding a VS Code tutorial along the lines of the IntelliJ one.


Fix version warning banner message

Fixes 2 problems with the version warning banner:

the grammar was a bit off for cases where the version was unparsable (and thus we couldn't tell if the version was older or newer than preferred)
it was relying on DOCUMENTATION_OPTIONS.VERSION which sometimes is an empty string --- not sure why; on PR builds it is correctly populated but on current dev build it is empty string, yielding this screenshot:

This one is ready for review/merge.  The PR build still looks as expected; the real test will be if https://pydata-sphinx-theme.readthedocs.io/en/latest/index.html shows the banner correctly after this PR is merged.

yeah sorry I checked but I'm unable to send Images to Github from my company computer


Updated code for metadata with default value

mt_metadata has been updated to have a default value in the attribute dictionary.  This patch conforms to that update.

[x] Update code by adding default values to any metadata attribute dictionaries
[ ] Update tests

Codecov Report

Merging #77 (4b97d82) into master (f8d9906) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master      #77      +/-   ##
==========================================
- Coverage   49.36%   49.33%   -0.04%
==========================================
  Files          50       50
  Lines        6334     6334
==========================================
- Hits         3127     3125       -2
- Misses       3207     3209       +2

Impacted Files
Coverage Δ

mth5/groups/base.py
82.92% <ø> (-0.41%)
:arrow_down:

mth5/groups/master_station_run_channel.py
48.55% <ø> (ø)

mth5/groups/standards.py
80.30% <ø> (ø)

mth5/utils/helpers.py
0.00% <0.00%> (ø)

tests/version_1/test_from_stationxml.py
98.52% <ø> (ø)

tests/version_2/test_from_stationxml.py
100.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 f8d9906...4b97d82. Read the comment docs.

Updated code to have default values in metadata attributes.  Small bug fixes.


Adjust styles to improve mobile experience

This PR makes the game easier to play on mobile:

Dragging question cards starts immediately (because touch events from child elements are now ignored). Addresses https://github.com/tom-james-watson/wikitrivia/issues/40
Bouncy over-scrolling is prevented by constraining viewport height

Mmm can you expand on what exactly you think is being fixed here?
I don't see any difference in behaviour on dragging on either Firefox or Chrome on mobile. Both still require that you long-press the card for maybe 50ms before you can start dragging.
This also seems to break the layout slightly.
Old:

New

It also introduces scroll - if I drag the card to the bottom then the screen will scroll.

I'll have to hunt down my Android device to try to reproduce the behaviour you describe. My fault for assuming that what works on iOS will work elsewhere!
On my device the dragging is instantaneous and there's no scrolling when you drag a card. Layout is as here:

Closing as I can't find a device to test properly across platforms


Update client-libraries.md

Summary
Fixes a few issues in the Observable code sample, there was a missing generic definition in the GrpcStreamSubscription.
Removes the Debug.Assert and use argument exceptions instead.
Few other cosmetic changes.

@Gimly This now has merge conflicts. Can you address those.
Also, ping @shirhatti for review

Hi @BillWagner, thanks for the heads up, I fixed the merge conflicts.

@shirhatti do you have anything I'd like to change in the proposal?

ping @shirhatti


feat(index): add child indices to UiState correctly

Before this change, UiState was merging the indexIds directly with the other state, meaning it's very hard to do changes like IFW-933, which filter out the current UiState, as well as making routing later more easy to write (IFW-941 specifically)
Merging this will prompt an update to #4070 to have correct UiState in the tests

One of the most annoying thing in the React InstantSearch codebase is to conditionally support single and multi index states. I thought we were going to a different structure in InstantSearch.js that will make development easier: always have the index ID as key and remove all top-level states.
interface IndexUiState {
  query?: string;
  // ...
}

interface UiState {
  [indexId: string]: IndexUiState;
}

An example would be:
const state: UiState = {
  movies: {
    query: 'hammer',
  },
  songs: {
    query: 'burning',
  },
};

The role of state mapping would be to transform any single-index mapping to a IndexUiState to keep routing backward compatible.

made some changes here, but the story doesn't seem complete: https://github.com/algolia/instantsearch.js/commit/b0c1acddc97cf5ea24baf407e6ba4241c8c39f28

Before this change, UiState was merging the indexIds directly with the other state,

Not sure to understand the meaning of the comment. Could you explain? The current format of uiState is already the one described by @francoischalifour. I don't think we have to update its structure. The types inside the codebase are not up-to-date though, this is the idea:
type UiState = {
  [indexId: string]: IndexUiState;
};

const movies: IndexUiState = {
  query: "hammer"
};

const songs: IndexUiState = {
  query: "burning"
};

const uiState: UiState = {
  songs,
  movies
};

will do this later when other changes are integrated, now it requires too many changes


Traefik HTTP and HTTS CrashLoopBackOff

Describe the bug
When installing K3s with canal, traefik pod with HTTP and HTTPS failed to start :
k3s kubectl logs -n kube-system svclb-traefik-58ddb6cc55-z8nd2 -c https
+ trap exit TERM INT
+ cat /proc/sys/net/ipv4/ip_forward
+ '[' 0 '!=' 1 ]
+ exit 1

To Reproduce
Steps to reproduce the behavior:
sudo k3s server --cluster-cidr <IP_ADDRESS>/16 --disable-agent
sudo k3s agent --no-flannel --server https://<IP_ADDRESS>:6443 --token $(sudo cat /var/lib/rancher/k3s/server/node-token)
k3s kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/canal/rbac.yaml
k3s kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/canal/canal.yaml
k3s kubectl get po -n kube-system -w

It looks like ip forwarding is disabled for your system @saphoooo. Does enabling it help?

No, it doesn't. It's the subject of this report.

@erikwilson I have same problem when I create LoadBalancer Service
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
crictl exec -it pod bash
(In Pod) #  sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

It's looks like ip_forward different between host and pod?
k3s version v0.4.0 (7822549f)

I'm seeing the same, k3s 0.6.0-rc3. Here's a Vagrantfile to reproduce:
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  #config.vm.box = "ubuntu/bionic64"
  #config.vm.box = "generic/ubuntu1804"
  config.vm.hostname = "k3s"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "3172"
    vb.cpus = 3
  end
  config.vm.provider "libvirt" do |lv|
    lv.memory = "3172"
    lv.cpus = 3
  end

  config.vm.provision "shell", inline: <<-SHELL
    set -eu
    if [ -f /etc/centos-release ]; then yum install -y -q policycoreutils-python; fi
    curl -sfL https://get.k3s.io -o install-k3s.sh
    INSTALL_K3S_VERSION=v0.6.0-rc3 INSTALL_K3S_EXEC=--no-flannel sh install-k3s.sh

    export PATH=/usr/local/bin:$PATH
    sleep 10

    curl -sSfLO https://docs.projectcalico.org/v3.7/manifests/calico.yaml
    # Adjust Calico pod network to match k3s default
    sed -i.bak -e 's%<IP_ADDRESS>/16%<IP_ADDRESS>/16%' calico.yaml
    kubectl apply -f calico.yaml

    while [ `kubectl get nodes -o jsonpath='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' | grep 'Ready=True' | wc -l` -lt 1 ];
      do echo -n .; sleep 1;
    done

    SHELL
end

$ vagrant up
...

$ vagrant ssh

$ sudo /usr/local/bin/kubectl -n kube-system get pods
NAME                                       READY   STATUS             RESTARTS   AGE
calico-kube-controllers-8646dd497f-qpmv2   1/1     Running            0          2m8s
calico-node-r4lgs                          1/1     Running            0          2m8s
coredns-695688789-7s2q7                    1/1     Running            0          2m8s
helm-install-traefik-44gmf                 0/1     Completed          0          2m8s
svclb-traefik-sl72j                        0/2     CrashLoopBackOff   6          80s
traefik-55bd9646fc-8rbxq                   1/1     Running            0          80s

$ sudo /usr/local/bin/kubectl -n kube-system logs svclb-traefik-sl72j lb-port-80
+ trap exit TERM INT
+ cat /proc/sys/net/ipv4/ip_forward
+ '[' 0 '!=' 1 ]
+ exit 1

$ cat /proc/sys/net/ipv4/ip_forward
1

$ sudo /usr/local/bin/kubectl run -i --tty busybox --image=busybox --restart=Never --rm -- sh -c 'cat /proc/sys/net/ipv4/ip_forward'
0
pod "busybox" deleted

This appears to be due to the fact that calico disables ip forwarding by default
https://github.com/projectcalico/cni-plugin/pull/381
It looks like I was able to get the svclb-traefik pod and other LoadBalancer services working on k3s with canal by adding
          "container_settings": {
            "allow_ip_forwarding": true
          },

to the cni_network_config (under "plugins") in https://docs.projectcalico.org/v3.7/manifests/canal.yaml
https://github.com/projectcalico/cni-plugin/pull/501
https://docs.projectcalico.org/master/reference/cni-plugin/configuration (see Container Settings)

I'm running into this same issue, except that I am using flanel and not adding canal.  My host shows ip forwarding enabled, but the containers do not.
root@qemux86-64:~# cat /proc/sys/net/ipv4/ip_forward
1
root@qemux86-64:~# k3s kubectl -n kube-system logs svclb-traefik-8t7kc -p --all-containers
+ trap exit TERM INT
+ cat /proc/sys/net/ipv4/ip_forward
+ '[' 0 '!=' 1 ]
+ exit 1
+ trap exit TERM INT
+ cat /proc/sys/net/ipv4/ip_forward
+ '[' 0 '!=' 1 ]
+ exit 1
+ trap exit TERM INT
+ cat /proc/sys/net/ipv4/ip_forward
+ '[' 0 '!=' 1 ]
+ exit 1

@wilsonianb do you think this might get upstreamed at some point? I saw it was still in your patches here

I think we only need to add one property to the custom-resource.yaml to resolve it
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  # Configures Calico networking.
  calicoNetwork:
    ########
    containerIPForwarding:Enable
    ######
    ipPools:
    - blockSize: 26
      cidr: <IP_ADDRESS>/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()

Closing this out as it appears to be solved, please re-open if that is not the case.


LWJGL 3 miss ApplicationListener.resize notification when changing between windowed and full screen mode

The ApplicationListener.resize is no called during changing between windowed and full screen mode by calling Gdx.graphics.setFullscreenMode and Gdx.graphics.setWindowedMode. Also tap events starts to report wrong coordinates. Version: libgdx 1.8.0 & lwjgl 3.0.
The temporal solution which works is to call Gdx.app.getApplicationListener().resize explicitly after every full screen <-> windowed change.

Thanks for reporting, i fixed the resize issue. Could you please open a separate issue for the tap coordinate issue? I could not reproduce it.

I believe tap problems should be ok now (stage will receive .resize event).


Volume Simple Average

We need a simple volume average example.
Anyone can help us?

Please help here!

Anyone?


chat: channel only rendering unread messages

There's a scrollback in this channel, but when switching to it, only the unread messages are initially rendered:

Seems to not be an issue any more.


Buttons on floating toolbar do not work

Describe the bug
Using Arch Linux as the client and installing the freerdp package 2.0.0.rc4, I connect to my Windows 10 desktop using username and password as login. This works fine and the desktop appears. However the floating blue toolbar at the top with the pin, IP address, minimize, restore and close buttons do not work at all. The only way to disconnect is to use the Disconnect option from the Windows 10 Start menu.
To Reproduce

Run xfreerdp and connect to a Windows 10 machine. I used the following options although they make no difference to the issue:

xfreerdp /v: /w:1680 /h:1050 /f /u: /p: -wallpaper -themes /printer /clipboard

When the Windows 10 desktop appears, attempt to close by clicking the 'X' on the right of the floating toolbar at the top.

Expected behavior
XFreeRdp to disconnect.
** Application details

Version of FreeRDP - 2.0.0.rc4
Command line used: see above
output of /buildconfig
OS version connecting to: Windows 10 v1809
If available the log output from a run with /log-level:trace

Desktop (please complete the following information):

OS: Arch Linux
Browser [e.g. chrome, safari] - None
Version [e.g. 22]  4.20.13-arch1-1-ARCH

@cixonline please try our nightly builds, this was already addressed.

Tried with version 2.0.0-dev5 (e0d60a031) and the same issue is present. xfreerdp --version reports the dev5 version so I'm sure I'm running the latest.
The source was built using https://aur.archlinux.org/packages/freerdp-git/ as there are no Arch Linux nightly builds listed here.

@cixonline tried it on fedora 29 and debian 10 today, working as expected. Are you maybe missing some x11 dev package? Could you check /buildconfig?