docs about removing cloud-init in Ubuntu 16 image

Environment summary
Install Method (e.g. pip, interactive script, apt-get, Docker, MSI, edge build) / CLI version (az --version) / OS version / Shell Type (e.g. bash, cmd.exe, Bash on Windows)  2.0.25, Bash on Windows, Microsoft Windows [Version 10.0.17074.1000]

I could not find in docs how to get rid of cloud-init in Ubuntu 16 image in favor of waagent:

how to de-install cloud-init packages, which packages
how to make change waagent configuration

This would be a conceptual doc, not in-CLI help. Closing this issue.


Not in Table of contents

It looks like someone tried to report this before. See #7364
But that lead to no action
@rwike77  can you add this to the toc?

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

ID: 8861e147-ef75-8ba4-6cba-7d0bc289c328
Version Independent ID: e8eebd27-cbae-7f2d-9c26-09b5facc495d
Content: Configure a new multi-tenant application
Content Source: articles/active-directory/develop/setup-multi-tenant-app.md
Service: active-directory
Sub-service: develop
GitHub Login: @rwike77
Microsoft Alias: ryanwi

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

Hi @JimDaly, this is by design actually.  We have several articles that are linked to from the app registration experience in the portal.  They tend to be very short, have "more info" or troubleshooting info, and really only make sense in the context of whatever you were doing in the portal.
Did you get to this article from the Azure portal?  Or search?

I got there from search.
Having worked in the content space at MS for a long time, this design is bad. Why not add them to the  TOC? Make them discoverable by browsing.
It seems a broken experience when you discover this orphan topic with no other context around it.

@JimDaly  I think you're right, so I've added this to the TOC.  Updates should publish this afternoon.  #please-close


Add methods for sending cookies with test requests

This introduces methods for making it easier to send cookies in HTTP Tests. Previously, sending cookies restricted developers to using the low-level call method and required manually encrypting the cookie values (#12032).
Before
$cookies = [
    'name1' => encrypt('value1'),
    'name2' => encrypt('value2')
];
$response = $this->call('get', 'test', [], $cookies);

After
$response = $this->withCookies([
    'name1' => 'value1',
    'name2' => 'value2'
])->get('test');

Similar to the header methods, the following methods were added:

withCookie() for setting a single cookie with a value.
withCookies() for setting multiple cookies with name/value pairs.
disableCookieEncryption() for disabling the automatic encryption of cookie values.

Cookies are prepared before sending the HTTP request and encrypted using the encrypter.
This implementation implies a few design decisions:

To remain backwards compatible, the call method does not honor cookies set by these new methods. In a future version, all logic could be moved to the call method and merge its $cookie argument with cookies set by these methods.
Since the EncryptCookies middleware is only enabled for web requests by default, the json* HTTP methods do not honor cookies set by these new methods. This could be amended by passing the unencrypted cookie values in these methods.
Since cookies values are not serialized by default starting in Laravel 5.5, these methods do not serialize cookie values. This could be amended by adding a enableCookieSerialize method or leveraging the static property of EncryptCookies.

In the end, these methods improve the  out-of-the-box developer experience by making it easier to test requests using cookies. For more complex scenarios, developers can continue using call as they have been all along.

These tests are pretty weak and could likely be removed. They only verify internal properties. My attempts to test sending the actual cookies required mocking out parts of this internal trait which was not pretty.
If there is some kind of echo or loopback test request I can make let me know and I will gladly add more tests.

would I need to call disableCookieEncryption() if I am using my own encrytion? - if so, it would be nice to detect it?

@jasonmccreary I fixed the build on the 6.x branch. Can you rebase? The build will pass then.

@driesvints looks like this was merged. Let me know if you want me to make any additional changes. I'll open a patch PR.

@jasonmccreary no worries. Build on 6.x passes


Floating-Point Parsing Error

I encountered an issue when running the following code on Stamon:
import std;
println(1.0);

The expected output should be 1.000000, but instead, Stamon prints 0.000000.
However, when I modify the code to println(123 + 1.0);, the output is 123. I suspect that this issue is caused by an error in parsing floating-point literals, where the value is incorrectly assigned as 0.

看不懂，您是中国人，想必会说中文。


feat: implementation of the useGtm composable directly in the module to take advantage of auto import

I'm not using auto-imports and wouldn't know where to import useGtm unless I found this issue.
Would be nice to add the removed import statement from this PR somewhere else!


Add roles to the user admin index page

In #550 there is a request for adding filtering to the user admin index.
A short term improvement that is quick to add is showing the roles/groups as a column on the index page.

Looks fine but still want #550!


Auth issues

Hi @rectifyer,
I've had a user complaining about an authentication issue (thread): https://twitter.com/drthunder/status/1577683864998346755
When I tested, I thought the login took way longer than usual (see my answer to the tweet).
Today, I'm testing on a new device/simulator and the login is giving me a 502 Bad Gateway (Cloudflare Ray ID: 75665cbcbae5b9b9)

Seems like a stability issue. Can be only me... just would like to be sure.
Cheers,
Kevin

The database was under heavy load the last 3-4 days, which likely caused the 502 errors. It was making things slow across the website and API.
Redgarding the tweet, I'm not sure what the attachShadow.js file is, that isn't a file we have in the website. It could be from a 3rd party script (recaptcha for example) or from a browser plugin.


Beta

WIP

Codecov Report

Merging #12 into master will increase coverage by 0.95%.
The diff coverage is 83.82%.

@@            Coverage Diff             @@
##           master      #12      +/-   ##
==========================================
+ Coverage   78.77%   79.73%   +0.95%
==========================================
  Files         137      156      +19
  Lines        4015     4441     +426
  Branches      480      535      +55
==========================================
+ Hits         3163     3541     +378
- Misses        643      677      +34
- Partials      209      223      +14

Impacted Files
Coverage Δ

...s/pandora/src/application/WorkerContextAccessor.ts
100% <ø> (ø)
:arrow_up:

packages/pandora/src/universal/LoggerBroker.ts
100% <ø> (ø)
:arrow_up:

packages/pandora/src/service/ServiceLogger.ts
95% <100%> (ø)
:arrow_up:

packages/hub/src/domain.ts
100% <100%> (ø)

packages/hub/src/const.ts
100% <100%> (ø)

packages/messenger/src/server.ts
100% <100%> (ø)
:arrow_up:

...ages/hub/src/object-proxying/IntrospectionUtils.ts
100% <100%> (ø)

packages/pandora/src/const.ts
100% <100%> (ø)
:arrow_up:

...c/application/AppletRepresentationChainModifier.ts
100% <100%> (ø)
:arrow_up:

...ackages/metrics/src/endpoint/impl/ErrorEndPoint.ts
94.73% <100%> (ø)
:arrow_up:

... and 61 more

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 ff49511...3792d59. Read the comment docs.


Fix editing distance in one transaction report page navigates the user to transaction thread

Details

When editing a distance we dismiss the modal with the transaction report ID. This PR changes it so it just dismiss the modal.
Fixed Issues

$ https://github.com/Expensify/App/issues/39457
PROPOSAL: https://github.com/Expensify/App/issues/39457#issuecomment-2033768676
Tests

Same as QA Steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA Steps
QA Steps

Open a policy expense chat with no unsettled expense
Create a new distance request
Press the expense preview to open the one transaction report page
Click Distance to open the edit distance page
Press Save
Verify you are still at the one transaction report page

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/50919443/b1516105-e1e9-45db-b322-3b40f8c05b4a

Android: mWeb Chrome

https://github.com/Expensify/App/assets/50919443/8a43443d-aa32-491f-a131-71f73489b91f

iOS: Native

https://github.com/Expensify/App/assets/50919443/0610186f-8c43-4c9a-9c77-668403a3b442

iOS: mWeb Safari

https://github.com/Expensify/App/assets/50919443/8de20eb5-fe61-4636-b0ad-c0fc13b998e0

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/50919443/fa742c4d-0103-4bae-9493-de03056ea66a

MacOS: Desktop

https://github.com/Expensify/App/assets/50919443/b7709360-75d1-4888-b7da-827102a07705

🚀 Deployed to staging by https://github.com/marcochavezf in version: 1.4.62-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/marcochavezf in version: 1.4.62-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.4.62-17 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


usage examples / tutorial

A (few) fully fledged examples of what one can achieve with this would be very helpful.
As far as I understand this looks for a dir-locals.nix somewhere in the directory path (to either the default directory or the current buffer's file's directory) and runs nix-build on it to generate a elisp file which is then loaded. Ignoring the safety considerations in above description, of course.
What do you use it for? Do you have examples of useful dir-locals.nix?

https://github.com/shlevy/service-runner The dir-locals.nix here sets up my coq environment with the right coq version and dependencies.

I have
let pkgs = import <nixpkgs> {}; in
pkgs.nixBufferBuilders.withPackages [ pkgs.python3 ]

as my dir-locals.nix but when I do M-x nix-buffer and M-x run-python then I still get a buffer with
Python 2.7.10 (default, Jul 15 2017, 17:16:57)

How should I be using nix-buffer?

I can see I have
(require 'inherit-local "/nix/store/kbjaqrrdxjm595fzclmyjhr0yn5dhkf5-emacs-inherit-local-1.1.1/share/emacs/site-lisp/elpa/inherit-local-1.1.1/inherit-local.elc")

; Only set up nixpkgs buffer handling when we have some buffers active
(defvar nixpkgs--buffer-count 0)
(when (eq nixpkgs--buffer-count 0)
  (make-variable-buffer-local 'nixpkgs--is-nixpkgs-buffer)
  ; When generating a new temporary buffer (one whose name starts with a space), do inherit-local inheritance and make it a nixpkgs buffer
  (defun nixpkgs--around-generate (orig name)
    (if (and nixpkgs--is-nixpkgs-buffer (eq (aref name 0) ?\s))
        (let ((buf (funcall orig name)))
          (progn
            (inherit-local-inherit-child buf)
            (with-current-buffer buf
              (setq nixpkgs--buffer-count (1+ nixpkgs--buffer-count))
              (add-hook 'kill-buffer-hook 'nixpkgs--decrement-buffer-count nil t)))
          buf)
      (funcall orig name)))
  (advice-add 'generate-new-buffer :around #'nixpkgs--around-generate)
  ; When we have no more nixpkgs buffers, tear down the buffer handling
  (defun nixpkgs--decrement-buffer-count ()
    (setq nixpkgs--buffer-count (1- nixpkgs--buffer-count))
    (when (eq nixpkgs--buffer-count 0)
      (advice-remove 'generate-new-buffer #'nixpkgs--around-generate)
      (fmakunbound 'nixpkgs--around-generate)
      (fmakunbound 'nixpkgs--decrement-buffer-count))))
(setq nixpkgs--buffer-count (1+ nixpkgs--buffer-count))
(add-hook 'kill-buffer-hook 'nixpkgs--decrement-buffer-count nil t)

; Add packages to PATH and exec-path
(make-local-variable 'process-environment)
(put 'process-environment 'permanent-local t)
(inherit-local 'process-environment)
; setenv modifies in place, so copy the environment first
(setq process-environment (copy-tree process-environment))
(setenv "PATH" (concat "/nix/store/z0kd979q0h5b5knm4wng76j73f0708fl-python3-3.6.4/bin:/nix/store/z58l69705j82vvgsa88is55gzrl2r6xr-python3.6-numpy-1.13.3/bin:" (getenv "PATH")))
(inherit-local-permanent exec-path (append '("/nix/store/z0kd979q0h5b5knm4wng76j73f0708fl-python3-3.6.4/bin" "/nix/store/z58l69705j82vvgsa88is55gzrl2r6xr-python3.6-numpy-1.13.3/bin") exec-path))

(setq nixpkgs--is-nixpkgs-buffer t)
(inherit-local 'nixpkgs--is-nixpkgs-buffer)

so my PATH should be set to have the python on /nix/store/z0kd979q0h5b5knm4wng76j73f0708fl-python3-3.6.4/bin first but as I already have said if I do M-x run-python I get the python from /usr/bin/python.

I don't think your example works?
nix-build for nix-buffer for Process.v exited abnormally with code 1 with error output:
error: attribute ‘fiat_HEAD’ missing, at /Users/dom/Dropbox/Tidy/NumMethHaskell/service-runner/dir-locals.nix:2:50
(use ‘--show-trace’ to show detailed location information)

@idontgetoutmuch Not sure what revision of nixpkgs you have, but I have fiat_HEAD here... Anyway, is it possible run-python runs python in a separate comint buffer? If so I have a hacky workaround for that for coq support but need a better general solution.

It does seem like python runs in a separate comint buffer but my elisp isn't good enough to be sure.
(defun run-python (&optional cmd dedicated show)
  "Run an inferior Python process.

Argument CMD defaults to `python-shell-calculate-command' return
value.  When called interactively with `prefix-arg', it allows
the user to edit such value and choose whether the interpreter
should be DEDICATED for the current buffer.  When numeric prefix
arg is other than 0 or 4 do not SHOW.

For a given buffer and same values of DEDICATED, if a process is
already running for it, it will do nothing.  This means that if
the current buffer is using a global process, the user is still
able to switch it to use a dedicated one.

Runs the hook `inferior-python-mode-hook' after
`comint-mode-hook' is run.  (Type \\[describe-mode] in the
process buffer for a list of commands.)"
  (interactive
   (if current-prefix-arg
       (list
        (read-shell-command "Run Python: " (python-shell-calculate-command))
        (y-or-n-p "Make dedicated process? ")
        (= (prefix-numeric-value current-prefix-arg) 4))
     (list (python-shell-calculate-command) nil t)))
  (get-buffer-process
   (python-shell-make-comint
    (or cmd (python-shell-calculate-command))
    (python-shell-get-process-name dedicated) show)))

OK, thanks. I'll try to find time to generalize and clean up my comint hack, but I can't promise any time soon sadly :( In the mean time you can try to copy what we do for coq: https://github.com/NixOS/nixpkgs/blob/038b893338f78bbb879eb6a7c28d8dcd9f9064d2/pkgs/applications/science/logic/coq/default.nix#L53-L78

My emacs and nix knowledge are probably insufficient to copy what you did. In the meantime, this very hacky setup seems to work
 '(python-shell-interpreter "/nix/var/nix/profiles/default/bin/nix-shell")
 '(python-shell-interpreter-args
   "-p \"callPackage /Users/dom/Dropbox/Tidy/mrp/dl.nix {}\" -I nixpkgs=/Users/dom/nixpkgs --run python")
 '(python-shell-process-environment
   (quote
    ("NIX_PROFILES=/nix/var/nix/profiles/default /Users/dom/.nix-profile" "NIX_REMOTE=daemon" "NIX_PATH=/nix/var/nix/profiles/per-user/root/channels" "NIX_SSL_CERT_FILE=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt" "NIX_USER_PROFILE_DIR=/nix/var/nix/profiles/per-user/dom"))))

@idontgetoutmuch I do something similar to get a Node REPL, you may be able to work from this: https://github.com/eqyiel/.emacs.d/blob/50ed49a43078e2642da609a0e12970b88a27baaa/config.org#nodejs-repl

@shlevy Shea, if I'm using developPackage, how can I get nix-buffer to create an environment for the buffer there only the dependencies listed for my projects are in scope?
I'm trying to get haskell-ide-engine working on macOS, but it fails compiling anything saying "Argument list too long", because my user environment has too many packages installed. For Haskell development, I'd like there to be multiple haskell-ide-engine processes running, each seeing only what it needs to see to work for each particular project.

@jwiegley Take a look at haskell.lib.getHaskellBuildInputs

@shlevy So this?
let pkgs = import <nixpkgs> {};
    package = import ./. {};
in pkgs.nixBufferBuilders.withPackages
     (pkgs.haskell.lib.getHaskellBuildInputs package)

I'd first build a GHC environment:
ghcEnv = package.compiler.withPackages (_: pkgs.haskell.lib.getHaskellBuildInputs package)
And then put that into your withPackages list.

@shlevy Do you know a variant of that which creates a Hoogle database for all the local dependencies of the package? :)

@shlevy Here's my attempt:
let pkgs = (import <darwin> {}).pkgs;

    package = import ./. {};

    haskell-ide-engine = import (pkgs.fetchFromGitHub {
      owner  = "domenkozar";
      repo   = "hie-nix";
      rev    = "dbb89939da8997cc6d863705387ce7783d8b6958";
      sha256 = "1bcw59zwf788wg686p3qmcq03fr7bvgbcaa83vq8gvg231bgid4m";
    }) {};

    hoogleExpr = <nixpkgs/pkgs/development/haskell-modules/hoogle.nix>;

    ghcEnv = package.compiler.withPackages
      (p: with p;
        let packages = pkgs.haskell.lib.getHaskellBuildInputs package;
            hoogle = callPackage hoogleExpr { inherit packages; }; in
          [ hdevtools haskell-ide-engine.hie82 hoogle ] ++ packages);

in pkgs.nixBufferBuilders.withPackages [ ghcEnv ]

@shlevy At least for Haskell, I now have a more convenient way of interacting with projects that do and do not have a default.nix (using developPackage).

Create a packageDeps function: https://github.com/jwiegley/nix-config/blob/master/overlays/10-haskell.nix#L91

Create a nix-shell-gen, which works even if there's no default.nix, but just a .cabal file or a package.yaml: https://github.com/jwiegley/nix-config/blob/master/bin/nix-shell-gen

Create a dir-locals.nix, using packageDeps:

let pkgs = (import <darwin> {}).pkgs;
in pkgs.nixBufferBuilders.withPackages
     [ (pkgs.packageDeps "hnix" "ghc822" pkgs.haskellPackages_8_2
          (builtins.dirOf __curPos.file)) ]

For more complex projects like hnix, I create a full default.nix file compatible with this workflow: https://github.com/haskell-nix/hnix/blob/pending/default.nix

@jwiegley I think there's a ghcWithHoogle, but I don't use it myself yet...
For coq, do we have a general buildCoqPackage or coq.mkDerivation or whatever? If not, we have to either just take all build inputs or manually add passthru to the relevant packages.

@jwiegley Nice! For my setup, I have a top-level dir-locals.nix in my home directory that handles haskell projects without their own dir-locals.nix: https://github.com/shlevy/config/blob/72469d4de45f7c6c9fd828f8f4291f1932e3500d/dir-locals.nix

Related to this, an alternative solution to nix-shell integration to Emacs that I found works better than other solutions I have tried (especially for Python) was brought to my attention here. I have a fork with some usage examples here. As you'll see from the first link this is a different nix-mode and nix-shell than you see floating around elsewhere. Need to make this wider known.

Superseded by https://github.com/shlevy/nix-buffer/issues/20, part of the work to get a flake-based version of nix-buffer


Add Line::with_delta constructor

This PR adds a Line::with_delta constructor and is part of #617.

Thanks for the review.


Crosshair does not snap to point on zoom

Zooming should snap the crosshair to a point.
Current behaviour is shown below:

Any ideas on how to do this? The d3fc crosshair only emits trackingstart, trackingmove, and trackingend events - none of which are triggered when zooming. Is this something we can fix ourselves or something that needs to be added to d3fc?

For the time being we'll go with the suggestion Rob made on slack:

Why don't we just hide the crosshair on zoom? It would mean that it would show up again as soon as the mouse is moved (and a new point selected)

Looks like we'll be getting this for free in the next d3fc release: https://github.com/ScottLogic/d3fc/pull/840

This bug is still present in BitFlux. Jonathan has informed me we have updated our version of d3fc which should have fixed this? Despite this, the problem is still present.

There's a d3fc issue open for this ScottLogic/d3fc#841


[Azure Core] Readme content and sample code of Azure Core is incorrect

Section Link

Comment: Link is useless, we should change it to https://azure.github.io/azure-sdk-for-net/core.html

Thank you for the report. We would happily take a PR with a fix.


version-file extension not supported even if it's YML inside

I'm using this action in a Unity project.
Unity keeps the version number in a file named "ProjectSettings.asset". It's just an YML with a custom extension.
And as you can see I'm getting the following error when it tries to use that file.
    at handleVersioningByExtension (/home/runner/work/_actions/TriPSs/conventional-changelog-action/v3/src/index.js:15:11)```

Maybe it would be useful to specify an optional input `version-file-type` so that it uses that format instead of inferring it from extension? And if no type is specified, just work as it's been working.

Hi @gpiffaretti, that would be a great addition! When a version-file-type is defined we can use that one and if not determine it ourselfs.
Would you like to create a PR?

Created this pull request :)
https://github.com/TriPSs/conventional-changelog-action/pull/61

Tried it in my own fork and it's working. I had to do another addition to make it work with Unity:
fileContent.replace(           ${versionName}: '${oldVersion}',           ${versionName}: '${this.newVersion}',         )
That part won't work because Unity doesn't use the ' character for the values in the YML file.
I had to change the replace logic but haven't added an option to choose if using the ' or not. I also don't wanna add too much complexity with too many parameters and stuff. What do you think?

Maybe a simple check like const quoteType = fileContent.includes('${oldVersion}') ? ':"``?


Support for loading other scenarios in ember --serve

2 upvotes from Canny

I am building an addon inhouse atm which does exactly that. Its fairly straightforward to implement it yourself. Without much hacking you can modify the default scenario to load other scenarios. You can create a scenario manager  for instance, which either uses a url parameter or local storage to retrieve a scenario name. In the default scenario you can use the this or server._config.scenarios var to get a list of all available scenarios inside of your scenario folder. Now what's left is to match up the scenario from the list with your url param value or whatever. This approach has been working out pretty well for us. Give it a try.

The use case for us is that we need to user test our apps under specific user scenarios. For example, user has xyz assigned projects and must complete abc tasks. I'll give @teejayhh's solution a try!

Yeah I've come to believe this feature isn't really something Mirage needs to have a first-class API to support. It's basically a subset of "run different code under certain conditions" and those conditions could be build-time, run-time or something else.
I think a future API that might make sense for Mirage is a sort of "reset". I mean today you can do this with server.db.emptyData(), and then you can run a scenario through it. So yeah I think I'll be holding off on an official solution/recommendation here for a bit.

Some examples on the new site on how people are solving this would be great though!

@samselikoff hmmm that surprises me a little bit because the "scenario" concept in Mirage seems first-class through its usage in the folder hierarchy: a file entry in "mirage/scenarios/" implies the ability to add more "scenarios", as you would factories or fixtures or whatever else. On instinct I went around looking for a way to switch out the scenarios environmentally or through some other means.
I do think updating the docs with some examples will help clear up any confusion—I'm happy to look into that!—but I'm not sure it makes sense to dismiss this just yet.
Thanks!

The other thing is, in miragejs we're calling them seeds() instead of scenarios: { default() } for precisely this reason. (No other scenario support was ever implemented.)

I feel like it would not take too much to expose a simple api. For the project I was working I needed 4 key peaces.

Make scenarios useful, other then a function which creates seed data

Instead of a function this is now an object with options, name, descriptions, endpoints, custom responses

The default scenario is the entry point to load a different scenario. In my case I have created a ScenarioLoader singleton which uses local storage to determine which scenario to pick. No one likes url parameters.
The mirage config loads a MirageServerProxy  which augments/taps the put/post/del/get functions and   returns something like this.

return mirageServer.post(route, this._createCallback(this.scenario, route, data, 'post'), options)

The _createCallback needs to return a function  which returns
     // create a new RouteHandler to create a normal proper mirage response
      const routeHandler = new RouteHandler({
        schema,
        verb: requestType,
        rawHandler: data,  // modify if you like for some cool use cases
        path,
        serializerOrRegistry: server.serializerOrRegistry,
      })

      return routeHandler.handle(request).then((mirageResponse) => {
        return new Response(...mirageResponse)
      })

And as the fourth part you probably need a component which lets you pick a scenario.

I hope this helps @allthesignals

Docs PR here: https://github.com/samselikoff/ember-cli-mirage/pull/1802


Tests

This is my first attempt of creating a pull request.
How does it work?
How different is it from gitlab's merge requests?

so this is pretty much the same as gitlab's merge requests. ok.

I noticed I forgot to remove something from the README.md file...


[FEAT]: Auto-add and Watch Folder for Document Uploads

What would you like to see?
Feature Request: Auto-add and Watch Folder for Document Uploads
Description:
Currently, users need to upload documents individually for the built-in RAG feature. It would be highly beneficial to have an option that allows the system to auto-add all documents from a specified folder and continuously watch the folder for new documents to be added automatically.
Benefits:

Streamlines the process of document management.
Saves time and reduces manual effort for users who deal with large volumes of documents.
Enhances the usability of the RAG feature, making it more efficient and user-friendly.

Proposed Solution:

Implement a feature to specify a folder for automatic document uploads.
The system should continuously monitor the folder and automatically add any new documents placed in it.

Use Case:
This feature would be particularly useful for businesses and researchers who frequently update their document repositories and need these documents to be readily available in AnythingLLM without manual intervention.

I also feel there is value in having API access to the endpoint where JSON payload can be used to add to the vector DB,

Will it also handle document changes?.  (ea after git pull or after a corection in a file ?.

Will it also handle document changes?. (ea after git pull or after a corection in a file ?.

This feature is standalone already exists in beta, but you must manually select which file to sync. We do not auto-watch every document due to the probably case of someone wanting to auto-sync 10K files at the same time and that will for sure cause issues

Will it also handle document changes?. (ea after git pull or after a corection in a file ?.

This feature is standalone already exists in beta, but you must manually select which file to sync. We do not auto-watch every document due to the probably case of someone wanting to auto-sync 10K files at the same time and that will for sure cause issues

Can we not at least select a folder to sync? Selecting a file does absolutely nothing for automating the process and would be quite unfortunate.
Other RAG systems do offer such options and I do not know if those used to having their RAG auto updating would bother with a system that requires every single file to be added manually.
Many applications would require such an option such as knowledge management systems, CRM systems, even generic daily note-taking etc.  I do strongly believe that the auto update function would be a critical function to quite a few if not many. Just my two cents.

As for windows file changes can trigger events, add to it a queue and for standalone it wouldn't matter even if people updated thousands docs which I rhough doubt people would do, but there are many people so perhaps.
When will beta become prod?.
I'm not on discord
Outlook voor Android downloadenhttps://aka.ms/ghei36

From: Asentient @.>
Sent: Sunday, July 21, 2024 3:15:09 PM
To: Mintplex-Labs/anything-llm @.>
Cc: PGTBoos @.>; Manual @.>
Subject: Re: [Mintplex-Labs/anything-llm] [FEAT]: Auto-add and Watch Folder for Document Uploads (Issue #1873)
Will it also handle document changes?. (ea after git pull or after a corection in a file ?.
This feature is standalone already exists in betahttps://docs.useanything.com/beta-preview/active-features/live-document-sync, but you must manually select which file to sync. We do not auto-watch every document due to the probably case of someone wanting to auto-sync 10K files at the same time and that will for sure cause issues
Can we not at least select a folder to sync? Selecting a file does absolutely nothing for automating the process and would be quite unfortunate.
Other RAG systems do offer such options and I do not know if those used to having their RAG auto updating would bother with a system that requires every single file to be added manually.
Many applications would require such an option such as knowledge management systems, CRM systems, even generic daily note-taking etc. I do strongly believe that the auto update function would be a critical function to quite a few if not many. Just my two cents.
—
Reply to this email directly, view it on GitHubhttps://github.com/Mintplex-Labs/anything-llm/issues/1873#issuecomment-2241607292, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFQQOG34GXBSIW2IJV7R67LZNOX53AVCNFSM6AAAAABK5JKEOWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBRGYYDOMRZGI.
You are receiving this because you are subscribed to this thread.Message ID: @.***>


Use import instead of module

export Helpers as default export in handlebars/compiler/base

@mmun would you mind merging this into your branch so we can move forward with https://github.com/emberjs/ember.js/pull/10853

import * as helpers from '...'

@stefanpenner
import * as Helpers from "./helpers";

results in
Warning: Line 4: Unexpected token * Use --force to continue.

The toolchain doesn't support that syntax

Can you explain the reason for this change?

Looks like this is trying to hack around #855 but is introducing more tech debt. Not really a fan of this but would love to hear the argument for it.

@kpdecker you're right about that.
I'd certainly prefer to use import * as Helpers from "./helpers";.
This change is motivated by https://github.com/emberjs/ember.js/pull/10853#issuecomment-91089580
What would it take to support that syntax (given the change in ES6 landscape since #855)

import * as Helpers from "./helpers";

it is valid, we will need to upgrade the transpiler to support this (now or later)

@kpdecker could we update https://github.com/kpdecker/es6-module-packager to use babel?

That could be an option. es6-module-transpiler was a no go as it generated code that wouldn't run under IE. I don't have time to look into that now but I'd be glad to look at a pull request over there.

Use the es6modules transpiler we have in the ember cli repo. It's Esperanto under the hood with flags enabled or enable able for es3 safety. It is also ultimately what ember core is currently build with

@stefanpenner do you mean https://github.com/ember-cli/broccoli-es6modules?
Does that introduce a broccoli dependency to the build process?

If you don't want to do that. Look at how it calls Esperanto under the hood and drop Esperanto in here. There may even be an appropriate plugin for this build system.
Just make sure to call Esperanto with the same flags ember-cli does. So es3 safety requirement is met.

Closing in favor of #998

:clap:


Sporadic segfaults in a python module when using ApiClient to query a Tapo P110

I get random segfaults executing a python module that uses ApiClient to query a P110 device. Unfortunately the Python stack frame is not available when the process receives the signal, but I could catch a core dump that I analyzed with gdb.
This is what it says

0  __pthread_kill_implementation (threadid=548354912640, signo=signo@entry=11, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
1  0x0000007faeab0a64 in __pthread_kill_internal (signo=11, threadid=) at ./nptl/pthread_kill.c:78
2  0x0000007faea6a76c in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
3
4  0x0000000000490d30 in ?? ()
5  0x0000007fad41f054 in pyo3::types::any::PyAny::call_method::hacc5388e8a698dd3 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
6  0x0000007fad41cd00 in pyo3_asyncio::call_soon_threadsafe::h189597b182986bc9 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
7  0x0000007fad41b164 in pyo3_asyncio::generic::set_result::h943446c3e13924f1 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
8  0x0000007fad2d5e08 in <pyo3_asyncio::tokio::TokioRuntime as pyo3_asyncio::generic::Runtime>::spawn::{{closure}}::h4499f884fd2416d9 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
9  0x0000007fad2c7184 in tokio::runtime::task::core::Core<T,S>::poll::h6f19112f45830e8f ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
10 0x0000007fad2827f8 in tokio::runtime::task::harness::Harness<T,S>::poll::h75be9602525f0e15 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
11 0x0000007fad4314a8 in tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h75332304a442adb5 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
12 0x0000007fad4306f0 in tokio::runtime::scheduler::multi_thread::worker::Context::run::ha0d088c158a7571f ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
13 0x0000007fad42e714 in tokio::runtime::context::set_scheduler::hb924c7a4ab654997 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
14 0x0000007fad429174 in tokio::runtime::context::runtime::enter_runtime::h2dc922c95f430ff4 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
15 0x0000007fad430558 in tokio::runtime::scheduler::multi_thread::worker::run::hcd92fda4015a4913 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
16 0x0000007fad424638 in <tokio::runtime::blocking::task::BlockingTask as core::future::future::Future>::poll::hf97cccf4b76a37d5 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
17 0x0000007fad42b478 in tokio::runtime::task::core::Core<T,S>::poll::h66ccbdb9dab0dc88 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
18 0x0000007fad42b9b8 in tokio::runtime::task::harness::Harness<T,S>::poll::hc66c5f1784947dac ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
19 0x0000007fad424884 in std::sys_common::backtrace::__rust_begin_short_backtrace::h51368bf6bad8d526 ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
20 0x0000007fad436388 in core::ops::function::FnOnce::call_once{{vtable.shim}}::h5d7b156d45e1195b ()
from /root/.venv/lib/python3.11/site-packages/tapo/tapo.cpython-311-aarch64-linux-gnu.so
21 0x0000007fad7b6d30 in alloc::boxed::{impl#47}::call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global> ()
at library/alloc/src/boxed.rs:2020
22 alloc::boxed::{impl#47}::call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global> ()
at library/alloc/src/boxed.rs:2020
23 std::sys::pal::unix::thread::{impl#2}::new::thread_start () at library/std/src/sys/pal/unix/thread.rs:108
24 0x0000007faeaaee58 in start_thread (arg=0x7fe90c4f57) at ./nptl/pthread_create.c:442
25 0x0000007faeb17f9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79

I can provide the dumped file if needed.
Seen on 0.2.1 and 0.3.0 versions

Thank you for raising the issue. Debugging this is going to be fun :)
Are you able to isolate the Python code that's causing the issue and share it?

Thank you for raising the issue. Debugging this is going to be fun :) Are you able to isolate the Python code that's causing the issue and share it?

Unfortunately stderr is only receiving this from the dying process

Thread 0x0000007fa31164c0 (most recent call first):
(no Python frame)
Fatal Python error: Segmentation fault

The code causing the segfault is attached here
tapo-telegraf-multi-async.zip

Thank you for the update.
I was not able to replicate the issue without TaskGroups. Did you?
Have you tried handling the SIGTERM on the Python side and cancelling the TaskGroups?
PS: I removed the zip file you've attached because it looked like it contained your Tapo password. You might want to change it.

Good catch! What an airhead I am, I changed it right away.
Tomorrow I will try what you suggested
Thanks!
Il sab 15 giu 2024, 21:43 Mihai Dinculescu @.***> ha
scritto:

Thank you for the update.
I was not able to replicate the issue without TaskGroups. Did you?
Have you tried handling the SIGTERM on the Python side and cancelling the
TaskGroups?
PS: I removed the zip file you've attached because it looked like it
contained your Tapo password. You might want to change it.
—
Reply to this email directly, view it on GitHub
https://github.com/mihai-dinculescu/tapo/issues/228#issuecomment-2170595255,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC5KCCWC6PRMGXVXGCKCZ63ZHSKMLAVCNFSM6AAAAABJHGMLTKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNZQGU4TKMRVGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hi, I tried with a SIGTERM handler to cancel the tasks but it fails in the same way. However, now I can get logged more details about the error
Thread 0x0000007f9df514c0 (most recent call first):

Signal 15 received. Cancelling tasks ...
Error unhandled errors in a TaskGroup (1 sub-exception)
Traceback (most recent call last):
File "/usr/local/bin/tapo-telegraf-multi-async.py", line 149, in
asyncio.run(main())
File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/usr/local/bin/tapo-telegraf-multi-async.py", line 143, in main
if task.result() == "":
^^^^^^^^^^^^^
File "/usr/local/bin/tapo-telegraf-multi-async.py", line 109, in gen_influx_str_from_ip
p110 = await init_p110(ip)
^^^^^^^^^^^^^^^^^^^
File "/usr/local/bin/tapo-telegraf-multi-async.py", line 73, in init_p110
p110 = await client.p110(ip)
^^^^^^^^^^^^^^^^^^^^^
Exception: Tapo(Unknown(1003))
Signal 15 received. Cancelling tasks ...
thread 'tokio-runtime-worker' panicked at /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-0.20.3/src/gil.rs:199:21:
assertion left != right failed: The Python interpreter is not initialized and the auto-initialize feature is not enabled.
Consider calling pyo3::prepare_freethreaded_python() before attempting to use Python APIs.
left: 0
right: 0
stack backtrace:
0: rust_begin_unwind
at ./rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:645:5
1: core::panicking::panic_fmt
at ./rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panicking.rs:72:14
2: core::panicking::assert_failed_inner
3: core::panicking::assert_failed
4: parking_lot::once::Once::call_once_force::{{closure}}
5: parking_lot::once::Once::call_once_slow
6: pyo3::gil::GILGuard::acquire
7: <pyo3_asyncio::tokio::TokioRuntime as pyo3_asyncio::generic::Runtime>::spawn::{{closure}}
8: tokio::runtime::task::core::Core<T,S>::poll
9: tokio::runtime::task::harness::Harness<T,S>::poll
10: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
11: tokio::runtime::scheduler::multi_thread::worker::Context::run
12: tokio::runtime::context::set_scheduler
13: tokio::runtime::context::runtime::enter_runtime
14: tokio::runtime::scheduler::multi_thread::worker::run
15: <tokio::runtime::blocking::task::BlockingTask as core::future::future::Future>::poll
16: tokio::runtime::task::core::Core<T,S>::poll
Signal 15 received. Cancelling tasks ...
Signal 15 received. Cancelling tasks ...
Fatal Python error: Segmentation fault

Are you able to try out the suggested solution to use the pyo3 auto-initiatize feature?

What you suggest is to rebuild the python package with that PyO3 feature enabled? If so, I need some guidance.
By the way, I upgraded the tapo Python package to 0.3.1, and now my script hangs occasionally requiring a sigterm to exit. I needed to revert to 0.3.0

Closing this as a duplicate of https://github.com/mihai-dinculescu/tapo/issues/245.


Manual Download Count Scripts

This PR will include 2 scripts to be used for modifying download counts in the database.
The first script produces json containing the counts of downloaded dockets, documents, and comments. Multiple command line flags can be passed to the script, notably start timestamps, end timestamps, and a flag which attempts to fix incorrect downloaded counts.
Note that counts queried from the mirrulation system are unaffected by the timestamps arguments, which are used when getting the official counts from Regulations.gov.

Example get_counts.py output
{
  "start_timestamp": "1776-07-04 00:00:00",
  "stop_timestamp": "2024-10-13 04:04:18",
  "dockets": {
    "downloaded": 253807,
    "total": 253807
  },
  "documents": {
    "downloaded": 1843774,
    "total": 1843774
  },
  "comments": {
    "downloaded": 22240501,
    "total": 22240511
  }
}

@OnToNothing You should push your script to this branch

Closing this in favor of #194 which is simpler to use


setMethods call has been removed in PHPUnit 10

Deprecated in PPHPUnit 8.3 see: https://github.com/sebastianbergmann/phpunit/commit/d618fa3fda437421264dcfa1413a474f306f79c4
Fixes #292

Thank you :clap:

@bbrala @TomasVotruba it seems the namespace need to be moved as well to avoid notice on rector-src:
bin/rector missing-in-set --ansi

We could not find there rules in configs
========================================

 * vendor/rector/rector-phpunit/config/sets/phpunit-code-quality.php

 * Rector\PHPUnit\CodeQuality\Rector\MethodCall\RemoveSetMethodsMethodCallRector

see https://github.com/rectorphp/rector-src/actions/runs/6828589747/job/18573042345?pr=5239#step:5:15
I temporary register to skipped rules to check on MissingInSetCommand
https://github.com/rectorphp/rector-src/pull/5239/commits/6b4ca2190ea465015ca3dfd064715e7e020247d2

Oh you are right.
Made a PR with the fix: https://github.com/rectorphp/rector-phpunit/pull/294


Add probes for agent

Fixes #158
Adds the possibility to have probes for the agent statefulset, configurable in the values.yml file (to allow users to use tcp probes for instance)
Tested locally, works as expected

Thanks!
I suggest some changes in my commit

raise the probe timeout to 5 seconds in case of load spike
enable probes only if metrics are enabled too
enable metrics by default


[WIP] Manage and document z-index values

Solves #872
Updated priority:

Snackbar: 400
Tooltip: 350
Scrim: 300
TopBar: 250
SideSheet: 200
Menu: 150
Popover: 100
Chip: 10

Notable usecases which can be troublesome with this.

Dialog is often used in conjuction with scrim
Sidesheet opened can also be used together with scrim to "fadeout" the rest of the page

Dialog is often used in conjuction with scrim
Sidesheet opened can also be used together with scrim to "fadeout" the rest of the page

@mimarz Scrim wraps the component it is controlled by, as seen in Storybook Dialog/With scrim. I also tested with Sidesheet, and it is shown on top of the Scrim as expected. 👍


[FEATURE] add loop capability to enhance cheap model performance

Issue
cheap models (like 4o-mini) seem to get comparable performance to SOTA at cheaper price when n simultaneous attempts are run in parallel (each attempt gets fed into itself with the prompt "make it better" m times). An evaluator then picks the output it likes best, which is then applied.

Reference: https://www.youtube.com/watch?v=0Z2BQPuUY50&t=979s
pd: loving aider. thanks a lot.
Version and model info
Aider v0.45.1

As a local-first user this looks very interesting. If I understood correctly, running multiple request in parallel is very efficient. I wonder how well this would work with smaller models like codestral or even 8b coding models.
It shouldn't be too difficult to get a POC of this plugged into Aider. And it's an excuse to finally play with a batching-capable serving engine. Now to find some time...


Move dev-specific services into compose overrides file

Fixes

Fixes #212 by @AetherUnbound
Description

This PR moves the s3 and postgres services which are only used in development into the docker-compose.overrides.yml. Thanks to #153, running commands with the override file during the dev process is relatively easy. We cannot remove services with an override file (only add or override). Production only needs one service and local development needs three, our new default is that the bare docker-compose.yml file is used for production, and the override file is used for local development.
I've also updated the tests action use the appropriate docker-compose command for launching the test. This will be replaced with just in #216.
Testing Instructions

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Ah yikes, I messed that merge up :woman_facepalming:

Reverting the merge from #218, I'll cherry pick that onto main once this one gets approved!

Whew, #218 has been cherry-picked successfully. Crisis averted!


Update for scala 2.13

Hello,
I wanted to know if safety-plugin will have a version for scala 2.13.
I know that scalafix need to be updated to support but maybe there is more work around it.
Thanks.

Yes I can work on it. I'll put it on my list. If you have time, you can open a PR as well :)
But I don't think the Scala version matter since it is a SBT plugin. Only the SBT version needs to align with your project. I think ?
What is your use case ?

Well, I tried to update a project to use scala 2.13, and got an error that semanticdb is not found. It is used by scalafix. It is weird that sbt plugin is depended on the project's scala. Maybe something is broken on my side. Anyway, updating is a good practice anyway so I asked.

ah thanks ! I will look into it !

@tomerghelber I made an update to attempt to fix the issue. Could you test it on your end ? if that resolve the problem you were encountering.
There should be a public snapshot published:
[info] 	published safety_plugin to https://oss.sonatype.org/content/repositories/snapshots/com/leobenkel/safety_plugin_2.12_1.0/0.1.3+9-fd0ea554-SNAPSHOT/safety_plugin-0.1.3+9-fd0ea554-SNAPSHOT.jar

"com.leobenkel" % "safety_plugin" % "0.1.3+9-fd0ea554-SNAPSHOT"

Made a branch for scala 2.13. Couldn't find it in the standard repository, how to add it?

I verified that it works in your project, you can add
resolvers += Resolver.sonatypeRepo("snapshot")

to get the snapshot version, or wait for the deploy to complete. Then you will be able to use 0.1.5 as the new version.
please let me know when it works on your end :)

Just doubled-checked after the deploy completed, 0.1.5 works fine ! :D


Pylint alerts corrections as part of an intervention experiment

I'd like to conduct a software engineering experiment regarding the benefit of Pylint  alerts removal.
The experiment is described here.
In the experiments, Pylint is used with some specific alerts, files are selected for intervention and control.
After the interventions are done, one can wait and examine the results.
I'm asking for your approval for conducting an intervention in your repository.
See examples of interventions in stanford-oval/storm, gabfl/vault, and coreruleset/coreruleset.
You can see the planed interventions
May I do the interventions?

I apologize, but we don't want to participate in this experiment. This project is in maintenance state and we deal only with CVEs.


Unintended behaviour in SerializationBinder

The SerializationBinder used for handling the types of entities has no
effect on the outcome of the state file. Is this intended to remove the
namespaces from the entity $type fields?
As a reference:
{
  "Entity": {
    "$type": "Domain.Entities.IndestructibleWallEntity, Domain",
    "Location": {
      "X": 2,
      "Y": 1
    }
  },
  "Bomb": null,
  "PowerUp": null,
  "Exploding": false,
  "Location": {
    "X": 2,
    "Y": 1
  }
},

Same outcome with or without the Binder, regardless of entity type.
Edit: As a reference, here is a cell example from last year. Each cell had a type field you could use to check what it was.
{
      "Id": 1,
      "Alive": true,
      "X": 0,
      "Y": 0,
      "Width": 1,
      "Height": 1,
      "Type": "Wall",
      "PlayerNumber": 0
},

The initial design did remove the namespace yes, but that has since been changed.  Thanks for spotting this.


Async / Await Support

I made these changes to work with mongojs in codebases that are async/await heavy (like puppeteer tests). Eliminating callbacks also seems true to the original design statement of mongojs, to be as similar as possible to the mongodb repl. There's a reasonable amount of new test coverage and all old tests pass. However, I realize the code changes are substantial. I'm not certain if you (maintainers) want to include this feature in mongojs due to its large scope. If you do, please consider making a major version bump to alert users that some things may behave a little different.
At a minimum, the library will use a bit more memory due to creating Promise objects whenever an API is called without a callback in existing code, as this absence of a callback is what signals the creation of a Promise now. This should be harmless most of the time but it's hard to know how it might interact with what's out there. Cheers, and thanks for a great little mongodb lib over the years!

There are alternatives like mongoist out there that support async/await out of the box


Time zone issue with actual times.

Looks like the time zones aren't matching up in the "Planned" and "Actual" fields. Planned seems to be MDT and Actual seems to be UTC.

Nothing should need to change in this action, so see the referenced action for updates.


cell_ranger HVG flavor inconsistent with 10x code

It appears that in the cell ranger code, the dispersion is calculated using the negative binomial relationship between mean and dispersion, see
https://github.com/10XGenomics/cellranger/blob/5f5a6293bbc067e1965e50f0277286914b96c908/lib/python/cellranger/analysis/stats.py#L44
Furthermore,  these summary statistics are calculated on the count matrix normalized by library size, but not log-transformed.
https://github.com/10XGenomics/cellranger/blob/5f5a6293bbc067e1965e50f0277286914b96c908/lib/python/cellranger/analysis/pca.py#L91-L95.
As a follow-up, the "Seurat" flavor seems to be no longer used in Seurat. Any plans to implement their "vst" method?

Just a follow up here. I found the code from the Zheng et al. paper:
It appears they do calculate dispersion as var/mean but on the library size normalized counts (not log)
https://github.com/10XGenomics/single-cell-3prime-paper/blob/265433ebf858c7fdcab759ca9f36b5e0241ceece/pbmc68k_analysis/util.R#L122-L135


Added SkipLast and TakeLast examples

See Snippet203 and Snippet204
Summary
Describe your changes here.
Part of the fix for dotnet/dotnet-api-docs/issues/2267, dotnet/dotnet-api-docs/issues/1060 and dotnet/dotnet-api-docs/issues/1061.

@rpetrusha I'll add the VB samples, and yes I was - see https://github.com/dotnet/dotnet-api-docs/issues/2267 for details.

@rpetrusha I added the vb samples. (I followed the pattern of the other examples in the file.)

@rpetrusha This is ready for a final review. All changes have been addressed.

Thanks for adding the Visual Basic example, @tomzorz. I'll merge your PR now. The changes will be live on docs.microsoft.com sometime next week.

Excellent, thank you!


RFC: Enable soroban-rpc by default

Hi all,
I'm putting out a request for comment for enabling the Soroban RPC by default on the quickstart image.
Today when quickstart starts up core, horizon, and friendbot (on local) come up. To enable the soroban-rpc the --enable-soroban-rpc option has to be used.
The Soroban CLI is headed to become the CLI to use for all things Stellar during development, but it only talks to friendbot and soroban-rpc, so I think it's becoming a bit awkward to keep the soroban-rpc disabled by default. Quickstart is for development and should startup with everything that's needed to dev.
The cost to enabling the soroban-rpc increases the memory usage, so the cost isn't insignificant:
Local: 160mb vs 330mb
Testnet: 480mb vs 705mb
So far we haven't had any reports of this memory usage being a problem by anyone using quickstart with rpc. So we don't have any signal that this would actually be a problem.

This has been done and it is now on by default.


Web Componente / Custom Element

Wouldn't it be nice to create a component to just use data as a prop?
And there no need to use it in the js.
If you agree i could do that =)

Thanks.  To add custom element would be a key feature, but there should remain the mount method, due to somebody would want to mount to existing node or do something dynamically.


Added Carousal with button

Added Feature. Solved Issue #13

wow, that's impressive work

Thanks for appreciation 😀


chainer.grad without priority queue

Refactor chainer.grad with the observation that the set of all backward calls can be calculated in the earlier steps.
Possible drawbacks:

will share less codes between Variable.backward and chainer.grad;
order of func.backward of the same func.rank will be non-deterministic

I added some assert lines for the review.  I used tests in #4779.

Thank you for the PR.
Could you clarify the motivation of this PR? Does it improve efficiency of backward computation?

My motivation came from that I felt difficulty in maintaining long code of chainer.grad.  I'd like to remove unnecessary code in it derived from Variable.backward, unless their routines are going to be shared in a module.
I have no motivation in the performance in this PR.  I've not compared the performances (speed or memory).  I believe at least that this change does not degrade the performance much.

OK. Thank you for clarification.

Jenkins CI test failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)


fix: avoid empty lines everywhere; also print messages sent to stderr

Turn this:

Into this:

Nice @ptab 👏 ! I just noticed the same problem.

Thanks! It was easy to find since I was the one who introduced the problem in the first place 😅


sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'xagent-mysql'

Issue Description / 问题描述
I found an error when looking into logs of XAgent-Server.
Process SpawnProcess-1:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 644, in connect
    sock = socket.create_connection(
  File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection
    raise err
  File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 711, in connect
    raise exc
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'xagent-mysql' ([Errno 111] Connection refused)")
(Background on this error at: https://sqlalche.me/e/20/e3q8)

Steps to Reproduce / 复现步骤

Run docker compose -f "docker-compose.yml" up -d --build
Run docker logs --tail 1000 -f replace-here-with-XAgent-Server-containert-id

Expected Behavior / 预期行为
There's no error in this container
Environment / 环境信息

Operating System / 操作系统：WSL2 ubuntu on windows
Codebase version: Using https://github.com/OpenBMB/XAgent/commit/f4f1e616717fc5f2d5436a65257a3bb81a2d21a6

Additional Notes / 其他备注
Our team member have not reproduce this error. I fix the error by restarting this container. Just post here to see if anyone have this same error.

Hello, I meet the same error. How to solve this?

@Umpire2018 Hello, I meet the same error. How to solve this?

Restart that container will solve it.

@Umpire2018 Hello, I meet the same error. How to solve this?

Restart that container will solve it.

I restart it. But the problem still exists.


Vector slice selections

The RSP document (http://ultra64.ca/files/documentation/silicon-graphics/SGI_Nintendo_64_RSP_Programmers_Guide.pdf)
describe how elements can be selected in most vector operations (eg: VADD, VMULF):
/* Normal */
if (inst.Element == 0) {
    j = i;
}

/* Quarter */
else if ((inst.Element & 0b1110) == 0b0010) {
    j = (inst.Element & 0b0001) + (i & 0b1110);
}

/* Half */
else if ((inst.Element & 0b1100) == 0b0100) {
    j = (inst.Element & 0b0011) + (i & 0b1100);
}

/* Whole */
else if ((inst.Element & 0b1000) == 0b1000) {
    j = (inst.Element & 0b0111);
}

In your non-SSE based vector routines, you only support the e = 0 case.  Was this intentional?

I fail to envision where you must be looking since the scalar broadcasting support is side-by-side for the SSE and non-SSE code paths, which both implement the feature completely.

From multiply.c and N is equal 8.
word_64 product[N]; /* (-32768 * -32768)<<1 + 32768 confuses 32-bit type. */
register unsigned int i;
for (i = 0; i < N; i++)
product[i].W = vs[i] * vt[i];
for (i = 0; i < N; i++)
product[i].W <<= 1; /* special fractional shift value */
for (i = 0; i < N; i++)
product[i].W += 32768; /* special fractional round value */
for (i = 0; i < N; i++)
VACC_L[i] = (product[i].UW & 0x00000000FFFF) >> 0;
for (i = 0; i < N; i++)
VACC_M[i] = (product[i].UW & 0x0000FFFF0000) >> 16;
for (i = 0; i < N; i++)
VACC_H[i] = -(product[i].SW < 0); /* product>>32 & 0xFFFF */
SIGNED_CLAMP_AM(V_result);

Yes, this code in your excerpt is designed to be identical to the SSE code path in output.  When SSE is not available, the code you pasted is used to achieve the same behavior.  However, none of this would seem to have anything to do with why you suspect that scalar broadcasting is being handled in the vector unit by exactly one code path yet not the other.

Perhaps this might help you.  Lines 1874 down through 1938.
https://github.com/cxd4/rsp/blob/3e3034988bd549f00795d9ba0a561bf870bb319f/su.c#L1874

So when a scalar whole is selected for example then it's a scalar broadcasting operation?
I just looked how iterators I and j are used in the vector source and target slice selections.

As you can see from the jump table, if the COP2 sub-operation specifier is 0o020 (0b10000 or 0b10001), the vector operation is run on two entirely vector registers.  If the sub-operation specifier is 0o022 or 0o023, half of the second vector is interleaved across the vector itself to form a quarter-scalar vector.  If it is 0o024, 025, 026 or 027, a quarter of the vector is broadcasted intermittently across the identity vector to form a half-scalar vector.  If it is between 030 to 037, a single element's scalar value is broadcasted across the whole vector for a wholly scalar vector.
This is true regardless of whether using SSE or not.  But I would not be implementing this within each and every individual instruction, such as VMULF, because that would be polluting the vector unit module with repeated phase code belonging to the entire instruction class before entering vector mode anyway.

Thank you, this is very helpful.


"Rănușa" are villages in "Moneasa" common, "ARAD" county

Precondition
Empty the search bar after every step

Steps 1
Acces to the link https://peviitor-ro.github.io/ui.orase/
Expected result
The page opens

Steps 2
Write "Rănușa"
Expected result
In the drop down menu you find "Rănușa, ARAD( Moneasa )"
Test Data
Rănușa


MQTT blocking error

Hi Gabriel,
We hope you are doing well!
We keep getting the error that the MQTT access is blocked: "MQTT ACCESS DENIED Device is rate limited device_16232".
Could you please help us increase the MQTT limit for our project?
Is there some other solution to this?
Please let us know. Thank you so much.
Best regards,
Kulbir and Michael

The Device is rate limited log is indicative of connecting to the MQTT broker too often, rather than sending or receiving too many messages.
Running this will trigger the rate limit because it creates a new connection for each message it sends:
for i in range(25):
    publish.single(channel, payload, **connection_args)

While running this will not since it uses a single connection for multiple messages:
client.connect(host)
for i in range(25):
    client.publish(channel, payload)

I hope that helps guide the code design for your project!


cpu-z: fix hash

Fix #2780

Sorry, your checksum was wrong.

It looks like that the file cpu-z_1.90-en.zip was changed back to the original one.
Thanks for noticing.


pentatrion vite bundle config conflicts with ShopwareAdministration bundle

{     "bundles": {         "Pentatrion\\ViteBundle\\PentatrionViteBundle": [             "all"         ]     } }
The recipe above conflicts with
public function getAdditionalBundles(AdditionalBundleParameters $parameters): array     {         return [             new PentatrionViteBundle(),         ];     }
under  Shopware\Administration\Administration

Update to Shopware <IP_ADDRESS>

Ok thank you


Is there an upper limit for the "task_id" value?

Problem
Hi, Everyone. I have a question about label studio task. When data is labeled that would be assign Task ID. I want to check wether "task_id" value have there an upper limit? Because our data still increasing.
ScreenShot

@MarsSu0618 We use converts to integers somewhere, so, it's limited to python int (2 147 483 647). But LS performance is optimized for not more than 100 000 tasks. You can try to import huge amount of tasks, but you need a very powerful machine for this (especially with fast hard drive).

@MarsSu0618 We use converts to integers somewhere, so, it's limited to python int (2 147 483 647). But LS performance is optimized for not more than 100 000 tasks. You can try to import huge amount of tasks, but you need a very powerful machine for this (especially with fast hard drive).

@makseq Ok, Thank you for response.

@makseq Ok, Thank you for response.


Consider using IPLD Data Model for Metadata

IPLD's data model has a lot of similarities with what ODF developed. Switching to it may let us benefit from the ecosystem and make ODF more interoperable with IPFS and Blockchain tech.

Also consider: https://www.simpleserialize.com/


Generated + resized barcode not recognized

I have generated the below Code39 and QR barcodes using the zxing-cpp library and maybe did a bit of post processing on the dimensions. (resizing)
All online barcode readers including the zxing (https://zxing.org/w/decode.jspx) are able to decode barcodes but not zxing core library.

did a bit of post processing on the image dimensions

That is exactly the problem. You did not follow the advice that I gave you here. If you render the symbol to the minimal size and then sale it up by a non-integral scale factor that is below 4 (I wrote '10' in the mentioned discussion but it probably does not need to be that high. Where exactly the limit is, depends on the used symbology and the tolerance of the decoder). Here the scale factor seems to be something between 1 and 2 and that is a really idea.
That said, the QRCode sample will likely work in an upcoming release but I strongly recommend to change your scaling approach none-the-less.
@gitlost How often do people complain about non-working images from zint that are caused by an inappropriate scaling?

Unfortunately I get very little feedback (could end the sentence there) about scaling and non-working images - can't find a relevant ticket in the last couple of years.

So we definitely have a room for being more robust and handling these cases!

I agree. I'm surprised that zxing.org is capable of detecting these but can not argue with that fact. Interestingly, if I try to scan those off of my screen with our own android app, it fails if I set it to use the zxing Java module, which is somewhat surprising considering the zxing.org results. I also did not have a look at where exactly the Code39 symbol fails. For the QRCode, there is light on the horizon as I said.

Our software is trying to have a maximal unified size for all the 1d barcodes in order to preserve consistency for the users which we chose to be 210x70

While that may be convenient for the user, I don't think you are making their or your life easier in the long-run. That will render your output 100% broken if your input for a variable sized code (like Code 39) is growing above a certain threshold, regardless of which scanner you use. If you want to have a fixed size and your barcodes should have the same sized quiet zone everywhere, the width of the image needs to be a lot bigger and you still have to limit the input length that you want to encode.
This is precisely the reason why ZXing::Inflate behaves as it does and I recommend you use that approach, even if it "looks ugly" but therefore it has the highest chance of actually working, regardless of the scanner that is involved.

@axxel what about this barcode? I generated using zxing-cpp and I haven't touched the size (data="1234" type=ITF).
The reader is not able to detect any barcodes. For the reference java version is also not able to detect anything but the website https://online-barcode-reader.inliteresearch.com/ and some others are successfully decoding and returning a type "Interleaved2of5"

The reason why it is not detected is the minCharCount = 6 line. This number is technically arbitrary but it is there to prevent lots of false positives inside other symbologies. If I set this to 4, it detects your sample but breaks 6 test from the blackbox tests because phantom ITF sybols are found.

Understand. It is a little bit weird situation that the library is not able to recognize an own generated barcode.
I think i will limit it to 6+ characters in our software to prevent user confusion and issue a special message when input is less than that.
thanks

It is a little bit weird situation that the library is not able to recognize an own generated barcode.

Absolutely. This is due to the history of this project. I'm hesitant to put any work in the generator though, since I intend to replace all that with the much more capable libzint based backend.


Update information about CronJob's unsupported time zone field

This is a followup from https://github.com/kubernetes/kubernetes/pull/116252
/assign @liggitt @sftim

/sig apps

/unassign
I'd rather have the next free reviewer pick this up.

/lgtm


Provide examples for video publish and subscribe

Can you provide play from disk and save to disk examples for video too ??

This would be a great addition to the examples. I'm currently trying to stream video data to a room; however, having an official example showcasing how VideoFrame, NativeVideoSource, VideoSourceOptions, LocalVideoTrack, and RtcVideoSource are meant to be used together, along with codex compatibility, would be extremely helpful.


Why does the base AMI use a different owner ID?

🐛 Summary
This repo has the same issue described in cisagov/pca-gophish-composition-packer#78.

See issue #2 for the background on this.  It seems that we closed that issue after https://github.com/cisagov/skeleton-packer/pull/83 was merged, but never actually reverted the owner ID back to<PHONE_NUMBER>63 for this repo.
@jsf9k, @mcdonnnj I'm fine with changing the owner ID back to<PHONE_NUMBER>63 as part of PR #19 if you are.

@jsf9k, @mcdonnnj I'm fine with changing the owner ID back to<PHONE_NUMBER>63 as part of PR #19 if you are.

I'd prefer a separate PR.

OK, I'm fine with a separate PR for this.


Adds a language switcher

Steps to add a language:

Add a new key in karngyan.config.js inside strings with your language

Create a lang file inside /lang referencing the config

Reference the file inside nuxt.config.js

It can be disabled in config. Enabled by default.

Hey @hacheraw You're amazing.
Unfortunately, I'm on vacation in another country till 11th Apr and don't have a stable internet connection. Please give me a couple of days to review this and hopefully merge it soon.


Add documentation bring your own kafka

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

Thanks @JansenNick for this PR! When should this be merged? ASAP, or on 10GA release date?

@johannahemminger once we release the 3.6.0 business events module with the bring your own kafka changes, Pritika and some internal teams are still testing the new module.
With regards to the updated documentation, feel free to make edits as you see fit.


Fix detection of customized SourceSets

Before the plugin only created tasks correctly for source sets built into the convention
of the plugin (JVM or Android). Now we use the SourceSetContainer's all { action } block to create tasks in
a deferred manner after all have been defined.
It turns out this can be done without changing the outward behavior of the plugin, types of
tasks, or compatibility with older builds. It did require some substantial internal refactoring,
mostly to allow for each plugin source set resolver to take an action to apply for each
source set discovered which contains Kotlin files.
Fixes #53

Take a 2nd look and if you can, test it out on your Android project. Suggested testing includes:

a format and lint task exists for each of your custom source sets (and any standard source sets you expect)
gradle lintKotlin processes all of the source set lint tasks
gradle formatKotlin processes all of the source set format tasks

thanks again for the review!

I'm working on tests in #57. It's not done yet though so don't merge.


Spread syntax in vue component not supported

[x] I have read the contribution documentation for this project.
[x] I agree to follow the code of conduct that this project follows, as appropriate.
[ ] I have searched the issue tracker for an issue that matches the one I want to file, without success.

Please describe your issue:
I am trying to spread the actions of my store in my component but i am getting a syntax error when using the ES6 spread syntax

You need to add https://babeljs.io/docs/plugins/transform-object-rest-spread/ and add it to your babel config in your .compilerc.


db.sh

Why does https://github.com/juspay/todo-app/blob/master/db.sh exist? Is there any reason why I can't remove it?

removed in https://github.com/juspay/todo-app/commit/24265f372afcbd953b46555832f947f43185892c


dart2js: JSON.parse code quality

This simple little program compiles to 96k
import 'dart:json';
main() {
  var s = ' {"c": 3, "d":[1,2,"3"]}';
  var o = parse(s);
  // print(o);
}
Looking at the output it is clear that this program would benefit from some simple type analysis:
There is only one method implementing charCodeAt, which returns int, and no implementations of noSuchMethod.  This would eliminate most, but not all, bailout calls.
While this specific problem could be solved by re-implementing JSON.parse using the browser implementation of JSON.parse, the compiled Dart code should not be this big and slow.

JSON.decode now uses the browser's JSON.parse.


Fix for iOS IAP

Can someone help me to fix this check failure issue?

@rohitatcoffee Thanks again. This new PR has so many changes that it is almost impossible to figure out what the actual fix is. Maybe if you isolate the change, we can convert it to swift? I can help you convert the core of your changes if you tell me what they are


[FEATURE] Historical record for completion dates of books

Is your feature request related to a problem? Please describe.
This feature request is a subset of some of the items discussed in https://github.com/stumpapp/stump/issues/206. Namely:
completed_at should be a list of dates (with at least one)... Mostly so that in the future you can look and be like "i read this on X dates" etc

Describe the solution you'd like
I don't love the idea of storing a list of dates in SQLite, since I either have to stringify it or store as bytes, so perhaps just make a small lookup table for this. Maybe rename read_progress(es) to read_session(s), I know I've been dying to rename it. The idea would then be that completion status could be tracked by something like completion_history or read_history, and read_session would track stuff like the page/epubcfi/etc.
Additional context
The changes to the schema would be somewhat small, but there would be a decent amount of changes in the API and UI required to accommodate this.

FYI this will be landing in experimental in the coming weeks. I've opted to split the current read_progresses table into two:

active_read_sessions
finished_read_sessions

With the following stipulations:

A user may have 1 active_read_session per book
A user may have an infinite number of finished_read_sessions per book
Marking a book as complete sets the started_at and completed_at timestamps to the same value
Marking a book as unread will not clear historical record, that will have to be a separate query. Rather, it would clear the active_read_session.

This is now in experimental, the migration went smoothly on my personal Stump instance 🙌 so I'll close this issue out. It will be included most likely in either 0.0.4 or 0.0.5, depending on more long-term testing.


have a separate bitcoin address for automated payouts

We have a script now to automate bitcoin payouts. It uses the address that we display publicly on a user's profile page. However ...

I do have to say that having to post the address publicly bothers me, because it means anybody who checks my profile page often enough will be able to determine how much I receive, and I prefer to keep that hidden.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/5950751-have-a-separate-bitcoin-address-for-automated-payouts?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github).

No more bitcoin: https://github.com/gratipay/inside.gratipay.com/issues/201#issuecomment-102010517.


github.com/mattes/migrate ?

@gravis I just saw this. thanks to @nathany (https://github.com/mattes/migrate/issues/86#issuecomment-279464499).
I am super confused. What's the plan here? Is this just a fork/ copy with drivers in their own repo? The irony is, I just pointed out why that doesn't make sense in the latest v3 efforts, which I've been working on since December.
https://github.com/mattes/migrate/blob/v3.0-prev/FAQ.md#can-i-maintain-my-driver-in-my-own-repository

Here is some back story for the separate driver repos: https://github.com/gemnasium/migrate/issues/19

Hi @Mattes, for now, it's just a split of the drivers in our migrate fork.
As explained by @Nathany, the idea behind this was to minimize the dependencies bloat in migrate.
The build tags is a very nice idea to solve this issue, we just took another path to resolve this.
We'd also like to allow maintainers to work on drivers without the noise of all the others.
Again, this discussion is 3 months old now, and you there was no sign of you at this time. You can't blame the community to move along, and wait for your inter-contracts time. You did a great job with the v1 (and probably the v3), and I thank you for that.

I think there is a misunderstanding, I am not blaming anyone. :-) I asked you before, why not join forces and all contribute to mattes/migrate instead of creating confusion with this copy that doesn't do anything new?

ha, good question :)
Mostly because it's going to be different soon: take a look at https://github.com/db-journey/migrate/issues/2 for example. The API of the drivers are going to be updated (I haven't answered on this particular ticket, but I agree with the proposed changes).
AFAIC, the following points are very different between migrate (v1 or v3), and make the 2 projects incompatible on the long term:

I see journey more as a lib then a swiss army knife, meaning all components are lightweight and independent, except the base "migrate" lib which unifies all drivers. Therefore, I don't see the need to introduce sources for example (except bindata). All that can be done with command line should stay on command line.
As it is a lib, it's intended to be used in other projects. That being said, having all drivers in the same repo will make go get  to fetch all of them (because they're part of the repo), and their dependencies. I haven't looked enough in your new depencency_tree, but I can see github.com/docker/docker is now a dep, that a HUGE project to depend on. Cross-compiling is also an issue when is comes to sqlite3.
I'm personally only interested in the postgresql driver, since I don't use any of the other ones available. I'm sure @nathany doesn't care for anything else then Cassandra. With a common repo for all of these, the noise will increase with time. All the teams will notified for each PR, issue, broken build, etc. They will slowly start to remove notification until the project will be left alone (there are not many contributors: https://github.com/mattes/migrate/graphs/contributors).

If we find a path where this can be addressed, I would pleased to contribute.
PS: why v3? What happened to v2 :)

@mattes Forks are just part of open source.
With both libraries diverging, I'm curious to see where this goes. There are several other migration libraries for Go as well, each with different strenths.

re:  db-journey/migrate#2

https://github.com/mattes/migrate/blob/v3.0-prev/database/driver.go#L27
https://github.com/mattes/migrate/blob/v3.0-prev/database/postgres/postgres.go#L29

I see journey more as a lib
All that can be done with command line should stay on command line.

completely agreed. the reason why I think https://github.com/mattes/migrate/issues/145 should be done outside of migrate.

Therefore, I don't see the need to introduce sources for example (except bindata)

I think that's a point for source abstraction. :-)

having all drivers in the same repo will make go get to fetch all of them (because they're part of the repo)

that's not true, if the packages are structured correctly. see v3.

I can see github.com/docker/docker is now a dep

see my point above. it's a dep for testing only. it will never make it to any binary build.

Cross-compiling is also an issue when is comes to sqlite3.

v3 solves that by build tags. separate repos doesn't fix this.

With a common repo for all of these, the noise will increase with time.

I agree with that. I think people are trained to filter fast these days though. Personally this is not a big deal for me.

why v3? What happened to v2 :)

v2 exists internally here. its being used, but didn't got published because sensitive data was baked into the repo. that's bad obviously.

Forks are just part of open source.

There is no doubt about that.

@mattes I never like forking. It's a hassle, it distracts, and it divides. However, as already mentioned by @gravis, you left us no choice. Life goes on, and so do our needs with a migration library. Just because you are active now, shouldn't matter for the decision we have already taken. No need to dwell on the past though, let's move forward. As @gravis already outlined, the philosophy seems different between the two projects so we will end up with two different products.
As a side note: One thing we haven't done yet, but should do, is proper attribution to your work and license.

I'm upset that you think that way, especially since I'm offering a working solution.

What part is upsetting you?

@mattes Don't Worry, Be Happy 😃

@danilobuerger

Just because you are active now, shouldn't matter for the decision we have already taken.

You should be able to reflect on decisions made in the past and eventually come to a better decision. :-) Like I outlined above, I don't see a difference between what db-journey wants to achieve and what my latest efforts are already providing.
I think it would be great to work all together and provide a great solution for everyone looking to run migrations against databases. What do you want to accomplish with db-journey? How will it be different?

I think @gravis made the differences clear. I don't want the drivers to be in the same repository. On a personal note: I don't want to be a maintainer of somebody else's personal repository. I either work on my own or on organizational repositories as a maintainer.
You are welcome to join us here and work together with us on journey, consider it a fresh start.

Why do you want the drivers to be in the same repo and why wouldn't you want to contribute to mattes/migrate?

Why do you want the drivers to be in the same repo

I don't want the drivers to be in the same repository (probably what you meant to ask). Because:

Less noise
No dependency hell
Organizing issues where they belong

why wouldn't you want to contribute to mattes/migrate?

I didn't say that, I said I don't want to be a maintainer of somebody else's personal repository. Even if I had contributed to your repository, see https://github.com/mattes/migrate/issues/82. I asked the question on 15 Feb 2016. To this day there is no answer from you in this issue. I consider that rude and disrespectful. If I had taken the time to do a PR for anything, it would have been a waste of time. You wouldn't have looked at it for 10 more months.
I really don't understand why we are discussing this anyway. Forking is an integral part of open source culture. We were not happy with how you handled the management of the project, so we forked it. Why would you even care? It doesn't matter if there are 10 or 11 migration libraries for go out there.
As I said before, you are welcome to join us here and work with us as a group.

I understand your frustration. I think at this point there is no way back for you, as you already made a decision for yourself.
What I'm asking you, since you're asking for a fresh start, actually do a fresh start. Don't just copy the code over from migrate. For everything else, please make sure to add proper backlinks and ideally don't change the license. Maybe migrate can benefit from work done being here, too.

please make sure to add proper backlinks and ideally don't change the license.

As I mentioned above:

As a side note: One thing we haven't done yet, but should do, is proper attribution to your work and license.

I am certain we are going to fulfill the requirements of your license to the fullest.


why jakarta don't use jakarta.validation?

I got an error!
java.lang.module.FindException: Module validation.api not found, required by com.fasterxml.jackson.module.jsonSchema.jakarta

when I found jackson-module-jsonSchema-jakarta's module-info.class, It used  validation.api
module com.fasterxml.jackson.module.jsonSchema.jakarta {
    requires validation.api;
    requires com.fasterxml.jackson.annotation;
    requires com.fasterxml.jackson.core;
    requires com.fasterxml.jackson.databind;

    exports com.fasterxml.jackson.module.jsonSchema.jakarta;
    exports com.fasterxml.jackson.module.jsonSchema.jakarta.annotation;
    exports com.fasterxml.jackson.module.jsonSchema.jakarta.customProperties;
    exports com.fasterxml.jackson.module.jsonSchema.jakarta.factories;
    exports com.fasterxml.jackson.module.jsonSchema.jakarta.types;
    exports com.fasterxml.jackson.module.jsonSchema.jakarta.validation;
}

But I check your source code, used jakarta.validation.
Now, I have 2 question

why choice validation.api
how can fix my probrom?

thank you very much

about question1, I found #150

That module-info setting is probably an oversight. Based on https://github.com/jakartaee/validation/blob/main/src/main/java/module-info.java, it should probably be jakarta.validation.
Let me have a look.

@oldmanpushcart I have added #162. Would you be able to make this change and build jackson-module-jsonSchema for yourself to try the jar with the change?

Yes, I think this must have been copy-paste error by submitted of Jakarta version (and one code reviewer (me) did not catch).
#162 seems legit (and I will merge) but verification by @oldmanpushcart would be much appreciated.

@pjfanning I build master(2.19.0-SNAPSHOT) on my laptop, It's work's fine. Thank you very much~
@cowtowncoder verification pass. Hope we can see the feature in 2.18.3

Thank you for verifying, @oldmanpushcart .


Inconsistent explanation of how Bulk Profile Update API works

Issue in ./help/dev/before-implement/methods-to-get-data-into-target/bulk-profile-update-api.md
This doc explains that "The Bulk Profile Update API updates existing Target profiles only". This was true for v1 but not for v2 of the API. As per the Batch File section of this doc https://developers.adobetarget.com/api/#updating-profiles:
"If you are using Bulk Profile Update API v2, you need not specify all parameter values for each pcId. Profiles are created for any pcId or mbox3rdPartyId that is not found in Target. If you are using v1, profiles are not created for missing pcIds or mbox3rdPartyIds"

Thanks for your input, Alex. I have updated the doc accordingly.
https://experienceleague.adobe.com/docs/target-dev/developer/implementation/methods/bulk-profile-update-api.html?lang=en


Allow vendorizing of gems

I needed this fix in order to get up and running, so I upgraded to the latest appraisal. Not sure if this was being held back for a specific reason?
/cc @derekprior
Thanks!

Looks like I missed that this would cause an issue with Ruby 1.9.3. Was this why appraisal was restricted to version 1?

@imtayadeway I've had this same error with my build, looks like it was already on master.

@thiagoa funny seeing you here! :grin: Thanks for the info! I haven't had time to look into the failure but will try to soon.

@imtayadeway Yep, sorry for the out of the blue intervention. Actually, I saw a notification and thought my comment had something to add :)

Merged as a7d1da122dda9ceee256f94c661cd9cd4198acc6. Thanks!

:heart:


Add help page for each command

Similar to how the GitHub CLI is documented, where each subcommand is a header in the sidebar, and its subcommands are clickable links showing the sections Signature+Help (no header), Options, Examples and See also.
Implementation
In order to facilitate this, utils.commands.get_app_commands() needs to add support for retrieving the command signature as well as parameters and arguments. I'm not quite sure how to retrieve the complete signature of a command, as seen in command --help. Furthermore, the numpydoc docstring of each command must be parsed to extract the Examples and See also sections. Ideally, we do this with existing tools such as mkdocstrings-python.
Updating CommandSummary
We use models.CommandSummary to store information about commands, and this data structure should be expanded to contain the new categories suggested here: signature, options, examples, see_also.
https://github.com/pederhan/harbor-cli/blob/31327bd7b2f0933cf1cf57aab20a805913e8f2d0/harbor_cli/models.py#L12-L15
We should potentially also look into adding short_help, where help is the entire docstring description, while short_help is the first line of the docstring (or specified as short_help="<text>" in the command definition).
Tests
Ideally, we add some sort of test that ensures every command has the required sections (Help, Options, Examples) The section See also should probably be optional.

Implemented by #57.


MTSDK-11 Handle ReadOnly from SessionResponse.

As part of Conversation Disconnect feature the readOnly field was added to the ConfigureSession response on the Shyrka end. The purpose of this field is to indicate whether configured session allows further communication with an agent (readOnly=false) or it is allowed to only fetch conversation history to display to the client (readOnly=true). Note, that any attempt to send a message while readOnly=true will result in error response from Shyrka saying that communication is not allowed.

Parse readOnly field from SessionResponse.kt
Expose to the client the readOnly field as part of State.Configure.
Update Android and iOS Testbed application to include readOnly field.
Update unit tests to include readOnly field.
Provide KDoc that describes the usage of readOnly field.

Jenkins run a successful build.