pycurl test multi_memory_mgmt_test.py fails on 19.09 upgrade

Describe the bug
Upgrading my NixOS errors with a failing pycurl test today.
To Reproduce
Steps to reproduce the behavior:

run nixos-rebuild switch --upgrade on NixOS 19.09

Expected behavior
The upgrade should finish successfully.
 Success!
test_getinfo_times passed 1 out of the required 1 times. Success!
test_cyclic_gc passed 1 out of the required 1 times. Success!
test_debugfunction_collection passed 1 out of the required 1 times. Success!
test_form_bufferptr_memory_leak_gh267 passed 1 out of the required 1 times. Success!
test_headerfunction_collection failed (2 runs remaining out of 3).
        <class 'AssertionError'>
        False is not true
        [<TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/memory_mgmt_test.py:243>, <TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/util.py:192>, <TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/memory_mgmt_test.py:285>]
test_headerfunction_collection passed 1 out of the required 1 times. Success!
test_headerfunction_refcounting passed 1 out of the required 1 times. Success!
test_ioctlfunction_collection failed (2 runs remaining out of 3).
        <class 'AssertionError'>
        False is not true
        [<TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/memory_mgmt_test.py:259>, <TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/util.py:192>, <TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/memory_mgmt_test.py:285>]
test_ioctlfunction_collection passed 1 out of the required 1 times. Success!
test_multi_collection passed 1 out of the required 1 times. Success!
test_multi_cycle passed 1 out of the required 1 times. Success!
test_opensocketfunction_collection passed 1 out of the required 1 times. Success!
test_postfields_unicode_memory_leak_gh252 passed 1 out of the required 1 times. Success!
test_progressfunction_collection passed 1 out of the required 1 times. Success!
test_readdata_refcounting passed 1 out of the required 1 times. Success!
test_readfunction_collection passed 1 out of the required 1 times. Success!
test_readfunction_refcounting passed 1 out of the required 1 times. Success!
test_refcounting_bug_in_reset passed 1 out of the required 1 times. Success!
test_reference_counting passed 1 out of the required 1 times. Success!
test_seekfunction_collection passed 1 out of the required 1 times. Success!
test_share_collection passed 1 out of the required 1 times. Success!
test_share_cycle passed 1 out of the required 1 times. Success!
test_writedata_refcounting passed 1 out of the required 1 times. Success!
test_writefunction_collection passed 1 out of the required 1 times. Success!
test_writefunction_refcounting passed 1 out of the required 1 times. Success!
test_writeheader_refcounting passed 1 out of the required 1 times. Success!
test_xferinfofunction_collection passed 1 out of the required 1 times. Success!
test_curl_ref passed 1 out of the required 1 times. Success!
test_opensocketfunction_collection failed (2 runs remaining out of 3).
        <class 'AssertionError'>
        False is not true
        [<TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/multi_memory_mgmt_test.py:18>, <TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/multi_memory_mgmt_test.py:42>]
test_opensocketfunction_collection failed (1 runs remaining out of 3).
        <class 'AssertionError'>
        False is not true
        [<TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/multi_memory_mgmt_test.py:18>, <TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/multi_memory_mgmt_test.py:42>]
test_opensocketfunction_collection failed; it passed 0 out of the required 1 times.
        <class 'AssertionError'>
        False is not true
        [<TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/multi_memory_mgmt_test.py:18>, <TracebackEntry /build/pycurl-<IP_ADDRESS>/tests/multi_memory_mgmt_test.py:42>]
test_seekfunction_collection passed 1 out of the required 1 times. Success!
test_multi_socket_select passed 1 out of the required 1 times. Success!
test_pause_via_call passed 1 out of the required 1 times. Success!
test_pause_via_return passed 1 out of the required 1 times. Success!
test_post_byte_buffer passed 1 out of the required 1 times. Success!
test_post_fields_with_ampersand passed 1 out of the required 1 times. Success!
test_post_file passed 1 out of the required 1 times. Success!
test_post_list_of_list_of_lists passed 1 out of the required 1 times. Success!
test_post_list_of_tuple_of_tuples passed 1 out of the required 1 times. Success!
test_post_multiple_fields passed 1 out of the required 1 times. Success!
test_post_single_field passed 1 out of the required 1 times. Success!
test_post_tuple_of_lists_of_tuples passed 1 out of the required 1 times. Success!
test_post_tuple_of_tuple_of_lists passed 1 out of the required 1 times. Success!
test_post_tuple_of_tuples_of_tuples passed 1 out of the required 1 times. Success!
test_post_unicode_buffer passed 1 out of the required 1 times. Success!
test_post_with_null_byte passed 1 out of the required 1 times. Success!

===End Flaky Test Report===
===== 1 failed, 381 passed, 9 skipped, 9 deselected, 8 warnings in 42.93s ======
checking for struct fsstat.f_fstypename... no
checking for library containing getmntent... none required
part1part2
builder for '/nix/store/wdhdxrs78axph8j66dpd9cbbaf6h147x-python3.7-pycurl-<IP_ADDRESS>.drv' failed with exit code 1
cannot build derivation '/nix/store/3y5lmk45aihims9jv40svzfvzz4414gp-system-config-printer-1.5.11.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/m9sqkgy4bcrdgcbzjnks3i7dn2r2a36k-dbus-1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/z8mkwcgjvz0khq9yvsng63ypsr1ns26r-hwdb.bin.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/ysf1kx9pnjyjk9xv7l4dfvq7gwjiqa68-system-generators.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/d1wpss9ighwdj1fs2yf7hxsby1qlgkx2-system-shutdown.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/nklh3f6f6a01sla8jaf3m0kdpgvc6f56-system-units.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/bd6bh9nldc31hc9wkqm9cpqwxyl26m1p-udev-rules.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/c4g1kgmmsxgf8xpkn8128w4598jw5z3x-user-units.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/xgnzf22gndqg3pbs2pivj39ynjzm54fm-etc.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/7dg78qsrc9vs5zg58srwcj1yvk36qr29-nixos-system-pilot1-nixos-19.09.907.f6dac808387.drv': 1 dependencies couldn't be built
error: build of '/nix/store/7dg78qsrc9vs5zg58srwcj1yvk36qr29-nixos-system-pilot1-nixos-19.09.907.f6dac808387.drv' failed

Metadata
 - system: `"x86_64-linux"`
 - host os: `Linux 5.3.6, NixOS, 19.09.840.8bf142e001b (Loris)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3`
 - channels(root): `"nixos-19.09.907.f6dac808387, home-manager-19.09, nixos-unstable-20.03pre196836.1c40ee6fc44"`
 - channels(felschr): `"nixpkgs-unstable-20.03pre197736.91d5b3f07d2"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: python37Packages.pycurl
# a list of nixos modules affected by the problem
module:

So, I was able to build python3.pkgs.pycurl on the nixos-19.09 branch with success. However it wasn't cached from hydra, which does make me think this particular test is being flaky with timing related issues etc.

Got a similar failure but starting with MemoryMgmtTest.test_readfunction_collection.

cc @jonringer @FRidh. Intriguing that it's just the stable branch.

 (Some other tests were also failing, but i forgot to take a note)
People encountering this erratic behavior and fluent in python/flaky could help upstream: https://github.com/pycurl/pycurl/issues/545

this is also annoying as it builds fine locally, but fails on hydra :(


Scala support

Check for existing issues

[X] Completed

Language
Scala
Tree Sitter parser link
https://github.com/tree-sitter/tree-sitter-scala
Language server link
https://github.com/scalameta/metals
Misc notes
No response

this seems to be a duplicate of https://github.com/zed-industries/community/issues/299 please upvote that issue to show interest 🙂
closing this one


Roslyn 2.0.0-beta5

Roslyn 2.0.0-beta5 has just been released on NuGet.
I have attempted an update (that you could cherry-pick as a base):
https://github.com/SiliconStudio/RoslynPad/tree/roslyn_2.0.0-beta5
Note: I couldn't get System.IO.Compression.FileSystem to work with latest IO.Compression 4.1.0, so that still need to be fixed (for the call to ExtractToDirectory)

Oh, I'm already on it :) I'm the one who requested they put it on NuGet. Thanks though.


Dev License

When i try tu publish an extension i get the error "The request for path /NAV/dev/apps?SchemaUpdateMode=recreate failed with code 422. Reason: Your program license does not allow you to publish 'GRWPagExtPacWebServiceDetails'."
this is in a server with a container, i search online and it appears is my license but i do not know how to get my dev license, i work for a partner
My extensions add a new field to a existing table and add the field to a page everything compiles good

Freddy is right - you have to use the range  50100 to 50149  if you don't have a licensefile.
Could you show us your app.json file in order to see if the problem relates to that file.  Sometimes the error you get is because you are not using the latest AL VSIX file. You should check that.

Freddy is right - you have to use the range 50100 to 50149 if you don't have a licensefile.
Could you show us your app.json file in order to see if the problem relates to that file. Sometimes the error you get is because you are not using the latest AL VSIX file. You should check that.
Palle

Thanks Palle i reinstall AL language and change the runtime on my app.json and it works, i have one doubt how can i get my own object ids?

i have one doubt how can i get my own object ids?

You have to be a Microsoft Partner/ISV and get an object range.  You can read more about it here:
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/readiness/readiness-add-on-apps
Notice that you have to apply for TWO object ranges - One for OmPremise and one for Cloud if you want to aim for both installation types.
You also need a license file for being able to develop code in the new object ranges.
Again you need to be a Microsoft Partner/ISV in order to more than just play around with Docker and Dyn 365 BC.

@freddydk I think you can close this one now.


lightbox: Fix SafeAreaInsets padding is not applied.

Wrap screen content with SafeAreaView from react-native instead of
View.
References: https://facebook.github.io/react-native/docs/safeareaview
Fixes: #3291

Very interesting, thanks!
Is the lightbox the only screen this is applicable to? What's the reason for that?
The linked docs say this only applies on iOS. There are Android devices with a notch in the screen -- what about them? We already have a safeAreaInsets mechanism which we use in some places; should we use that here instead of SafeAreaView?

There are Android devices with a notch in the screen -- what about them?

BTW, for investigating this kind of question: on Android P, the developer settings have an option to simulate a notch (or two!):

I have a notch in my phone, so I can test without any simulator 😅.
Actually on Android, we can't paint/overlap app on status bar by default so
it works fine. But on iOS by default we can.
Other screen uses Screen component, so it is taken care by it :)
On Tue, Feb 26, 2019, 4:41 AM Greg Price<EMAIL_ADDRESS>wrote:

There are Android devices with a notch in the screen -- what about them?
BTW, for investigating this kind of question: on Android P, the developer
settings have an option to simulate a notch (or two!):
[image: image]
https://user-images.githubusercontent.com/28173/53374943-ba557980-390e-11e9-8ad6-dd7bc4678125.png
[image: image]
https://user-images.githubusercontent.com/28173/53375274-a65e4780-390f-11e9-849b-19debe6fdfd0.png
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zulip/zulip-mobile/pull/3292#issuecomment-467222589,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARp1SY_QlPUTqbRRl_q6F3_Z8APtvAuSks5vRG22gaJpZM4aGctP
.

Thanks for the reply! Just to copy to this thread from our PM discussion yesterday:

Any time I ask a "why" question about a PR, we'll want the answer to make it into the actual commits. Or if I find something confusing, we'll want it to be clear in the actual commits -- ideally the code itself make it clear, or if not then comments or the commit messages explaining.
So e.g. your answer about Android vs. iOS is a perfect example -- that's great information to put in the commit message to explain what's going on.

There's a question I asked that I'm still curious about:

We already have a safeAreaInsets mechanism which we use in some places; should we use that here instead of SafeAreaView?

And then you answered that in our PM thread -- that answer is also prime information to explain in the commit message :slightly_smiling_face:

One other, followup question: you said we don't need this on Android because Android already keeps us out of the status bar.
But there are several possible kinds of notch, at least that you can test in developer mode (with the setting I posted a screenshot of). Including having one at the bottom, and having an extra-tall one at the top. Do things already work fine on those?
Probably screenshots will be helpful in explaining exactly how the app behaves in those cases.

Related: #3067
SafeAreaView is iOS-specific.
The extra-messy thing is that iPhones do not have physical keys anymore, so they not only need offset for the notch (optionally) but for the UI element at the bottom that acts as Home button.
Android does have this:
https://developer.android.com/guide/topics/display-cutout
The Andoird story is simpler and we barely care about the notch.
We probably want to set LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER and that should be enough.

The extra-messy thing is that iPhones do not have physical keys anymore, so they not only need offset for the notch (optionally) but for the UI element at the bottom that acts as Home button.

In my phone too there are are no physical buttons at bottom, edges are curved little bit (one plus six).
But simpler than iOS 😝

We probably want to set LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER and that should be enough.

We don't really need to set because by default we are only allowed to paint in safe areas.
https://developer.android.com/guide/topics/display-cutout#default_behavior

Cool, that Android docs link is very helpful.
I agree that the default behavior on Android is good for us. @borisyankov the docs are pretty confusing here -- they say on the one hand

[In] the default behavior [...] [c]ontent renders into the cutout area while in portrait mode

which sounds bad... but then later they say

By default, in portrait mode with no special flags set, the status bar on a device with a cutout is resized to be at least as tall as the cutout, and your content displays in the area below.

which sounds perfectly fine, and matches @jainkuniya 's screenshots above that show our current behavior (under that default).
I think what's happening is that in the earlier quotation, "content" includes the status bar (which after all we do have some control over). We don't want our actual content rendering into the cutout area, but it's fine that the status bar is there.

(In those screenshots, is there a duplicate? I see two that both look like double cutouts, and none that look like a tall cutout.)

This is for tall display cut

Copying from a question I asked @jainkuniya in chat the other day:
You wrote

In all other screens we are manually handeling safe area by applying margins/padding

and earlier you wrote

Other screen uses Screen component, so it is taken care by it :)

But it takes some work to go and confirm that that's really true. After all, there are a lot of screens in the app! Do we really use Screen on all of them... with this one exception? Where there's one exception, there are often more exceptions.
It turns out in fact this is not 100% true. :stuck_out_tongue: You replied in chat with some more details to help explain why this is nevertheless the right change -- please reply here with those details, and then we can discuss.

Hey, I have updated in the commit message.
In all other screens we are manually handeling safe area by applying
margins/padding as we are using `Screen`. In 4 screens we aren't
using `Screen`:

$ git ls-files src/ | grep Screen | xargs grep -wL Screen
- src/chat/ChatScreen.js
We have custom handeling here, see ComposeBox and ChatScreen.

- src/lightbox/LightboxScreen.js
This change will take care for this as well.

- src/main/MainScreenWithTabs.js
`TabBarBottom` is taking care for this
see https://github.com/react-navigation/react-navigation/blob/v1.5.11/src/views/TabView/TabBarBottom.js#L234

- src/start/CompatibilityScreen.js
- src/start/LoadingScreen.js
For both the above screens, content is very less and aligned vertically
 center, so no scope for content touching top/bottom.

All This custom handeling is dependent on third party
dependency to calculate offsets. Now RN also comes up with this new
component `SafeAreaView`. Plan is to use it instead of handeling
manually across the app, and remove external dependency.

This issue of safe area is only for iOS, becuase by defualt it allows us
to paint whole screen including notch area and bottom.

On Android by defualt we are not allowed to paint statusbar (notch area)
so this is not a issue there.

I have tested on Android by simulating all types of display cutout
present in the developer option, and works fine even without this
change.

References: https://facebook.github.io/react-native/docs/safeareaview
https://developer.android.com/guide/topics/display-cutout#default_behavior

Thanks @jainkuniya for all your work on this!
After reading this explanation, and then rereading recently #3067, I've determined the plan I want to take is to merge #3067. That will move us systematically onto SafeAreaView, so we don't have a mixture of two different ways to do the same thing. (Which would tend to be super confusing for people, including me :wink: , trying to understand exactly how the code works.) It also answers a lot of the questions I was asking above, some of them by fixing bugs where in fact we weren't correctly handling the notch on some other screens, i.e. #3066 .


No warning about limited capabilities of installing as service

The documentation lacks a warning that installing the agent as service with the default user NT AUTHORITY\NETWORK SERVICE will cause certain task not to work: For example all tool installer tasks fail (rather cryptically) because NETWORK SERVICE is not allowed to install msi packages. Running the agent service as NT AUTHORITY\SYSTEM works instead.

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

ID: 43799c5d-2f13-cc76-a1c0-a3f850e16d4e
Version Independent ID: 97a5b73f-faf7-f9c0-9269-fc79984616d6
Content: Deploy a build and release agent on Windows - Azure Pipelines
Content Source: docs/pipelines/agents/v2-windows.md
Product: devops
Technology: devops-cicd
GitHub Login: @andyjlewis
Microsoft Alias: alewis

logged a year ago
no feedback from Microsoft
last updated to Pri1 5 months ago
still no feedback from Microsoft

Seems legit.


swiftenv global not rewrite .swift-version file

i have installed Xcode 9.0, and swift 3.1.1
when i use swiftenv global 3.1.1.
and use swiftenv global, the terminal output 3.1.1.
then use swift --version output swift 4.0
i check the .swift-version file always show swift 4.0
then I modified the file to swift 3.1.1, the swift --version output correct.

@SiegeLeo Please see the documentation regarding global and local:

https://swiftenv.fuller.li/en/latest/commands.html#local

Global
Sets the global version of Swift to be used by writing to the ~/.swiftenv/version file. This version can be overridden by application-specific .swift-version file, or by setting the SWIFT_VERSION environment variable.
Local
Sets the local application-specific Swift version by writing the version to a .swift-version file in the current directory. This version overrides the global version and can also be overridden further by the SWIFT_VERSION environment variable.

it means the global setting was overridern by setting the SWIFT_VERSION environment variable ？ so, how can i resolved this problem

你好, @SiegeLeo
$ swiftenv global i.e. ~/.swiftenv/version
↳ overridden by $ swiftenv local i.e. [working directory]/.swift-version
    ↳ overridden by SWIFT_VERSION

∴ when you started (在开始):
? (~/.swiftenv/version)
↳ overridden by 4.0 ([working directory]/.swift-version)
    ↳ ∅, no override (SWIFT_VERSION)
= 4.0

Then you did (之后, 你做了):
$ swiftenv global 3.1.1

3.1.1 (~/.swiftenv/version) ← This changed. (这改变了)
↳ overridden by 4.0 ([working directory]/.swift-version)
    ↳ ∅, no override (SWIFT_VERSION)
= 4.0

Then you did (之后, 你做了):
.swift‐version → 3.1.1
3.1.1 (~/.swiftenv/version)
↳ overridden by 3.1.1 ([working directory]/.swift-version) ← This changed. (这改变了)
    ↳ ∅, no override (SWIFT_VERSION)
= 3.1.1

So, if you want 3.1.1 everywhere, and you want to undo all possible overrides (解):
$ swiftenv global 3.1.1
$ swiftenv local --unset
$ unset SWIFT_VERSION

3.1.1 (~/.swiftenv/version) ← This changed. (这改变了)
↳ ∅, no override ([working directory]/.swift-version) ← This changed. (这改变了)
    ↳ ∅, no override (SWIFT_VERSION) ← This changed. (这改变了)
= 3.1.1

@SiegeLeo You set a global version but you have a local override. You mentioned you had a .swift-version file that is locally overriding the global version. You can run swiftenv local --unset to unset the local version so global version will be used:
$ swiftenv version
4.0 (set by /Users/kyle/.swift-version)

$ swiftenv local
4.0

$ swiftenv local --unset

$ swiftenv version
4.0.2 (set by /Users/kyle/.swiftenv/version)


Pause/Play button is always Play

We've decided to remove the play/pause button and make everything altered by the drag/drop of the queue.  This is now a will not fix and is closed.


Storage option with Js cookie stops working suddenly

I was working with vuex-persistedstate version 4.0.0 (tried 4.1.0 as well) and used js cookie as the storage option. my auth credentials were stored in the vuex cookie. but since yesterday, store value is not updating with login. what went wrong suddenly?
vuex-persistedstate:  4.0.0
js-cookie: 3.0.1
store index
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'
import Cookies from 'js-cookie'

// Modules
import app from './app'
import auth from './auth'

Vue.use(Vuex)

export default new Vuex.Store({
  modules: {
    app,
    auth,
  },
  plugins: [
    createPersistedState({
      paths: ['auth'],
      storage: {
        getItem: key => Cookies.get(key),
        setItem: (key, value) => Cookies.set(key, value, { expires: parseInt(process.env.VUE_APP_MAX_TOKEN_CACHE_TIME), secure: false }),
        removeItem: key => Cookies.remove(key),
      },
    }),
  ],
  strict: process.env.DEV,
})

auth module
import axios from '@axios'

export default {
  namespaced: true,
  state: {
    status: '',
    token: '',
    userData: {},
  },
  mutations: {
    auth_request(state) {
      state.status = 'loading'
    },
    auth_success(state, { accessToken, userData }) {
      state.status = 'success'
      state.token = accessToken
      state.userData = userData
    },
    auth_error(state) {
      state.status = 'error'
      state.token = ''
      state.userData = {}
    },
    update_image(state, { userImage }) {
      state.userData = { ...state.userData, image: userImage }
    },
    logout(state) {
      state.status = ''
      state.token = ''
      state.userData = {}
    },
  },
  actions: {
    login({ commit }, user) {
      return new Promise((resolve, reject) => {
        commit('auth_request')
        axios
          .post('login', user, { withCredentials: true })
          .then(response => {
            // eslint-disable-next-line prefer-destructuring
            const { accessToken, userData } = response.data
            commit('auth_success', { accessToken, userData })
            resolve(response)
          })
          .catch(err => {
            commit('auth_error')
            reject(err)
          })
      })
    },
  },
  getters: {
    isLoggedIn: state => !!state.token,
    authStatus: state => state.status,
  },
}

in login actions commit('auth_request') works well. it sets state status to loading. but in axios request commit('auth_success', { accessToken, userData }) not setting value in state. i can get values using console log in auth_success mutation and see them in vue dev tools as well but in browser cookie, value does not update. if i don't use cookie as storage, all things works well. all data in mutations are set in local storage.

I am having the same issue using vuex-persistedstate v.4.1.0 and js-cookie v.3.0.1. Values are updated in the dev tools, but the cookie value does not update.


Add a Markdown link checker

Not sure if this might be defered to DocFx to handle, but I've been using https://github.com/tcort/markdown-link-check on projects lately to validate that all those relative links in markdown are actually there.
That project has some downsides, so maybe you want to do your own:

Gets flagged by DDoS protection on some sites
Doesn't natively support globbing file patterns

Hi @nschonni , thanks for the feedback.  Labeling this as a feature request for now and will pass this suggestion off to our PM team.  Please stay tuned for status updates.

Link checker is being added in these PRs #350 and #349. Closing this issue out as these changes will be merged soon and the new extension will be added.


fix: doctor removeStubs resulting in 'no data' prompt

Related issue : https://github.com/dendronhq/dendron/issues/2880
Dendron Extended PR Checklist
Code
Basics

[x] code should follow Code Conventions
[x] circular dependency check: make sure your code is not introducing new circular dependencies in plugin-core.  See Avoiding Circular Dependencies.
[x] sticking to existing conventions instead of creating new ones

eg: if configuration for utilities are already in one module or package, add future utilities there as well

Extended

General

[x] check whether code be simplified
[x] check if similar function already exist in the codebase. if so, can it be re-used?
[x] check if this change adversely impact performance

Operations

[x] when shipping this change, will it just work or will it introduce additional operational overhead due to complicated interface or known bugs?

Architecture

[x] check if code is introducing changes on a foundational class or interface. if so, call for design review if needed

eg: making changes to DNode

Instrumentation
NA
Tests
Basics

[ ] Write Tests
[ ] Confirm existing tests pass
[x] Confirm manual testing
[x] Common cases tested
[ ] 1-2 Edge cases tested
[ ] If your tests changes an existing snapshot, snapshots have been updated

Extended
NA
Docs
NA
Close the Loop
Extended
NA

Hey @Harshita-mindfire - thanks for fixing this issue.  Later (and for future reference), can we also update the generic params on engineDelete and the other functions we use with throttle?  This will allow us to detect the note vs note.id type error via a TS type error:
    const engineDelete = dryRun
      ? () => {}
      : throttle<
          [id: string, opts?: EngineDeleteOptsV2],
          Promise<EngineDeleteNoteResp>
        >(_.bind(engine.deleteNote, engine), 300, {
          // @ts-ignore
          leading: true,
        });

I think we can also delete the {leading: true} param, I don't think it's doing anything? It doesn't match the throttle fn's signature.


boot: Add support for tracing init script

Trivial patch, helps diagnostics when EXRM_BOOT_TRACE="anything" is set.

I like it. 👍


Bugfix/fix phone field

Participant list page

Make sure that phone input field only accept number and max length is 10.

Fix template

Fix wrong code from merging in sidebar_maange.html

End2End tests

Add message print to console that test is passed
Add delay to each test files to able to see activities

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Flag
Coverage Δ

unittests
74.88% <ø> (ø)

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

Thanks for fixing the bug, Pannatat.

Nice! Now customer can enter random strings into the phone field anymore.


Migrate Notification Publisher to Confluent Parallel Consumer

Because it does not need any of the features provided by Kafka Streams, it doesn't necessarily make sense to use KS.
I looked into migrating to SmallRye messaging (the "native" Quarkus solution), but it still has unpleasant drawbacks that make it not a good fit (https://github.com/DependencyTrack/hyades/issues/215#issuecomment-1377347537). Most notably, ordered, blocking processing will process all events on a single thread, no matter how many partitions the input topics have. This is prone to become a huge bottleneck under high load.
With Parallel Consumer, we get ordering guarantees by key and still almost unlimited concurrency (https://github.com/confluentinc/parallel-consumer#ordered-by-key). Further, processing is decoupled from the actual number of partitions.
A nice side-effect is also that it supports retries (https://github.com/confluentinc/parallel-consumer#retries).
Relates to #346

Passing the Sonar Quality code coverage because coverage seems good locally and is optimal.


Mouseout only when leaving layer area

Is there a reason why the mouseout functionality in the example is in the mouseover-function?
utfGrid.on('mouseover', function (e) {
if (e.data) {
    document.getElementById('hover').innerHTML = 'hover: ' + e.data.admin;
} else {
    // works like mouseout
    document.getElementById('hover').innerHTML = 'hover: nothing';
}
//console.log('mouseover: ' + e.data);
});

I had a problem with triggering the mouseout too often, while the code in the example didn't work well. Then I changed the mouseout to
if (this._mouseOn && on.data == null) { // the new part '&& on.data == null'
    this.fire('mouseout', { latlng: e.latlng, data: this._mouseOn });
    if (this.options.pointerCursor) {
        this._container.style.cursor = '';
    }
}

and now the mouseout is triggered when leaving the layer or hovering over a region with no values. Could there be any problems with it?

Dunno, just works a different way.

Would it be worth to prepare a pull request to include this part in the code?

Yeah, we should probably make it behave that when the mouse is on a data == null area we generate a mouseout.

Ok, created a pull request.


fix(Interceptors): Fix response interceptors call chain

Now they are executed immediately after HTTP request is made and not when request resolves
Closes #131

Codecov Report

Merging #132 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #132   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          13     13
  Lines         179    177    -2
  Branches       25     25
=====================================
- Hits          179    177    -2

Impacted Files
Coverage Δ

src/http/interceptable-http-proxy.service.ts
100% <100%> (ø)
:white_check_mark:

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 296dd9b...1843b86. Read the comment docs.


[FLINK-19314][coordination] Add DeclarativeSlotPoolBridge

Based on #13722.
This PR adds the final bit declarative resource management: the DeclarativeSlotPoolBridge which acts as a glue between the declarative resource management and current SlotRequest-based scheduler.
The bridge essentially maps every incoming slot request, be it for a new or an existing slot, to a requirement increase, and every slot release/free to a requirement reduction.
When allocating a new slot the bridge returns a slot future. Whenever a new slot is offered to the JobMaster the bridge tries to fulfill any non-completed slot futures with the new slots.

The fixing commit looks good to me @zentol.


Add migrate command for changing local & storage format

@dpastoor couple questions: should this modify both local and storage formats? or should there be two separate commands for these. I thing the former should be okay but feel free to disagree. the other question: should the command be able to convert between any arbitrary format (go backwards etc.), or should the command just update to the format used by the installed version?


Design QA - Market detail page: Help icon alignment

Can we improve the alignment for the help icons. Right now they are not centered:

Ok!


why run log printed in syslog file, such as /var/log/messages?

i run in suse 11 sp3, in /var/log/messages, i find content ：
Dec 17 15:30:07 szxciscslx16768 vcap.hm9000.listener: {"timestamp":1418801407.709357262,"process_id":6425,"source":"vcap.hm9000.listener","log_level":"info","message":"Received a heartbeat - {"Heartbeats Pending Save":"1"}","data":null}
Dec 17 15:30:08 szxciscslx16768 vcap.hm9000.listener: {"timestamp":1418801408.172760725,"process_id":6425,"source":"vcap.hm9000.listener","log_level":"info","message":"Saving Heartbeats - {"Heartbeats to Save":"1"}","data":null}
Dec 17 15:30:08 szxciscslx16768 vcap.hm9000.listener: {"timestamp":1418801408.175098896,"process_id":6425,"source":"vcap.hm9000.listener","log_level":"info","message":"Bumped freshness","data":null}
Dec 17 15:30:08 szxciscslx16768 vcap.hm9000.listener: {"timestamp":1418801408.175140142,"process_id":6425,"source":"vcap.hm9000.listener","log_level":"info","message":"Saved Heartbeats - {"Duration":"2.290513ms","Heartbeats to Save":"1"}","data":null}
can i close this?

Closing due to inactivity.


Part 1 improving code readability

Addresses https://github.com/wadpac/GGIR/issues/883
The main focus of this PR was on improving readability of g.calibrate and g.getmeta by moving most monitor-specific code out of these two modules and into g.readaccfile. Now g.calibrate and g.getmeta treat input data uniformly, regardless of what monitor was used to collect it.
Readability of some other part 1 modules was also improved (e.g. g.getstarttime, get_starttime_weekday_truncdata).
The output of g.readaccfile is now a lot more standardized, and the downstream methods can expect that this method returns a dataframe P$data with columns of at least c("x", "y", "z"), and possibly of a wider subset of c("time", "x", "y", "z", "light", "temperature", "wear").
g.readaccfile now also ensures that timestamps have been read in the correct timezone, configtz.
This PR also includes two speed improvements:

for movisens files, g.readtemp_movisens() is now a lot faster because it now only resamples the temperature data needed for that particular block (as opposed to resampling all temperature every time) and resampling is expensive. Overall, part 1 is ~50% faster for this file type.
For Axivity cwa and GENEActiv .bin files, g.calibrate is now ~25% faster because of switching from data.frame to numeric matrix for storing data. Overall, part 1 is ~10% faster for these file types.

However, part 1 is now ~10% slower for gt3x files, because of the added timestamp conversion code.
Below is the list of changes that affected more than just code readability or processing speed. These are minor.

g.getmeta now uses meantempcal, as calculated by g.calibrate, as the mean temperature for rescaling data for all monitor types. It used to use meantempcal for the (deprecated) GENEActiv csv files and for ad-hoc csv files, but for GENEActiv bin and Movisens files it was using the mean temperature calculated by g.getmeta for that particular data chunk. So in that second case each chunk of data was recalibrated slightly differently, as a slightly different meantemp value was used.

for ad-hoc files not containing a column header, we used to always skip the very first line of the file anyway. Now we only skip the first line if it contains column names.

For Axivity cwa files (but not other monitor or format types), if the very last block was shorter than (sf * ws * 2 + 1), g.readaccfile() trimmed this data off. Now we keep it, like we do for other types.

for movisens files, we didn't account for the fact that readUnisensSignalEntry(... , startIndex, endIndex) reads up to and including endIndex itself. So we were reading the next block starting from that last point, and this point was being read twice.

for monitor types for which the file is read till endpage including the endpage, we used to read (blocksize + 1) samples at a time, instead of blocksize samples as was requested.

for movisens files, now can have a dot anywhere in the file path, not just in the very beginning of the path, for example something like unisensR-0.3.4/tests/unisensExample/acc.bin that we get when we download a movisens data example from https://github.com/Unisens

in g.imputeTimegaps(), raw timestamp imputation results were lost and the the last timestamp before the gap was carried over as the timestamp for every sample inside the gap.

for Axivity .cwa files, while temperature was used to calculate calibration coefficients in g.calibrate(), it actually wasn't used to re-scale data in g.getmeta()

I will be doing more testing in the upcoming days, but I would appreciate any suggestions on how to test more throughly.

Checklist before merging:

[X] Existing tests still work (check by running the test suite, e.g. from RStudio).
[X] Added tests (if you added functionality) or fixed existing test (if you fixed a bug).
[ ] Updated or expanded the documentation.
[ ] Updated release notes in inst/NEWS.Rd with a user-readable summary. Please, include references to relevant issues or PR discussions.
[ ] Added your name to the contributors lists in the DESCRIPTION file, if you think you made a significant contribution.

Nice work @l-k-. I will help test this branch, probably in the weekend or next week.
Regarding evaluation strategies:
If I understand correctly changes mainly concerns: reading of files, recognising columns, interpretation of timestamps, and possibly general part 1 functionality (calibration + metric extraction).  So, probably good to compare entire content of the part 1 milestone files between this branch and master branch for:

Datasets from different studies. What I can do is pool all issue test files people sent me in the google group as well as samples of the few datasets I have copies of from collaborators.
Consider different desiredtz and configtz settings.
ad-hoc csv files with and without temperature data.
Different Operating Systems, I can focus on Ubuntu 18 and Windows.
Different OS timezone settings, I remember pacific/auckland is notorious for timestamp problems.
With do.parallel = TRUE and do.parallel = FALSE, just in case there is any inconsistency between how R operates.
Monitor with https://github.com/wadpac/profileGGIR memory consumption and speed.

If we spot differences then good to document which ones are expected and which ones need investigation.
Note that a while ago I asked Jairo to develop https://github.com/wadpac/testGGIR, which aids in comparing the output from GGIR between versions, although it only focuses on the csv reports and does not look at content of RData files.

@vincentvanhees as I was going through my commits in this PR, I had a question about time gap imputation in g.getmeta.
Here in the original code we do timegap imputation for FORMAT$CSV (so we do it for Axivity csv and Actigraph csv files). But the comment says "Actigraph or ad-hoc csv format".
Which one is correct, the comment or the code?

Here in the original code we do timegap imputation for FORMAT$CSV (so we do it for Axivity csv and Actigraph csv files). But the comment says "Actigraph or ad-hoc csv format".

We no longer facilitate Axivity .csv so that must be outdated. The idea was that Axivity data collectors are better off processing cwa directly or can use ad-hoc csv option.
We do g.imputetimegaps() only for ActiGraph (it seems both ActiGraph csv and Actigraph gt3x) and ad-hoc csv. Although, for ActiGraph it seems to happen inside g.getmeta while for ad-hoc csv it seems to happen inside read.myacc.csv.
The timegaps in Axivity CWA are treated inside GGIRread, and .bin are not expected to have time gaps.

We no longer facilitate Axivity .csv so that must be outdated. The idea was that Axivity data collectors are better off processing cwa directly or can use ad-hoc csv option.

we do seem to support Axivity csv still: https://github.com/wadpac/GGIR/blob/baeb58edaab0b43ffee13b5a6da9ba23851b2d0f/R/g.inspectfile.R#L53-L65
And there are references to (mon == MONITOR$AXIVITY && dformat == FORMAT$CSV) in both g.calibrate and g.getmeta.
Is that wrong, should this functionality be deprecated?
Axivity .wav support was deprecated, but not Axivity csv. I used csv exports from omGUI for my testing and saw that this sowtware allows both resampled and not resampled exports.

But thinking about this a bit more, it doesn't matter for me here if Axivity csv is deprecated or not. If Axivity csv were to be processed as an ad-hoc csv file in read.myacc.csv(), it would get resampled. So if it gets read as an Axivity csv specifically, it should get resampled to, for consistency.
And looking into this more, I see that Axivity csv actally gets resampled twice, both in readaccfile() and g.getmeta(). I'll re-read the code again to make sure I'm not missing anything, and I'll probably correct this to make sure resampling only happens once.

Oh good to know. Well if it still works then indeed better not to rush further deprecation. With Axivity producing 4 file formats my hope was at least to reduce the number of supported formats where possible to ease maintenance. At least .wav gave a lot of headaches and I am happy that those are no longer of concern to us.

I just edited the original PR description and added the list of (minor) changes that affected more than just code readability.

@vincentvanhees thank you for the review and the testing!
There were a few (very small) fixes that I expect to possibly have a minor effect on the computed metrics.  I don't want to have to guess though, so what I will do is I'll prepare a branch where I'll undo only those fixes that I expect to have an effect on metrics. There should only be a small handful of them. I'll do this on Monday. This way we can test and make sure that any changes in computed metrics between this PR and the master branch are fully explained by this small subset of changes, and we can double-check that these changes are acceptable.

@vincentvanhees I created a branch that is based on this PR's branch, and in there I undid all those changes that aren't cosmetic but cause differences in computed metrics. This way you can take a look at them in isolation and make sure these are reasonable changes.
I did some testing with this new branch, and so far I'm getting the same metalong values as I do in the master branch.
I do still get a difference between metashort values. But these seem to be a rounding error:

I can't quite put my finger on what exactly is causing the rounding issue though. I'll see if I can figure it out tomorrow.
And I'll do some more testing tomorrow with different file types.

Hi! Thanks @l-k- for all the work on this.
In case it helps, I have tested this branch on some movisens files that I got in my computer. I found it 30% faster than the master branch on these files with identical metashort and metalong output in both branches.
I have also checked that the new branch identifies when the acc.bin file is missing in a participant movisens folder and returns a warning in this regard, everything works as expected.

Thanks @l-k-  for preparing the branch. I think I figured out the cause of the issue, but maybe good to share the whole process of how I got there:
Observation 1
I am getting different results when running summary() on the difference between M$metashort$anglez between the branches:
Comparing branch part1-simplification-v2 with test-only-dont-merge:
Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
-0.0521  0.0615  0.1048  0.1073  0.1519  0.2853

Comparing branch master with test-only-dont-merge:
  Min.    1st Qu.     Median       Mean    3rd Qu.       Max.
-13.755700  -0.120200  -0.001700  -0.001436   0.106200  14.932200

Comparing branch master with part1-simplification-v2:
   Min.   1st Qu.    Median      Mean   3rd Qu.      Max.
-13.78220  -0.24330  -0.10020  -0.10871   0.02173  14.81740

The above is from a single file. When I repeat this for four files one of them shows very tiny differences similar to you. This gives the impression that the differences I observe are triggered by a characteristic in the recording: It is not clippingscore or nonwearscore, because all four recordings are identical on this. However, when looking at the timing of the outlier I see a patterns that correlates with the chunks being read (approx. 24 hours):

Preliminary conclusions:

The changes you suspect to drive the difference are not driving the difference I observe here.
The differences I observe may relate to how time is accounted for or time segments are selected.

Observation 2
Then I looked at whether the pagestart and pageend for each chunk are different between branches:
In part1-simplification-v2 I get following page indices for GENEActiv:
1 -> 24874
24875 -> 49748
49749 -> 74622
...
while for master branch I see:
1 -> 24875
24876 -> 49750
49751 -> 74625
This is explained by the -1 you added in line 52 of g.readaccfile. However, when I undo it, I still get the differences for anglez as described above.
Observation 3
Somehow the chunks of data themselves are not driving the difference even though the patterns.
One level higher: Objects LD and use in g.getmeta are consistent between part1-simplification-v2 without the -1 and the master branch.
For object data I compared its values:

Right before it is appended with the object S at this point they are identical.
Right after get_starttime_weekday_truncdata. I noticed a time lag of less than a second, ccf gives a max lagged correlation of 42 for one axis, which for this study is half a second.

Observation 4
I then dived into get_starttime_weekday_meantemp_truncdata.R and this led to the observation that previously the decimal places in the seconds of the starttime got dropped while your revised code accounts for it.
Conclusion
It is the round in the decimal places in the seconds of the start time.
I did not found the difference in one of the four recordings above because that recording starts exactly on the second without decimal places. This may also explain why you did not found the issue in your test recording.
The fact that the difference did not disappear in your test branch is because you did not reverse this part of the code.
I have not tested ActiGraph gt3x again, but suspect that the exact same problem occurs there too, because both data types followed the same steps in get_starttime_weekday_meantemp_truncdata.R .
Great, so now we know that the change in values is expected!

I can confirm that the minor gt3x discrepancy is clarified by the test-only-dont-merge branch:

The gt3x file I am testing comes with time gaps which are handled differently. When comparing M$QClog I see that we are now (as expected) identify/impute a slightly longer time gaps, less than a second difference.
Slightly different window selection (+2 samples longer if i understand correctly)

I can't quite put my finger on what exactly is causing the rounding issue though. I'll see if I can figure it out tomorrow.
And I'll do some more testing tomorrow with different file types.

Just to confirm that these tiny differences between the branches is specific to GENEActiv being started at a full second. In that case I see differences in ENMO ranging from -3.000e-04 to 3.000e-04. I also cannot think of an explanation for now...
As far as I am concerned this PR can be merged but let's leave it open till the end of the week in case we come up with additional tests we want to run prior to merging.

@vincentvanhees @jhmigueles thank you both for testing!
I agree with keeping this PR open till the end of the week; I'll be testing more.

One more thing that is missing is:

[ ] Update to the changelog in NEWS.md now that we know that some changes impact consistency with previous versions.

@vincentvanhees I found the cause for the tiny diffefrences I was seeing in metalong$EN, metashort$anglez and metashort$ENMO for GENEActiv bin and for Movisens files.
In the master branch for these file types, mean temperature was calculated before the data was truncated by get_starttime_weekday_meantemp_truncdata(), so it was calculated on a slightly longer chunk of temperature. And this caused XYZ data to be scaled using a slightly different meantemp value.
I added one more commit to the test-only-dont-merge branch, and I now get identical metalong and metashort results using that branch and master.
I'll keep testing on other data I can dig up.

I will add a NEWS.md entry on Thursday.

Another small issue that got accidentally fixed by this PR -- for Axivity .cwa files,  when XYZ values were scaled in getmeta() using calibration coefficients, temperature parameters weren't used. Temperature was used to calculate calibration coefficients in g.calibrate(), but later in g.getmeta() these temperature-related coefficients weren't used for re-scaling.

@vincentvanhees I just bumped into an issue with an Axivity csv file. I'll get it resolved on Friday.

Additional fixes look good. Thanks again for all the work Lena, I will now merge this PR.


Update Install-ADDSDomainController.md

Modifying example in "-LogPath" as it could cause DCPromo to fail as directory is non-empty, DCPromo needs to empty it out and permissions may prevent this operation. Sysvol and Database paths both use their full path defaults as examples in this document, so proposing the same for the Log directory.

Docs Build status updates of commit a29c3db:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2022-ps/addsdeployment/Install-ADDSDomainController.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@get-itips I just submitted pull requests for the other OS versions of the article

@tiburd
PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


mgmt, apicenter, add live tests

Description
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

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

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] 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

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

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

/azp run prepare-pipelines

/azp run java - apicenter - mgmt - tests

/azp run prepare-pipelines

/azp run java - apicenter - mgmt - tests


Exponential Backoff for ByteFIFO

This PR is another in the vein of queue improvements. It suggests an
exponential backoff for bytefifo queues to reduce the load from queue
polling. This will mostly be useful for redis queues.
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

Related #15542

This could easily be moved in to #15693


292 - Fix: Implement the dataset loader for polling the latest dataset state for the dataset page UI

Issue Number
NOTE: The changes in 5 files were simply the results of fixing hook imports and argument orders, deletion of a file, and state imports.
Closing #292
Purpose/Implementation Notes
Implemented logic for polling the latest state of the processing dataset, and based on that state, render the appropriate view (processing/ready for download/error) on the dataset page.

Created the useResourceLoader hook (refactored useOneoffExperiment hook) for downloading files for both user-created datasets and one-off experiments datasets.

Please see the latest UI here.
For the user-defined datasets (My Dataset):
Step 1: Add samples to My Dataset
Step 2: Start the dataset download process by clicking the "Download" button in the dataset page
Step 3: Once the dataset processing is completed, the application renders the appropriate UI (success/error)

For the one-off experiment datasets:
Step 1: Click the "Download Now" button in a search card on the search results page to start the download process
Step 2: The application renders the processing budge while the one-off experiment dataset being processed

(search results page: while processing)

(experiment page: while processing)

Types of changes

Breaking change (fix or feature that would cause existing functionality to not work as expected)

Functional tests
Tested the implementation and made sure it works for both My Dataset download and the dataset download for one-off experiment.
Checklist

[x] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

@davidsmejia this PR is ready for another look.

@davidsmejia I've applied the feedback and this PR is ready for another look!

Let's remove the usage of "resource" in variable names and function names associated with this PR.

What term would you suggest in replace of resource ?
The dataset and datasetId are taken by DatasetManager, and we're also passing  an accession code to this hook, we want to use a name that represents both of those resources. Perhaps what do you think about selectedDataset?

Break up the "getters" since we will know when using this hook if we want to check if an accession has a processing dataset or if we are checking by dataset id explicitly.

Currently the resource id check is done by using the regular expression:
https://github.com/AlexsLemonade/refinebio-web/blob/09fdc6e996d56ccf7c41cd47f6150221ca7eb8b0/src/hooks/usePollDatasetStatus.js#L49-L51
Could you elaborate on this one?
Thank you David!

Let's remove the usage of "resource" in variable names and function names associated with this PR.

What term would you suggest in place of resource ?
The dataset and datasetId are taken by DatasetManager, and we're also passing an accession code to this hook, we want to use a name that represents both of those resources. Perhaps what do you think about selectedDataset?

Break up the "getters" since we will know when using this hook if we want to check if an accession has a processing dataset or if we are checking by dataset id explicitly.

Currently the resource id check is done by using the regular expression:
https://github.com/AlexsLemonade/refinebio-web/blob/09fdc6e996d56ccf7c41cd47f6150221ca7eb8b0/src/hooks/usePollDatasetStatus.js#L49-L51
Could you elaborate on this one?
Thank you David!

I think these questions are related so I am going to provide a single response to all of them first.
The useDatasetManager should be responsible for creating, querying, configuring, and describing a dataset. Essentially activity related to a specific dataset.
The usePollDatasetStatus is the collection of logic around polling a specific dataset. This currently, and correctly, uses useDatasetManager under the hood to perform the query.
The change I would like to see here is how we associate a specific accession code with a dataset.
Currently usePollDatasetStatus does the following in this PR:

Initializes the hook with either an accession code or a dataset id.
fetches the latest state on mount
provides helper methods for managing a list of currently polled datasets, either by ID of accession code.
stores an array of objects that contain datasetid and optionally accession code for association

I would like to see the ambiguous argument (dataset id / accession code) removed from the initialization of the hook and from the `add.
We would accomplish this by:

removing the initialization argument from the usePollDatasetStatus hook
remove the useEffect that checks if the ID can be found and refreshes if it is lines 15-19
move processingDatasets (old name processingResources) useDatasetManager
Add a local storage state in RefinebioContext / exposed in hook with value of datasetAccessions that will default to an empty dict. The keys will be accession codes and the values will be dataset ids.
add new method pollDatasetId
add new method pollDatasetAccession

these functions should just set the datasetid and that is what the useEffect/polling logic should check

The following updates were completed:

remove the useEffect that checks if the ID can be found and refreshes if it is lines 15-19
move processingDatasets (old name processingResources) useDatasetManager

And now that we've moved processingDatasets to useDatasetManager, I've also:

moved addDatasetToProcessingDatasets(previously addProcessingDataset from usePollDatasetStatus) to useDatasetManager
call  addDatasetToProcessingDatasets from startProcessingDataset to handle the addition of a new processing dataset (no longer calling it from two separate locations)

(see commit at be12eb546c9d68058a5c506f981852100c7e0057)
For the following items, I have a few questions:
Q 1: How do we determine which dataset ID to poll inside the hook if we remove the hook's parameter?

removing the initialization argument from the usePollDatasetStatus hook

Reasons for passing an ID as an argument to usePollDatasetStatus hook

To quickly check the given ID and initiate a polling request on component mount
To keep the polling logic inside the hook as much as possible (including ID check, start/refresh/end polling)

usePollDatasetStatus(processingId) // either a dataset ID or an one-off experiment accession code

When the following UIs are viewed by the user (on component mount), this hook checks the given ID, starts polling requests, and display the processing UI while it's being processed:

Search card and its download modal in the search results page (passing an accession code to the hook):

Experiment page for a specific accession code (passing an accession code to the hook):

Dataset page that renders a specific dataset ID (passing a dataset ID in the URL to the hook):
(e.g., /dataset/695fd15-2f7c-4b5c-8b39-212f9ee7b21e)

By removing the argument for the hook (ID to check) and adding the next two methods:

add new method pollDatasetId
add new method pollDatasetAccession

these functions should just set the datasetid and that is what the useEffect/polling logic should check

Q 2:  Where would you like the dataset ID to be set and start the polling request?
To put another way, if this hook no longer accepts an ID as an argument, then at first, the ID check must to be done outside of the hook (a component that uses this hook by calling these new methods, useEffect etc). And possibly adding a new state to the hook to store that obtained dataset ID so that we can use it inside the hook to start polling.
I suggest preserving the hook's argument to maintain the quick ID check and the polling logic within the hook as much as possible.
I'd like to hear your input on this. Please let me know, thank you David!

Ok, I think your questions stem from the same point so let me try clarifying this first and if still unclear I will try to tackle the questions separately.
Add a local storage state in RefinebioContext / exposed in hook with value of datasetAccessions that will default to an empty object. The keys will be accession codes and the values will be dataset ids.
So you don't have to care that it is a valid accession code here. When you add the dataset with optional accession code, you populate a separate object that functions like a look up table. No need for the regex.
So update what you have in useDatasetManager starting at line 34
Here you only need to assign a flat value of processing datasets and an object to look up by accession code.
So later in the application you will always know one of two things when you need to check if a dataset is processing:

The dataset id, this is obvious
The accession code which can be looked up to get the dataset id

useDatasetManager.js
 const addToProcessingDatasets = (id, accessionCode) => {
    if (accessionCode) {
      setDatasetAccessions({...datasetAccessions, [accessionCode]: id})
    }
    setProcessingDatasets((prev) => {
      if (prev.includes(id)) return prev
      return [...prev, id]
    })
  }

Then you want to poll for a specific dataset. This should be done by calling one of the two functions below:
usePollDatasetStatus.js

// this is the state variable that will trigger a rerender when updated
const [polledDatasetId, setPolledDatasetId] = useState(null)
const [datasetState, setDatasetState] = useState(null)
const timerRef = useRef(null)

// check if the hook should poll a dataset
  useEffect(() => {
    if (polledDatasetId) {
      timerRef.current = setInterval(() => {
        refreshProcessingDataset()
      }, 1000 * 60)
    }
    return () => {
      clearInterval(timerRef.current)
    }
  }, [polledDatasetId])

// by dataset ID
pollDatasetId(datasetID) {
  // the dataset doesnt need to be polled anymore because it has been removed
  if (processingDatasets.includes(datasetID)) {
    setPolledDataset(datasetID)
  }
}

// tell the hook to watch a specific accession
/// call the above method if there is a match
pollDatasetAccession(accession) {
  if (datasetAccessions.hasOwnProperty(accession)) {
    pollDatasetId(datasetAccessions[accession])
  }
}

Let me know if you can see how this would work. Each hook would only be responsible for tracking the state of a single dataset. We should have a separate cleanup function ie removeProcessingDataset that only takes dataset id and removes it from the list of processing datasets and the datasetAccessions object.

The following updates were completed:

removing the initialization argument from the usePollDatasetStatus hook

Now the hook no longer takes an ID argument and instead uses a new state, polledDatasetId, to set the processing dataset ID.
(see commit at 0d8ac185cfeb6566a552ba97471d3b7dd23c8ac9)

Add a local storage state in RefinebioContext / exposed in hook with value of datasetAccessions that will default to an > empty dict. The keys will be accession codes and the values will be dataset ids.

A lookup table datasetAccessions local storage state has been added to RefinebioContext to store the accession code of processing one-off experiment and imported into useDatasetManager used by usePollDatasetState.
(see commit at b204a5da3c5de25e55ddaa8f0cccc44ca1aa95c3)

add new method pollDatasetId
add new method pollDatasetAccession

these functions should just set the datasetid and that is what the useEffect/polling logic should check

The new methods have been added and are called from useEffect of components that uses the usePollDatasetState hook to set polledDatasetId for polling.
(see previous commit and at b204a5da3c5de25e55ddaa8f0cccc44ca1aa95c3)

a separate cleanup function ie removeProcessingDataset that only takes dataset id and removes it from the list of processing datasets and the datasetAccessions object.

The clean up method has been added which removes polledDatasetId from:

the processingDatasets array
the datasetAccessions object

Please note that I've also included a line that resets the polledDatasetId to null to stop the running polling timer (initially added it to the cleanup block of refreshProcessingDataset, but moved it to this method).
This PR is ready for your review, thank you David!

I've updated the PR based on your feedback and ready for your review, thank you David!


Fix multi-dimension sample weights passed to mean metrics

I'm still not sure what broke this, but it appeared to change with the 0.1.1 release.
Please help me check if the outputs here are what we would expect.

OK, got this working, but found yet another error. torch is handle axis arguments to reductions differently then jax/tf/numpy. Can follow up with a more through change for all the reduction ops.


dotnet core upgrade

I've upgraded the two projects to dotnet core (using netstandard2.0), and updated the csproj files to the new format. I moved the demo project into its own directory, simply because of the way the new csproj file format works... otherwise I would have had to make the project exclude everything and only bring in demo.cs, making it a lot more complex.
In order to get around the mono dependency, I've added a nuget reference to the beta netstandard posix nuget package, which looks to be working fine.
I've added dlerror in order to help diagnose issues.
Also, when lazy loading ncurses on my platform, I always got intptr.zero. But, when I changed it to load now (1 instead of 0 for the mode), it ran perfectly for me.
Lastly, i changed the dllimport bindings from libc to libdl. Again, I had issues binding to libc, and I'm not entirely sure why. (libdl just wraps libc for the dl calls, btw). If you have a problem with this (it doesn't run), then I can go ahead and create two bindings, one for libc, and one for libdl, and try one before falling back to the other. I don't know if this is necessary, so I held back on doing this to keep my changes minimal for this pull request.

I applied the changes to bindings.cs to the upstream project (mono-curses), which is regularly synced here.
The only downside of going to .NET Standard is that it results in a very large executable if I want to keep using Mono and it is slower to startup than what I am using now.   Perhaps we should build the .NET standard library separately for now.

I had another problem: the poll() call does not seem to be returning the data about activity on a file descriptor, so the application goes into a tight loop.   Need to debug this.

Sorry, I was sick all last week.
I think this stems from the fact that I used the beta release of Mono.Posix. I think the time to revisit this is when that package leaves beta.


Implement 'Add Function' Command

Implement command to add local function.

This issue is being closed because its corresponding BugWarrior task has been completed.


Apply fixes from StyleCI

This pull request applies code style fixes from an analysis carried out by StyleCI.

For more information, click here.

Pull Request Test Coverage Report for Build 24

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 67.815%

Totals

Change from base Build 21:
0.0%

Covered Lines:
571

Relevant Lines:
842

💛  - Coveralls


Dashboard Feature

Create a clean Dashboard for users to have a great experience when opening the app.

Banner
Featured section (new XML attribute required)
Most Frequently Used section

The layout will be unique compared to other pages. Example:

Initial templates added to branch

Branch has been setup to render the UI elements, but the page navigation needs work.


Feat/cli

This pr adds a CLI utility tool based on the new DB/API implementation in this PR #10
Please read the documentation

CLI to add/download components  👌👌 props @denyncrawford !
will get implemented via npx + openv0.com for public sharing components
feature i also hope to finish before first major update (or at least its core) is boilerplate for entire app (components + views pipeline) via cli, something like :
npx openv0 app --desc "an app for live basketball scores" --framework react --components nextui --icons lucide
for now, iterating on dev branch :

finishing new {frameworks x components} integrations
new multipass module, much higher modularity for future updates
server-side postprocessing and validation via babel, to eliminate import conflicts / hallucinations

core should be done by weekend - will make it easier to add new integrations in the future
then we can iterate on the same branch, stick to a single structure and push updates very fast

Hi @ahmedrowaihi I'm not maintaining these changes anymore, the project has moved to another direction and i don't think this pr would help anymore. Closing this, if you specifically need something from this pr let me know.


Hook to Cerberus to understand the recovery time

When running chaos scenarios, it's important to understand how long it takes for the cluster as a whole to be healthy post failure injection in order to find the areas to improve. Today, Kraken pings cerberus to pass/fail but doesn't track the duration for recovery - we are tracking the cerberus metrics manually to understand it.
It would be nice to have Kraken to query cerberus post chaos scenario with a timeout and dump a json with the timing.

@paigerube14 @yogananth-subramanian thoughts?


Customize explosion count

I want to have multiple explosions at once.
For example, in Fireworks example, has 2 explosions, and other examples have 1 explosion at once.
Can we customize the number of explosions for each example?

[x] have multiple explosions at a time
[x] each explosion position would be randomized

import { useState } from "react";
import { TConductorInstance } from "react-canvas-confetti/dist/types";
import Explosion from "react-canvas-confetti/dist/presets/explosion";

interface BombExplosionProps {
  count: number
}
function BombExplosion({ count }: BombExplosionProps) {
  const newArray: number[] = Array.from({ length: count }, (_, index) => index + 1);

  const [conductor, setConductor] = useState<TConductorInstance[]>([]);

  const onOnce = () => {
    conductor.forEach(c => c.shoot())
  };

  const onInit = (conductor: TConductorInstance, fireworkId: number) => {
    setConductor(prev => {
      const prevArr = [...prev]
      prevArr.push(conductor)
      return prevArr
    });
  };

  return (
    <>
      <div className={"controls"}>
        <button onClick={onOnce}>Once</button>

      </div>
      {newArray.map(arr => {
        return (<Explosion onInit={({ conductor }) => onInit(conductor, arr)} key={arr} />)
      })
      }
    </>
  );
}

export default BombExplosion;

This is the code example that I used. But it shows the explosions in one place.

If I use  component, it shows multiple explosions in different positions, but explosion count is multiplied by 2
For example, if I load two  component, it shows 4 explosions.

cc @ulitcos 👆

Hi there!

have multiple explosions at a time

I think you can solve your problem by using a combination of parameters for the run method. The run method takes a duration in ms (1000 ms is 1 second) and a speed (shots per second). So, you need to find the right values. For example, you can set a speed of 1000 and a duration of 2 and get two shots in one run call. You have to remember that the preset explosion makes two shots in one method call, so maybe you need to divide by 2!

each explosion position would be randomized

This problem can be solved by passing the decorateOptions parameter with the updated origin parameter.
Anyway, I've created an example for you. Just play with the speed, duration and decorateOptions.

Thanks!! It works like a charm 😁

@ulitcos
I have two questions for your second example.

instead of using star, I am gonna use circle. but the circles are rotating. stars were not. can we make those circles to not rotate?

is it possible to make the real bomb explosion using react-canvas-confetti ?

instead of using star, I am gonna use circle. but the circles are rotating. stars were not. can we make those circles to not rotate?

You can add flat: true in params. Example

is it possible to make the real bomb explosion using react-canvas-confetti ?

Absolutely not! This is against the law!

Thanks!!

Another option could be custom Conductor, which would increment and test iterations on shoot and reset on stop


Let Paket manage FSharp.Core

Remove FSharp.Core direct references from fsproj files
Add FSharp.Core nuget reference and force redirects
Add App.config so paket can add redirects

Note that Paket has automatically rearranged a bit in the project files and removed the patch version numbers from the lock file.

Refs #249

Damn.. Trying to use Git from Windows when I only installed the Github for Windows is a realy PITA! No idea what Github means by sync, but I got some really odd behavior.

thanks


Project.file supports java.nio.file.Path instances.

Provides support for Path instances in API calls taking an Object (most notably, Project.file) for Path instances using the default file system.
Any of the checked boxes below indicate that I took action:

[X] Reviewed the Contribution Guidelines.
[X] Signed the Gradle CLA.
[X] Ensured that basic checks pass: ./gradlew quickCheck

I have updated the user guide and also merged master for convenience.

Thanks @kelemen for your contribution. I cherry picked your changes and did minor typos changes. I merged your changes into master so I will close the PR.

@kelemen Would you be interested in an additional contribution and looking into improving Gradle's handling of NIO Path in general? Have a look at issue https://github.com/gradle/gradle/issues/1205. Zero pressure on you to address this, but, if you want, we can discuss on the issue.


Typo in nmax-width / nwidth

I'm not sure if it is typo or intention, but when I compare generated style to referention implementation it contains nmax-width, nwidth instead of max-width, width :
possible problem is at:
https://github.com/SebastianStehle/mjml-net/blob/main/Mjml.Net/Helpers/Style.cs#L17

There is a new line before that. \r\n

Ah, I see it now... I'm sorry for that!


Duplication marker on position update

Flutter animaker package duplicates  my marker on position updated. Below if my implementation
return Animarker(
      curve: Curves.bounceOut,
      // rippleRadius: 0.2,
      useRotation: true,
      // duration: Duration(milliseconds: 2300),
      mapId: mapController.future
          .then<int>((value) => value.mapId), //Grab Google Map Id
      markers: markers ?? const <Marker>{},
      child: GoogleMap(
        zoomControlsEnabled: false,
        myLocationEnabled: myLocationEnabled ?? true,
        myLocationButtonEnabled: false,
        compassEnabled: false,
        initialCameraPosition: initialCameraPosition,
        markers: markers ?? const <Marker>{},
        polylines: polylines ?? const <Polyline>{},
        onMapCreated: (controller) {
          // WidgetsBinding.instance.addPostFrameCallback((_) {
          // your code that moves the camera
          if (!mapController.isCompleted) mapController.complete(controller);
          // });
        },
        onCameraMove: onCameraMoveCallback,
      ),
    );

below is my result

Can you guide me how you draw polyline?

Same issue any solution?

Can you guide me how you draw polyline?

Use polyline attribute in GoogleMap widget

Can you guide me how you draw polyline?

Use polyline attribute in GoogleMap widget

Can you provide any example? I'M drawing the polyline from start to end point but i want to draw it along the marker moving.

Can you provide any example? I'M drawing the polyline from start to end point but i want to draw it along the marker moving.

Same as my situation, I will work on this tonight, i will reach out with you when i achieve it..
Best regards...

Can you provide any example? I'M drawing the polyline from start to end point but i want to draw it along the marker moving.

Same as my situation, I will work on this tonight, i will reach out with you when i achieve it.. Best regards...

Hey, did you achieve it?

Hi guys, I just submit a new beta version  3.4.0-beta.1 and give me your giveback. I couldn't replicate this issue, but could relate with the bugfix that prevent to remove markers. Also, please use the same markerId for new position updates, this is the way the Animarker keep the tracking of delta position (from-to).

Any updates, i am still facing this

@gauris26  it would be great if you can check this


[identity] Decouple identity plugin code from identity source code

Identity CI builds started failing because of build errors in identity-cache-persistence.
This is due to an implicit dependency on @azure/core-client via pulling in of source files from identity directly:

example1
example2

Because the plugin packages have a runtime dependency on a published version of identity, they pull in source files directly from the source tree. That means that if the version of identity on disk has not been built, core-client will not be built (like when identity in the repo is a major version bump or beta). As a result, trying to build the plugin package causes:
../identity/src/client/identityClient.ts(6,31): error TS2307: Cannot find module '@azure/core-client' or its corresponding type declarations.
../identity/src/client/identityClient.ts(75,38): error TS2339: Property 'userAgentOptions' does not exist on type 'TokenCredentialOptions'.
../identity/src/client/identityClient.ts(76,20): error TS2339: Property 'userAgentOptions' does not exist on type 'TokenCredentialOptions'.
../identity/src/client/identityClient.ts(105,33): error TS2339: Property 'sendRequest' does not exist on type 'IdentityClient'.
../identity/src/client/identityClient.ts(262,33): error TS2339: Property 'sendRequest' does not exist on type 'IdentityClient'.
../identity/src/client/identityClient.ts(286,33): error TS2339: Property 'sendRequest' does not exist on type 'IdentityClient'.
../identity/src/credentials/managedIdentityCredential/arcMsi.ts(85,41): error TS2339: Property 'sendRequest' does not exist on type 'IdentityClient'.
../identity/src/credentials/managedIdentityCredential/imdsMsi.ts(138,43): error TS2339: Property 'sendRequest' does not exist on type 'IdentityClient'.
../identity/src/credentials/managedIdentityCredential/index.ts(123,7): error TS2353: Object literal may only specify known properties, and 'retryOptions' does not exist in type 'TokenCredentialOptions'.
../identity/src/tokenCredentialOptions.ts(4,37): error TS2307: Cannot find module '@azure/core-client' or its corresponding type declarations.

Rush is not aware of the build dependency so it's not guaranteed that core-client will be built.
To repro:

Remove @azure/core-client from @azure/identity-cache-persistence's devDependency list
Clean out build cache: I use the dangerous git clean -dfx command to clear the entire state
Run rush update && rush build -t @azure/identity-cache-persistence

To resolve:
We should decouple the plugin packages from Identity's source files.
The source dependency is types only. It's a small surface area that IMO can be easily copied over. It's a small duplication cost
The test dependencies are a little more involved, but ideally we should not be pulling any files from outside of the plugin directory.

I tried the repro steps. Don't see the build errors on identity-cache-persistence anymore. The migration to ESM has most likely resolved the issue. @maorleger


Add Indent & Line Number Width to Settings

The indent only works for the decompiled code windows, not for the source.
It would be nice to be able to do that but RSyntaxTextArea doesn't really support reformating based on indent level.

LGTM but there are conflicts.


Update version: Modeliosoft.Modelio version 5.3.1

Pull request has been created with WinGet Automation :rocket:
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/115177&drop=dogfoodAlpha

@wingetbot run


Autoinstaller issues

Hey guys, new to checking this out. i downloaded the latest exe release (Myrtille_2.5.5_x86_x64_Setup) and get these errors on install.
Windows 10 Pro. 64bit  Build 10586.1176
Error 1001: Some or all identity resources could not be translated.
Error 1001: Could not find file 'C:\Program files (x86)\Mytrille\bin\Mytrille.Services.InstallState'.
Error 1001: Could not find file 'C:\Program files (x86)\Mytrille\bin\Mytrille.Admin.Services.InstallState'.

probable duplicate https://github.com/cedrozor/myrtille/issues/164

Sorry. Reinstall of IIS and net 4,6 worked.


After adding/removing backends, traefik keeps memory too high (dynamoDB backend) how to avoid ?

using traefik 1.7

the config is as follow :

################################################################
# ECS configuration backend
################################################################
################################################################
# Global configuration
################################################################

# Enable debug mode
#
# Optional
# Default: false
#
# debug = true

# Log level
#
# Optional
# Default: "ERROR"
#
logLevel = "{{traefik_log_level}}"

# Entrypoints to be used by frontends that do not specify any entrypoint.
# Each frontend can specify its own entrypoints.
#
# Optional
# Default: ["http"]
#
# defaultEntryPoints = ["http", "https"]

# Allow the use of 0 as server weight.
# - false: a weight 0 means internally a weight of 1.
# - true: a weight 0 means internally a weight of 0 (a server with a weight of 0 is removed from the available servers).
#
# Optional
# Default: false
#
AllowMinWeightZero = true

################################################################
# Entrypoints configuration
################################################################

# Entrypoints definition
#
# Optional
# Default:
[entryPoints]
    [entryPoints.http]
    address = ":80"

################################################################
# Traefik logs configuration
################################################################

# Traefik logs
# Enabled by default and log to stdout
#
# Optional
#
# [traefikLog]

# Sets the filepath for the traefik log. If not specified, stdout will be used.
# Intermediate directories are created if necessary.
#
# Optional
# Default: os.Stdout
#
# filePath = "log/traefik.log"

# Format is either "json" or "common".
#
# Optional
# Default: "common"
#
# format = "common"

################################################################
# Access logs configuration
################################################################

# Enable access logs
# By default it will write to stdout and produce logs in the textual
# Common Log Format (CLF), extended with additional fields.
#
# Optional
#

# [accessLog]
#
# format = "common"
#
# [accessLog.filters]
#   statusCodes = ["200-202", "300-302", "400-401", "503-504"]
#
#   [accessLog.fields]
#   defaultMode = "keep"
#
#   [accessLog.fields.names]
#     "ClientUsername" = "drop"
#
#   [accessLog.fields.headers]
#     defaultMode = "keep"
#
#     [accessLog.fields.headers.names]
#       "User-Agent" = "keep"
#       "Authorization" = "drop"
#       "Content-Type" = "keep"
#       "X-Forwarded-For" = "keep"

maxIdleConnsPerHost = 3072
################################################################
# API and dashboard configuration
################################################################

# Enable API and dashboard

[api]
  dashboard = true
  debug = true
  [api.statistics]
    recentErrors = 100

################################################################
# Ping configuration
################################################################

[retry]
attempts = 1

[forwardingTimeouts]
dialTimeout = "10s"
responseHeaderTimeout = "60s"

# Enable ping
[ping]

  # Name of the related entry point
  #
  # Optional
  # Default: "traefik"
  #
  # entryPoint = "traefik"

################################################################
# Docker configuration backend
################################################################

# Enable Docker configuration backend

# Docker server endpoint. Can be a tcp or a unix socket endpoint.
#
# Required
# Default: "unix:///var/run/docker.sock"
#
# endpoint = "tcp://<IP_ADDRESS>:2375"

# Default domain used.
# Can be overridden by setting the "traefik.domain" label on a container.
#
# Optional
# Default: ""
#
# domain = "docker.localhost"

# Expose containers by default in traefik
#
# Optional
# Default: true
#
# exposedbydefault = true
[file]
  filename = "/etc/traefik/monolith/monolith.toml"
  watch = false

[metrics]
  [metrics.prometheus]
    entryPoint = "traefik"
    buckets = [0.1,0.3,1.2,5.0]
[dynamodb]
#
## Region to use when connecting to AWS.
##
## Required
##
region = "{{aws_region}}"
#
## DyanmoDB Table Name.
##
## Optional
## Default: "traefik"
##
tableName = "{{traefik_dynamo_table}}"
#
## Enable watch DynamoDB changes.
##
## Optional
## Default: true
##
watch = true
#
## Polling interval (in seconds).
##
## Optional
## Default: 15
##
refreshSeconds = 5
##
##
##
[web]
address = ":8080"

as we can see in this image below, everytime traefik HAS to refresheven one backend, or config obn the backends (eg. weight for connection draining or receive new traffic) the memory goes up for about 5/10 minutes.

It keeps that way after refreshing everything, but we dont understand why, despite the fact that we consider it's not necessary to keep memory high for as lonmg after refreshing new changes.
So the question is, is this an expected behaviour ?
If so, can this behaviour of maybe keeping buffers or so be manipulated not to keep the memory that high for that long time ?
the problem that this causes on us, is that if lots of backend are being re-scheduled and traefik keeps refreshing and refreshing, the memory goes up until 70% where traefik cannot refresh and respond to requests at the same time that fast.
EXTRA INFO:
These traefik are handling 250 frontends and aprox 1200 backends.
waiting on you guys!

@jbdoumenjou thanks for the tagging, please let me know if i can provide more info or someone can help.


Add GitHub runner telemetry to aid in diagnosing concurrent E2E test failures

possible solution was recommended by @JeffreyDallas : https://github.com/catchpoint/workflow-telemetry-action
I think this would only be needed on the e2e test workflow

Experimented with workflow-telemetry-action
but getting this error
/runner/_work/_actions/catchpoint/workflow-telemetry-action/v1.8.4/dist/webpack:/workflow-telemetry-action/node_modules/@octokit/auth-action/dist-node/index.js:19
    throw new Error("[@octokit/auth-action] The token variable is specified more than once. Use either `with.token`, `with.GITHUB_TOKEN`, or `env.GITHUB_TOKEN`. See https://github.com/octokit/auth-action.js#createactionauth");
^
Error: [@octokit/auth-action] The token variable is specified more than once. Use either `with.token`, `with.GITHUB_TOKEN`, or `env.GITHUB_TOKEN`. See https://github.com/octokit/auth-action.js#createactionauth

Have tried different release versions, all get the same error
Workflow logs
https://github.com/hashgraph/solo/actions/runs/9164986979/job/25197553053

@JeffreyDallas , looks like it is complaining about us having more than one token that it can use, we probably need to pick one and pass it in.  Here is the list of the ones we have (not including the default GITHUB_TOKEN):

so for your current code:
      - name: Workflow Telemetry ${{ inputs.custom-job-label || 'E2E Test' }}
        if: ${{ runner.os == 'linux' && inputs.npm-test-script == 'test-e2e-node-local-build' && !cancelled() && !failure() }}
        uses<EMAIL_ADDRESS>        with:
          metric_frequency: 15

maybe try this if you haven't already:
      - name: Workflow Telemetry ${{ inputs.custom-job-label || 'E2E Test' }}
        if: ${{ runner.os == 'linux' && inputs.npm-test-script == 'test-e2e-node-local-build' && !cancelled() && !failure() }}
        uses<EMAIL_ADDRESS>        with:
          metric_frequency: 15
          github_token: ${{ env.GITHUB_TOKEN }}

This workflow failed with Unable to get current workflow job info. Please sure that your workflow have "actions:read" permission!
each actins:read already defined
https://github.com/hashgraph/solo/actions/runs/9179531736/job/25241904073
As noticed by Jeromy, looks like there are two show stoppers:
No support for reusable workflows: https://github.com/catchpoint/workflow-telemetry-action/issues/67
Self-hosted GH Runners require elevated security: https://github.com/catchpoint/workflow-telemetry-action/issues/44


Announcement startTime and endTime should be in milliseconds instead of seconds

Affected module
Does it impact the UI, backend or Ingestion Framework?
backend, UI
Describe the bug
A clear and concise description of what the bug is.
AnnouncementDetails StartTime and EndTime are currently stored in seconds instead milliseconds
To Reproduce
Screenshots or steps to reproduce
Expected behavior
A clear and concise description of what you expected to happen.
It would be better to have all the times in milliseconds to have same time and formate in the application
Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g. 0.8]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
Add any other context about the problem here.

@mohityadav766 @harshach Should we move this to 1.4?
Since @mohityadav766 already has a lot of work for 1.3.1


Metadata API: preserve Role.keyids order

Fixes #1478
We made Role.keyids a set because the keyids are supposed
to be unique and this still makes sense.
However, the data should also preserve order
(when deserialized and serialized) and currently, it does not.
This is fairly serious since writing signed data potentially modifies
the data (making the signature invalid).
The simplest solution (as proposed by Jussi) is to make keyids
a property and there to enforce keyids uniqueness and preserve the
order by using a list instead of a set.
Description of the changes being introduced by the pull request:
Please verify and check that the pull request fulfills the following
requirements:

[x] The code follows the Code Style Guidelines
[x] Tests have been added for the bug fix or new feature
[x] Docs have been added for the bug fix or new feature

@MVrachev can you please comment on Teodoras suggestion (comment was made in the issue)?
I think the idea was that we could keep using the set if we make sure that on serialization we always sort the the output. This has some corner cases as well (like if your using the API to process keyids somehow, the order isn't guaranteed) but if that's the only issue then maybe that's a better way?

Yes, I started answering, but it seems I haven't sent my response.
It sounds reasonable and it won't add complexity with the additional property and checks that have to be made in my current suggestions.
I will update the pr with those suggestions.

Yes, it looks a lot better.
Great suggestion @sechkova!


nvcc -std=c++11 -c -o ../cc/nms/nms_kernel.cu.o ../cc/nms/nms_kernel.cu.cc -I/usr/local/cuda/include -x cu -Xcompiler -fPIC -arch=sm_61 --expt-relaxed-constexpr  /bin/sh: 1: nvcc: not found

After exceuting python create_data.py create_kitti_info_file --data_path=KITTI_DATASET_ROOT, throwing error below
nvcc -std=c++11 -c -o ../cc/nms/nms_kernel.cu.o ../cc/nms/nms_kernel.cu.cc -I/usr/local/cuda/include -x cu -Xcompiler -fPIC -arch=sm_61 --expt-relaxed-constexpr
/bin/sh: 1: nvcc: not found
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/deepaknayak/Downloads/second.pytorch-master/second/core/non_max_suppression/nms_cpu.py", line 10, in
from second.core.non_max_suppression.nms import (
ImportError: Python version mismatch: module was compiled for version 3.6, while the interpreter is running version 3.7.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/anaconda3/lib/python3.7/concurrent/futures/process.py", line 232, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/home/anaconda3/lib/python3.7/concurrent/futures/process.py", line 191, in _process_chunk
return [fn(*args) for args in chunk]
File "/home/anaconda3/lib/python3.7/concurrent/futures/process.py", line 191, in
return [fn(*args) for args in chunk]
File "/home/Downloads/second.pytorch-master/second/utils/buildtools/command.py", line 256, in compile_func
raise RuntimeError("compile failed with retcode", ret.returncode)
RuntimeError: ('compile failed with retcode', 127)
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/Downloads/second.pytorch-master/second/create_data.py", line 9, in
from second.core import box_np_ops
File "/home/Downloads/second.pytorch-master/second/core/box_np_ops.py", line 7, in
from second.core.non_max_suppression.nms_gpu import rotate_iou_gpu_eval
File "/home/Downloads/second.pytorch-master/second/core/non_max_suppression/init.py", line 1, in
from second.core.non_max_suppression.nms_cpu import nms_jit, soft_nms_jit
File "/home/Downloads/second.pytorch-master/second/core/non_max_suppression/nms_cpu.py", line 18, in
cuda=True)
File "/home/Downloads/second.pytorch-master/second/utils/buildtools/pybind11_build.py", line 113, in load_pb11
cmds, cwd, num_workers=num_workers, compiler=compiler)
File "/home/Downloads/second.pytorch-master/second/utils/buildtools/command.py", line 278, in compile_libraries
if any([r.returncode != 0 for r in rets]):
File "/home/Downloads/second.pytorch-master/second/utils/buildtools/command.py", line 278, in
if any([r.returncode != 0 for r in rets]):
File "/home/anaconda3/lib/python3.7/concurrent/futures/process.py", line 476, in _chain_from_iterable_of_lists
for element in iterable:
File "/home/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 586, in result_iterator
yield fs.pop().result()
File "/home/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 425, in result
return self.__get_result()
File "/home/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
RuntimeError: ('compile failed with retcode', 127)
Process finished with exit code 1

this means your environment variable PATH doesn't contain nvcc. try "nvcc --version" in your terminal.
this kind of compile method is deprecated. consider using newest code.

nvcc --version is working fine.
But unable to work with python create_data.py create_kitti_info_file --data_path=KITTI_DATASET_ROOT.
Where can i find the newest code..


How to tune pdf output?

Hi,
I could find that:

AsciidocFX uses Docbook for PDF generation

AsciidocFX is a front end for Asciidoctor

Is Asciidoctor-pdf included in AsciidoctorFX? If not, could you add it please?
If I try to use :pdf-themesdir: or :pdf-theme: in the asciidoc file header, it does not work.
I also tried the Settings/Docbook Settings by adding attributes there, but it does not help.

Hi, it is not supported in AsciidocFX, and not planned for soon time. It supports pdf generation over Docbook and fop-pdf.

Thanks, but I think that as AsciidocFX is already an asciidoctor front-end, it should be easy to add it with asciidoctor-pdf. But I have found a workaround:

Editing under AsciidocFX for realtime rendering

Building the pdf on the command line with asciidoctor-pdf

AsciidocFX 1.7.6+ default PDF Engine is ASCIIDOCTOR.


what tf is this

04:02:23 The bot is now running. It has a chance to perform an action every second. Be patient
04:02:23 it's sleepy time.. zzzzz :snore: zzzz
04:02:23 waking up in: 5:57:37 at 2022-06-02 18:00:00

any luck on figuring out what this was?

The bot runs on a sleep schedule.
Here is the explanation for it: https://github.com/MrPowerScripts/reddit-karma-farming-bot/blob/master/docs/1-getting-started.md#sleep-schedule
The source code for the sleep schedule is here: https://github.com/MrPowerScripts/reddit-karma-farming-bot/blob/master/src/bots/reddit/utils.py

thank you @Luois45


Support for fixed thead

When I scroll down, the table header scrolls out of view. I'm trying to find if there is a way to get ngscrollable to keep the thead fixed in place?

Hey, I think Sticky-Header is what you are looking for.


Unable to see grid import real-time

Thanks so much for your work on this, it has been a very interesting project for me to integrate this at home.
I have a SAJ H2-5K-S2 Interter Plus SAJ BC2-HV1 battery.
I don't seem to be able to get the correct figure to measure the energy being imported (kWh) from grid in realtime?  Or perhaps I am missing something.
I am using sensor.saj_total_grid_power - should that show me what I am currently importing from the grid?

use this sensor for grid import/export data in realtime:  sensor.saj_grid_load_power

Ok I think I have figured this out, grid import includes AC coupling from other independent inverter connected to the same panel (other inverter is not SAJ), hence I didn’t think I was seeing true grid import, because it includes import off other inverter.

grid import includes AC coupling from other independent inverter connected to the same panel
@tims04 In such a case, you should use the data from the network operator's smart meter. We use the tibber pulse and before tibber I had a different read head on the meter from the grid. I would prefer this data anyway. If you have an additional inverter, you also have to consider the solar yield separately.