set hover, press color to copy to clipboard icon

Details

set hover, press color to icon
add space before icon

Fixed Issues
$ https://github.com/Expensify/App/issues/16574
PROPOSAL: https://github.com/Expensify/App/issues/16574#issuecomment-1511157323
Tests
Same as QA step

[ ] Verify that no errors appear in the JS console

Offline tests
Same as QA step
QA Steps

Login any account
Open Settings > Workspaces > any workspace > Reimburse expenses
Verify that there's 4px space between email and copy icon
Hover or long press copy icon
Verify that icon color changes to white
Open Settings > Profile > Contact methods
Repeat the steps 3-5

[ ] 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 / Chrome
[x] iOS / native
[x] iOS / 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 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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 a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[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(themeColors.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 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.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://user-images.githubusercontent.com/108292595/234184693-2975d0c7-6025-4436-b47f-80e6db9a7d0b.mov

Mobile Web - Chrome
https://user-images.githubusercontent.com/108292595/234184660-400d3f6f-6e7e-406f-8fa4-4a21c5d09d3b.mov

Mobile Web - Safari
https://user-images.githubusercontent.com/108292595/234184619-645a1f70-1786-47a8-af38-fae58f1e0387.mov

Desktop
https://user-images.githubusercontent.com/108292595/234184549-4a34856a-2e0a-4c7f-9936-c825129cb675.mov

iOS
https://user-images.githubusercontent.com/108292595/234184484-3ee12907-98e4-4d51-8213-6c8239daa7ad.mov

Android
https://user-images.githubusercontent.com/108292595/234184376-3abc00ee-c8f7-4c55-918b-43a8e1a3a446.mov

NOTE: I am not able to test android because of this known issue

@robertjchen @aimane-chnaif One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

🚀 Deployed to staging by https://github.com/robertjchen in version: 1.3.6-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.6-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


GEOMESA-1421 Better handling of optional arguments for the Accumulo GeoMesa command line tools

+1

is this 1.2.7?

@jahhulbert-ccri don't think so - it's some precursor work to #1058

@Afterglow375 this ended up getting merged in as part of #1082 - sorry to not get it as a separate commit :/


bug: No/wrong modal closing animation from nested page

Type: bug
Ionic Version: 2.x
Platform: ios 9 browser
See this example:
http://plnkr.co/edit/kBxwyE?p=preview
What I've built:

Modal opens with Page 1
From modal's page 1 you navigate to modal's page 2
From That second modal page I try to close the modal again (Either with popToRoot() or ViewController.dismiss() )
=> In both cases there is NO animation (Chrome) or the wrong animation (Safari).

Expected:
The modal should close as it always does with the "modal-slide-out" animation.

I tried to configure the leavingOpts on the modal with:
    let modal = this.nav.getByIndex(1);
    console.log(modal);
    modal.setLeavingOpts({
      animation: "modal-slide-out",
      direction: "back",
      ev: undefined,
      keyboardClose: false
    });

    modal.dismiss();

But this throws an error:
browser_adapter.js:77 TypeError: Cannot read property 'getBoundingClientRect' of null
    at new ModalSlideOut (modal.js:237)

I somehow solved this by creating a "wrapper" component with a new navigation stack:
...
  openModal() {
    let modal = Modal.create(ModalNavigation);
    // Promise that is resolved when Modal is dismissed
    this.nav.present(modal);
  }
}

// Just a helper Wrapper component to create a new navigation stack for the modal
@Component({
  template: `<ion-nav [root]="root"></ion-nav>`
})
class ModalNavigation {
  root = ModalPage1;
}

and then I can just use this function in every modal page to close the modal:
closeModal() {
  // Get the Modal which is (hopefully) in the rootNav at index 1
  let modal = this.nav.rootNav.getByIndex(1);
  // Dismiss the Modal
  modal();
}

Example: http://run.plnkr.co/plunks/sb1PBa/
So if the ionic team thinks that this should be the intended way to do something like that, I'm okay with it and this issue can be closed.

Hello! Would you mind testing this issue with the latest nightly please? To install Ionic 2 nightly you can simply run npm install ionic-angular@nightly thanks!

@jgw96 Should I test my "workaround"/solution with the latest nightly or the attempts that I mentioned in my original post?

Hello @flavordaaave ! If you could test with the latest nightly using this.viewController.dismiss() to dismiss the modal, as shown in the docs here, that would be great (:

@jgw96 The issue is NOT about dismissing a "normal" modal but dismissing the modal from a nested page inside a modal (see my original issue: http://run.plnkr.co/plunks/kBxwyE/) so just calling this.viewController.dismiss() on the nested page will not close the modal but just navigate back to the Modal's first page.
I created a new plunk using ionic2@nightly and added the simple viewController.dismiss():
http://run.plnkr.co/plunks/izRYHQ/
(As expected this 3rd button just navigates back to the first page...)

Hello @flavordaaave , are you wanting the modal that you open the second page from to still be open after you close the second page? Or do you want to open the modal, push the second page onto the stack, user interacts with second page, user closes second page which then navigates back to the first page.

@jgw96 I wanted:

User opens modal
User navigates to second page INSIDE that modal
User can CLOSE the modal from the second page

As mentioned I already achieved this my creating a new navigation stack that is exclusively used inside the modal. SO you can see my plunk here to get an idea of what I wanted to achieve:
http://run.plnkr.co/plunks/sb1PBa/
I'm just not sure wether this is something that should be covered differently within ionic ;)

@flavordaaave It looks like my teammate is working on this, so i will discuss this with him and see what he has in mind. Thanks!

The best bet at this time is going to be passing the ViewController from the Nav page to the child pages either via a service or via NavParams.

constructor(private viewController:ViewController){
}

someFunction(){
   navController.push(MyFirstOrSecondPageInModal, this.viewController);
}

@danbucholtz This is not working either (see: http://run.plnkr.co/plunks/FuN9F8/ => 3rd button on second page)
There I also get the error:
Cannot read property 'getBoundingClientRect' of null

So far the only way to achieve the desired behavior is to create a new NavStack for the Modal itself:
http://run.plnkr.co/plunks/sb1PBa/

Hi @flavordaaave,
Can you explain what you're trying to do in detail?  I am not sure I understand.  Typically if you want to navigate pages within the modal, you'll want to create a new ion-nav.
This code in our end to end tests should show you approximately how to do that.
https://github.com/driftyco/ionic/blob/2.0/src/components/modal/test/basic/index.ts#L44
I can help further once I better understand the use case.
Thanks,
Dan

@danbucholtz See my comment here: https://github.com/driftyco/ionic/issues/6924#issuecomment-226516952 that is what I wanted to achieve. In this comment I've also added another plunkr (https://plnkr.co/edit/sb1PBa?p=preview) where I already present a component with an ion-nav.
As mentioned earlier I was just not sure wether this is the correct way because closing the modal from the second page inside the modal seemed quite "ugly":
  closeModal() {
    // Get the Modal which is (hopefully) in the rootNav at index 1
    let modal = this.nav.rootNav.getByIndex(1);
    // Dismiss the Modal
    modal.dismiss();
  }

But thanks to your end to end test example you showed me that I could just close the modal using:
this.nav.rootNav.pop();

So this looks quite nice and clean ;)

w00t, Glad to help!
Thanks,
Dan

@danbucholtz Unfortunately after upgrading to beta-11 this.nav.rootNav.pop(); does not work anymore...
Is there a recommended solution to dismiss the modal from a second (or third) page that has been pushed inside the modal?

If you wrap modal content in it's own ion-nav, you can dismiss modals using:
public onClose(): void {
	// Get modal page's NavController
	let navController: NavController = this._navController;
	// Get modal page's parent NavController (if it has its own navigation stack)
	if (navController.parent) {
		navController = navController.parent;
	}
	navController.first().dismiss();
}

Is this the desired / best way to handle this scenario?


git ship: shipping a PR from a forked repo (community contribution)

As a repo maintainer
I want to be able to ship pull requests sent to me from forked repos by people without write access
So that I can easily manage contributions from my developer ecosystem.

git ship forked-account/repo-name ships a PR from the given repo
it is assumed that the forked account is on the same hosting service as the main repo

@kevgo do you think this is still needed? With github's ability to now squash merge pull requests, I no longer have a need for this.

Agreed. Closing.


[BUG] - Autocomplete Docs - Incorrect mentions for disableSelectorIconRotation

NextUI Version
2.2.9
Describe the bug
On the page, the note mentions disableSelectionIconRotation.
However, the correct attribute is disableSelectorIconRotation as in the code example above the note, as well as in the API documentation of Autocomplete Props.
tl;dr Selection vs Selector.
Your Example Website or App
No response
Steps to Reproduce the Bug or Issue
Go to this page and Custom Selector Icon section.
Expected behavior
The note needs to have the correct attribute referenced.
Screenshots or Videos
No response
Operating System Version
Windows
Browser
Firefox

A similar issue was found on Select's documentation while fixing this one. See the note below this section. Will fix this too.


Is there already a discussion channel / forum / maillist?

Expected Behavior
I've started migrating a mid-size application to get some hands on experience. Out of that trial I have some questions. Is there already a place (forum, group, slack or irc channel) for such questions and discussions?
/Juergen
Actual Behavior
Obevo Version where this issue was observed
Steps to reproduce the behavior

Hi, we have not yet setup a discussion channel, but it would be a good idea.
For now, feel free to ask any questions here.

Fyi, I just realized that you had posted on the InfoQ article as well. I've replied there also so that the conversation can be completed on that site too.


[language] Add staging to the stdlib and scripts.

This PR stages the stdlib and scripts. I'm not sure if we should keep the env variable to control whether or not a fresh stdlib/scripts are used. I would appreciate feedback especially on this part. High level is:

The IR functional tests use the staged version of the stdlib
The Move functional tests use the non-staged version of the stdlib
The e2e tests by default use a staged version of the scripts. But this can be controlled with the "MOVE_NO_STAGED_STDLIB" environment variable.

Note that this is stacked on the move to Move for the stdlib and scripts. So only look at/review the top commit on this PR.

:umbrella: The latest upstream changes (presumably 247ea07c1da4fb6ff31c7412a2d3b4db7ff334e3) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r=bob-wilson

:pushpin: Commit a8995d7 has been approved by bob-wilson

:hourglass: Testing commit a8995d7dcd46944447078823e5036414a0593a73 with merge f17ed5159971c4410f44e12fac7af1a58cf28ee4...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: bob-wilson
Pushing f17ed5159971c4410f44e12fac7af1a58cf28ee4 to master...


Task 1: Improve formatting using black

Task 1: Improve formatting using black

I am very sorry for the mistake; it was my fault.


Some suggestions to make it the #1 IM app

Disclaimer :) I am not a developer and don't do any type of coding. Point is, I have no idea how to carry out these ideas, how difficult they may be, or if they're even possible. Since so, I greatly appreciate developers, you guys!

add the ability to use various types pf accounts, in addition to Google and have them active simultaneously. Such as Facebook, Yahoo messenger, Twitter. Those modules are pretty common in many IM apps, so I assume that it should be quite easy to integrate.

making the app lighter (as in less resource hungry). It uses a substantial amount of RAM. I've observed this on multiple Linux machines. Don't remember what I saw on Windows machines.

Thanks for the app. It is currently the only IM app that can be used with Google's heightened security settings.
I've used many IM apps, and tested many more. I really think that if these two will be addressed, Yakyak will outrun all others.

imoh, I think keeping it as hangouts only is a good idea.
It would be great to see minimise to tray, and only display a tray icon(not on the task bar) in the next release.

This requires a "client abstraction" to support multiple clients. It's related to another request we had to enable using multiple Google Hangout accounts which is easier and would probably have precedence. We are currently more concentrated on bugs and less disruptive changes. I can see a strong case for multiple hangout accounts. I am not sure we should try to be the next multiuser chat application as that forces you to abstract lots of peculiarities of each chat provider that are difficult to make usable and coherent.
Of course if somehow, someday, things turn into money then everything is possible. For the moment this is a nice side project therefore there are some limits to what we can do.

The app runs on Electron, which is a complete browser environment based on Chrome. I expect it to use as much memory as Chrome. Our implementation sits on top of that and it's a very simple application. It's possible that we have some memory leak on our application that makes memory grow over time. In this case we need a proper bug report with steps on how to reproduce. If you are talking about memory that is used right at application start then i am afraid there is not much we can do. I am sure Electron guys will optimize things over time as much as possible. That being said thanks for your feedback we will take a look to memory consumption too.

Well, I'll have to trust you on that. I ain't a developer, and I appreciate your work. I do still enjoy yakyak, thank you.


Chargeable class

A couple of changes in this PR:

make it possible to define your own Charge class (that means that I've namespaced the existing Charge-class -> Pay::Charge). Reason for this, is so you can define your own charge class with your own receipt and filename method.
added a check in Pay::Stripe::ChargeSucceeded to check that the charge has a receipt method before attempting to mail a receipt email.

This fixes some bugs we're currently running in to, where charge.receipt.render errors in the mailer - as well as charge.filename
cc: @excid3

This brought a couple things to mind:

I had considered adding receipts to this as a default feature. Thoughts? We'd want a way to override it, but maybe if Receipts gem was installed, it could include the receipt method?

I like the idea of namespacing the gem's models regardless that way we don't interfere with anything in your app (like an email Subscription model or something). We probably don't need the table name customization since we can just move the tables to pay_charges and pay_subscriptions.

What if we modified Pay::Charge to be like:
class Pay::Charge < ApplicationRecord
  include Pay::Chargeable

  scope :sorted, ->{ order(created_at: :desc) }
  default_scope ->{ sorted }

  def filename
    "receipt-#{created_at.strftime("%Y-%m-%d")}.pdf"
  end
end

And the Chargeable model optionally includes something like:

  def receipt
    Receipts::Receipt.new(
      id: id,
      product: Jumpstart.config.application_name,
      company: {
        name: Jumpstart.config.business_name,
        address: Jumpstart.config.business_address,
        email: Jumpstart.config.support_email,
        #logo: Rails.root.join("app/assets/images/logo.png")
      },
      line_items: line_items,
    )
  end

  def line_items
    line_items = [
      ["Date",           created_at.to_s],
      ["Account Billed", "#{owner.name} (#{owner.email})"],
      ["Product",        Jumpstart.config.application_name],
      ["Amount",         ActionController::Base.helpers.number_to_currency(amount / 100.0)],
      ["Charged to",     "#{card_type} (**** **** **** #{card_last4})"],
    ]
    line_items << ["Additional Info", owner.extra_billing_info] if owner.extra_billing_info?
    line_items
  end

I'm fine with that idea. I do think we should make another check, to see if the user has added the required information from Pay.config as well (name, address support email) - and only send out a receipt if they had. There's too much stuff that can go wrong otherwise, thoughts?

..or even break out the send_emails bool to three new ones: send_charge_succeeded_email, send_charge_refunded_email and send_subscription_renewing_email

@excid3 might taking another look? I think I addressed your comments.


Support registering supertype and subtype resource handlers

Reviewer checklist

[ ] Ensure relevant issues are linked (description should include text like "Fixes #")
[ ] Ensure any appropriate documentation has been added or amended

Coverage increased (+1.06%) to 99.517% when pulling 94538078c7d3eb654e875868c939aaeb1abee578 on sub_super_resource_handlers into a4e24ec46f29c8075fd030adf8278e0c11b3e075 on main.


Tweak some settings for better Prometheus metrics access.

These are essentially the changes documented in kube-prometheus-on-kubeadm.md. They enable Prometheus running in Kubernetes to scrape container-level metrics from each Kubelet (authenticating with a ServiceAccount token) ~and to scrape metrics from kube-controller-manager and kube-scheduler (anonymously)~.
~These have some tradeoffs that we should discuss. The kube-controller-manager and kube-scheduler --address changes mean that they will expose metrics over these endpoints to the whole cluster.~
~These metrics aren't super sensitive but they do give away some context about where the cluster is running, the versions of the components, and some high level picture of what's running in the cluster. I think this is acceptable for most use cases where the Quick Start is appropriate today.~
~There is recent work upstream (https://github.com/kubernetes/kubernetes/pull/59582) that will add authentication options for these endpoints.~
Update
I dropped the --address changes and left only the Kubelet authentication flag change.

@detiber updated, PTAL.


Duo3DConfig.h

can not find
Duo3DConfig.h

can not find
Duo3DConfig.h

@447425299 Try #3 and see whether it works for you.

This worked for me.

PR #3 does not seem to be the right fix.
The full error I got while simply following the duo3d-driver install guide at http://wiki.ros.org/duo3d-driver is:
Errors     << duo3d_driver:make /home/dinesh/Desktop/btb/ws/logs/duo3d_driver/build.make.000.log
catkin_generated/env_cached.sh: 16: exec: /home/dinesh/Desktop/btb/ws/src/duo3d_driver/cfg/Duo3D.cfg: Permission denied
make[2]: *** [/home/dinesh/Desktop/btb/ws/devel/.private/duo3d_driver/include/duo3d_driver/Duo3DConfig.h] Error 126
make[1]: *** [CMakeFiles/duo3d_driver_gencfg.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/home/dinesh/Desktop/btb/ws/src/duo3d_driver/src/duo3d_driver.cpp:36:38: fatal error: duo3d_driver/Duo3DConfig.h: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/duo3d_driver.dir/src/duo3d_driver.cpp.o] Error 1
make[1]: *** [CMakeFiles/duo3d_driver.dir/all] Error 2
make: *** [all] Error 2

Notice the exec: /home/dinesh/Desktop/btb/ws/src/duo3d_driver/cfg/Duo3D.cfg: Permission denied error mentioned before the Duo3DConfig.h one.
chmod +x /home/dinesh/Desktop/btb/ws/src/duo3d_driver/cfg/Duo3D.cfg and rebuilding fixed it.
The root cause seems to be missing file permissions in the zip file. The executable flag has to be manually set.

PR #3 does not seem to be the right fix.
The full error I got while simply following the duo3d-driver install guide at http://wiki.ros.org/duo3d-driver is:
Errors     << duo3d_driver:make /home/dinesh/Desktop/btb/ws/logs/duo3d_driver/build.make.000.log
catkin_generated/env_cached.sh: 16: exec: /home/dinesh/Desktop/btb/ws/src/duo3d_driver/cfg/Duo3D.cfg: Permission denied
make[2]: *** [/home/dinesh/Desktop/btb/ws/devel/.private/duo3d_driver/include/duo3d_driver/Duo3DConfig.h] Error 126
make[1]: *** [CMakeFiles/duo3d_driver_gencfg.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/home/dinesh/Desktop/btb/ws/src/duo3d_driver/src/duo3d_driver.cpp:36:38: fatal error: duo3d_driver/Duo3DConfig.h: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/duo3d_driver.dir/src/duo3d_driver.cpp.o] Error 1
make[1]: *** [CMakeFiles/duo3d_driver.dir/all] Error 2
make: *** [all] Error 2
Notice the exec: /home/dinesh/Desktop/btb/ws/src/duo3d_driver/cfg/Duo3D.cfg: Permission denied error mentioned before the Duo3DConfig.h one.
chmod +x /home/dinesh/Desktop/btb/ws/src/duo3d_driver/cfg/Duo3D.cfg and rebuilding fixed it.
The root cause seems to be missing file permissions in the zip file. The executable flag has to be manually set.

You are talking about a different problem, which would have been avoided if you follow the instructions on https://github.com/duo3d/duo3d_driver. More specifically, the wiki http://wiki.ros.org/duo3d-driver is indeed incomplete, and we should execute the command chmod a+x cfg/Duo3D.cfg. This solves the problem you mentioned.
My fix was specific to the problem of "can not find Duo3DConfig.h", which was due to incorrect CMakeLists.txt and therefore the dynamic reconfiguration for ROS failed. This assumes that you have fixed the permission problem in the first place.


WholeHog Ult Timer

Created by: cstvt
Wholehog lasts 6 seconds instead of ow2's 8

Created by: cstvt
im suprised there isnt somethign in the workshop like there is for junkrat tire

mentioned in merge request ow1_emulator_backup!267

moved from ow1_emulator_backup#566

Created by: MaxwellJung
I think one of the devs tried to do this but couldn't figure it out


[Next Branch] Yae Doesn't Show Up in Basic Character Search

From Kurt:
https://discord.com/channels/845087716541595668/869210750596554772/943637052581355590

done with latest commit


datapackage viewer will fail to render CSV preview when header name has '/' character

https://raw.githubusercontent.com/os-data/boost-armenia/0ebc60aa6b24d3b63044035c58ca2ca59667a26e/datapackage.json
http://data.okfn.org/tools/view?url=https%3A%2F%2Fraw.githubusercontent.com%2Fos-data%2Fboost-armenia%2F0ebc60aa6b24d3b63044035c58ca2ca59667a26e%2Fdatapackage.json
Console yields:
Error: Syntax error, unrecognized expression: Econ/func

This issue was moved to okfn/datapackage-render-js#12


The page of "Flutter Build web" cannot be scrolled in iOS 18.2 browsers

Steps to reproduce
Develop a sliding list using native Flutter components
Flutter Build web and publish it on the server
Open the URL using a browser (Safari/Google Chrome) on iOS 18.2 devices
The webpage cannot scroll
Expected results
The webpage can scroll
Actual results
The webpage cannot scroll
Code sample
Code sample
[Paste your code here]

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
flutter 3.12.0

I had the same problem. I couldn't swipe up or down or left or right on my mobile browser

Hi @Morn-Runjia, @cuijiatong1  the versions of flutter you're both using is outdated by over a year and are no longer supported.
Kindly upgrade to the latest version of flutter stable (3.27.0). I just tested and it works just fine.
I'll be closing this since the version of flutter you're using is no longer supported.
If you experience this after upgrading to the latest stable version, kindly leave a comment below and I will reopen this.
Thank you


Users can set their own dirty symbol by setting the environment variable 'dirtysymb'. If they leave it unset, then the script will default to the *.

:+1:
was just looking at how to do this myself. This would be awesome if it got merged :)


Verify issue

https://github.com/radzenhq/radzen-blazor/issues/1166
@enchev, Hi, I was testing the way using the DateRender event, and it's not a natural solution for just to know when a year or a month has changed, my use case doesn't need to look over all days in the calendar view, my use case just need to know when a month or year has changed

Hey @LeinerViloria,
You can use the event as I already suggested you and check the date year and month properties. Please use our forum to post questions in the future.


"pre" option not using zsh options, alias, configuration (running as sh)

I'm trying to pre option to set a shell option, source a file, and run an alias to launch sublime text (defined under Prezto framework). (My default shell is /bin/zsh with Prezto shell framework)
Though tmux opens up, it doesn't execute the commands and I'm faced with the following error on exiting tmux:
> mux start auv-core
sh: 13: setopt: not found
sh: 13: source: not found
sh: 13: stt: not found
arranging in: main-vertical
arranging in: main-vertical
[exited]

Here is the echo $SHELL output to confirm I'm using zsh:
> echo $SHELL
/bin/zsh

My project configuration is as follows:
# ~/.tmuxinator/auv-core.yml

name: auv-core
root: ~/

pre:
    - setopt clobber
    - source ~/projects/auv/devel/setup.zsh
    - stt

windows:
  - editor:
      layout: main-vertical
      panes:
        - vim
        - cd

where setopt is zsh for shell options, and stt is an alias to open Sublime Text as defined under Prezto.

Can you gist the output of mux debug auv-core.

Please find the gist here.

Could you do mux doctor and in an irb session exec "echo $SHELL".

Output of mux doctor :
> mux doctor
Checking if tmux is installed ==> Yes
Checking if $EDITOR is set ==> Yes
Checking if $SHELL is set ==> Yes

Output of exec "echo $SHELL" in an irb session :
irb(main):001:0> exec "echo $SHELL"
/bin/zsh

Because these are built in shell commands I'm not sure if we can support them as tmuxinator essentially wraps all commands in a shell script.
Essentially your project file becomes this:
#!/usr/local/bin/zsh

# Clear rbenv variables before starting tmux
unset RBENV_VERSION
unset RBENV_DIR

tmux start-server\; has-session -t auv-core 2>/dev/null

if [ "$?" -eq 1 ]; then
  cd /Users/Soliah

  # Run pre command.
  setopt clobber; source ~/projects/auv/devel/setup.zsh; stt

  # Create the session and the first window.
  TMUX= tmux new-session -d -s auv-core -n editor -c /Users/Soliah

  # Create other windows.

  # Window "editor"

  tmux send-keys -t auv-core:1.1 '' C-m
  tmux send-keys -t auv-core:1.1 vim C-m

  tmux splitw -c /Users/Soliah -t auv-core:1
  tmux select-layout -t auv-core:1 main-vertical

  tmux send-keys -t auv-core:1.2 '' C-m
  tmux send-keys -t auv-core:1.2 cd C-m

  tmux select-layout -t auv-core:1 main-vertical

  tmux select-pane -t auv-core:1.1

  tmux select-window -t 1
fi

if [ -z "$TMUX" ]; then
  tmux -u attach-session -t auv-core
else
  tmux -u switch-client -t auv-core
fi

which gets executed. Things like setopt, source and alias are all built in shell commands and don't make sense in a shell script.
Your only option would be to put them in pre_window so send-keys is used in each window / pane.


How can I send out a array?

Hello,
one of our server's interface need the params that are instance of Array.
However,when I want to send out the data of Array,the resource parse it to a object and then stringify it automatically.
So how can i send out the data as an array?
thanks for your answer!

Hello.
How do you send the data? POST or GET.
Could you please give me an example of the data, how it sending now and how it should be expected?

Post or put.
For example,the data is just like
 [     {startTime:'2016-11-15'},     {startTime:'2016-11-15'} ]
My expected is just the same as above that send out like an array,but the current data that send out is just like:
{"0":{"startTime":"2016-11-15"},"1":{"startTime":"2016-11-15"}}

I have made some fixes.
Could you please update 1.5.4 version and test it for me?
Thanks for the issue.

It is OK.
Thank you~


I cant for the life of me figure out why i keep getting this error

I cant figure out why the luas dont show up, i tried moving them in their own folder, out side a folder i cant figure it out

You can use them from any folder actually.


Feature/diagnostics

add the full diagnostics

Hi @jv-costa thank you for this PR.  However, this doesn't apply to the general Clearpath platforms.  It looks like it is only targeting the Jackal J100 and removes the default diagnostics.  I am going to close it since it doesn't apply as is.


add option to specify nodes

Editing the configuration files manually  is a bit of a pain, and now
more so that we have to add each node twice. Add an option in
start-all.sh to do it automatically given nodes passed in the command
line.
Signed-off-by: Glauber Costa<EMAIL_ADDRESS>

Sorry: this breaks the datadir option by accident.
I am resending and will close this PR

Closing this as #138 gives similar functionality


[Dubbo-6519] fix issue:#6519 http protocol genericService.$invokeAsync ClassCastException

What is the purpose of the change
fix issue:#6519 http protocol genericService.$invokeAsync ClassCastException
Brief changelog
dubbo-rpc-http/org.apache.dubbo.rpc.protocol.http.filter.HttpAsyncFilter
dubbo-rpc-http/org.apache.dubbo.rpc.protocol.http.HttpProtocolTest.testGenericAsyncInvoke
Verifying this change
@Test
    public void testGenericAsyncInvoke() throws InterruptedException, ExecutionException {
        HttpServiceImpl server = new HttpServiceImpl();
        Assertions.assertFalse(server.isCalled());
        ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
        Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
        int port = NetUtils.getAvailablePort();
        URL url = URL.valueOf("http://<IP_ADDRESS>:" + port + "/" + HttpService.class.getName() + "?release=2.7.0");
        Exporter<HttpService> exporter = protocol.export(proxyFactory.getInvoker(server, HttpService.class, url));
        Invoker<GenericService> invoker = protocol.refer(GenericService.class, url);
        GenericService client = proxyFactory.getProxy(invoker, true);
        CompletableFuture future = client.$invokeAsync("sayHello", new String[]{"java.lang.String"}, new Object[]{"haha"});
        Assertions.assertTrue(server.isCalled());
        Assertions.assertEquals("Hello, haha", future.get());
        invoker.destroy();
        exporter.unexport();
    }

Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[x] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

#6519

Most probably, other protocols that are integrated with Dubbo like HTTP have the same issue. Considering fixing it in AbstractProxyProtocol would be a more generalized solution.

I have checked and it's mainly because of the CompletableFuture signature. All third-party protocols integrated currently don't support the method of CompletableFuture signature.
I highly recommend using $invoke method directly instead of adding a new  Filter to do this. Or I don't think it's necessary  to add this HTTP Filter as a general feature.

protected <T> T doRefer(final Class<T> serviceType, URL url) throws RpcException {
        String generic = url.getParameter("generic");
        boolean isGeneric = ProtocolUtils.isGeneric(generic) || serviceType.equals(GenericService.class);
        JsonProxyFactoryBean jsonProxyFactoryBean = new JsonProxyFactoryBean();
        JsonRpcProxyFactoryBean jsonRpcProxyFactoryBean = new JsonRpcProxyFactoryBean(jsonProxyFactoryBean);
        jsonRpcProxyFactoryBean.setRemoteInvocationFactory((methodInvocation) -> {
            RemoteInvocation invocation = new JsonRemoteInvocation(methodInvocation);
            if (isGeneric) {
                invocation.addAttribute("generic", generic);
            }

            return invocation;
        });
        String key = url.setProtocol("http").toIdentityString();
        if (isGeneric) {
            key = key + "/" + "generic";
        }

        jsonRpcProxyFactoryBean.setServiceUrl(key);
        jsonRpcProxyFactoryBean.setServiceInterface(serviceType);
        jsonProxyFactoryBean.afterPropertiesSet();
        return jsonProxyFactoryBean.getObject();
    }

It's mainly because this original proxy doesn't support methods of CompletableFuture  signature.


VarCouldBeVal reported on private lateinit var

Steps to Reproduce
class A {
    private lateinit var label: JLabel
}

Context
Per https://github.com/detekt/detekt/pull/4664#issuecomment-1086835405, I'm not sure our use-case is mainstream enough to warrant a change in detekt, but I'd like to bring it up as a datapoint anyways in case there there is additional discussion in the future.
As part of my work I develop plugins for JetBrains IDEs.
We have a number of older Kotlin source files backing visual forms designed using the JetBrains GUI Designer. I'm fuzzy on all the details, but how this generally works is that there's instrumentation at compile time that injects constructors and all the necessary method calls needed to setup the Swing components correctly.
For example, the code snippet above would result in decompiled bytecode that might look like the following:
class A {
    private lateinit var label: JLabel

    private fun `$$$setupUI$$$`() {
        label = JLabel("some label text")
        label.setIcon(Icon("and maybe we have a /path/to/icon declared here too"))
    }

    init {
        `$$$setupUI$$$`()
    }
}

Obviously since detekt acts on source code and not bytecode, it can't know that the fields actually end up initialized.
The VarCouldBeVal rule is still very useful for us, so as a workaround to this regression we'd likely either mark the ~60 or so instances in our codebase with an annotation or throw it in a baseline file and call it a day.
Your Environment

Version of detekt used: 1.20.0
Link to your project (if it's a public repository): https://github.com/aws/aws-toolkit-jetbrains

I'm getting the same issue

Though I feel like this is intentional based on the conversation here: https://github.com/detekt/detekt/pull/4664#pullrequestreview-929354422

Same issue in simplest test class:
internal class LoaderTest {

    private lateinit var wireMockServer: WireMockServer

    // test methods there
}

Do those classes have any type of difference from any other? An annotation, an interface, a name pattern... Something?

In my case, the only difference is the presence of a .form file with the same name of the class.

I don't like the idea to just ignore lateinit because there could be false negatives. It seems a very broad suppression.
But if there is not other way to suppres those we could add a flag ignoreLateinitVar. false by default. Do you have the time to implement it?

I don't like the idea to just ignore lateinit because there could be false negatives. It seems a very broad suppression.

Actually, I can't imagine such real false negatives:
There is no such thing as lateinit val (unfortunately). Lateinit by it mining - 'I can't initialize this now and do it somehow later'. 90% of our lateinit usages it is some kind of dependency injection and other 'magic'. So it was all hit by this false positive.
One potentially usefull case:
class C {
  private lateinit var a: String
    init {
        a = "1"
    }
}

But there the problem is not var usage but lateinit usage which is checked by the special rule LateinitUsage.
So because there is no lateinit val I can see value of this rule for lateinit case. Anyway ignoreLateinitVar is also OK.

I agree with @vladimirfx, I can't see any use case for lateinit var to be intelligently convertible to a val, its use is explicitly for cases where something can't reasonably be known as a val at compile-time. If anything, ignoreLateinitVar should be true by default.

A lot of android devs use lateinit var on Activities to set properties at onCreate. Later they can refactor its code and remove the set. This rule should find that type of issues. I imagine that, in general, this rule finds issues related with refactors and no with new code.
If a project uses a library that forces you to use lateinit without setters it's a one time configuration. But, if you don't use such a library, you will never change that configuration to true, there are far too much configurations on detekt.
For that reason I think that false is safer as default value.

The only time I ever see it used is with Dagger member injection. What other cases have you seen?

The use cases that I usually see are like this:
private lateinit var itemId: String

fun onCreate(...) {
  itemId = intent.getExtra(...)
}

I agree that that usage of lateinit isn't good but that kind of things happend. I usually have LateinitUsage enabled because of this.
And, for this rule, I think that it's better to add ignoreAnnotated: ['Inject']  than enable ignoreLateinitVar. We added it because there are libraries that don't give you other option but I think that there are not that much.


There is a problem in choosing sound_card.

 try:
        if subprocess.check_output('amixer | grep PCM'):
            sound_card = "PCM"
    except:
        sound_card = "Master"

the line "if subprocess.check_output('amixer | grep PCM'):¨  should be modified to:
if subprocess.check_output('amixer | grep PCM',shell='true'):
otherwise: it will choose Master but not PCM in my raspberry pi.

Thanks very much! I will update in next version.


TypeScript Quick Start Tutorial snippet change

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

[ ] Is there an existing issue for this PR?
[x] Have the files been linted and formatted?

What docs page needs to be fixed?

Section: Tutorials
Page: TypeScript Quick Start

What is the problem?
The app/store.ts code snippet in the TypeScript Quick Start Tutorial should be updated to include the export keyword for the store constant, as demonstrated in the full example hosted in CodeSandbox within the same page and the snippet for the same file shown in the Code Quality > Usage with TypeScript > Define Root State and Dispatch Types page.
What changes does this PR make to fix the problem?
This PR adds the export keyword to the store constant declaration in the app/store.ts file snippet, aligning with the implementation in the CodeSandbox example and other docs.

Thanks!


Finish Refactor ActionTypes

Pull Request Test Coverage Report for Build 5032

169 of 178 (94.94%)  changed or added relevant lines in 18 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 28.851%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/commons/controlBar/ChapterSelect.tsx
0
1
0.0%

src/features/sourcecast/SourcecastActions.ts
8
9
88.89%

src/pages/academy/subcomponents/AcademyDefaultChapterComponent.tsx
0
1
0.0%

src/features/sourcereel/SourcereelActions.ts
9
11
81.82%

src/commons/workspace/WorkspaceActions.ts
35
39
89.74%

Totals

Change from base Build 5030:
0.03%

Covered Lines:
3805

Relevant Lines:
11728

💛  - Coveralls


sniffer: improve handling of tcpdump termination

Let's improve the handling of tcpdump termination by the Sniff utility in two main directions:

Don't return an error if tcpdump successfully exited before we determined it was ready. This can happen when running in sanity mode, as tcpdump exits after capturing a single packet matching the filter. Fixes the Failed to execute tcpdump: %!w(<nil>)' flake.

Explicitly assert that tcpdump didn't terminate in advance when running in assert mode, as otherwise we may have missed packets.

AKS (BYOCNI) failure is unrelated. I'm stopping pressing the re-run button after hitting flakes five times in a row :sob:


Using UTC everywhere?

I am attempting to pass UTC values everywhere and running into a snag. I've create a plnkr that demonstrates the issue, but it basically boils down to local time being used to display in the selector. So if I have Jan 1, 1970 12:00AM, since I'm in MST, it's displayed as December 31st, 1969 2:00PM.
I could get it to display as I wanted, but then when a value is selected, it's "UTC" is actually adjusted to local time, because it thought it was selecting a local time. Is there someway around this?
Thanks for any input and thanks for the great component!
http://plnkr.co/edit/sfdSUz14jxVUDuroiiYe?p=preview

@dalelotts any thoughts on this?

I found the problem for this:
In
function setTime(milliseconds){
var tempDate = new Date(milliseconds);
        var newDate = new Date(tempDate.getUTCFullYear(), tempDate.getUTCMonth(), tempDate.getUTCDate(), tempDate.getUTCHours(), tempDate.getUTCMinutes(), tempDate.getUTCSeconds(), tempDate.getUTCMilliseconds());
...

We take the time that was selected by the user, and shove it in a "Date" Object.  So now we have a "Date" object with a timestamp in UTC that is falsely seen as local time. We then convert it to UTC... See what's happening?
If you are absolutely certain that everything will be in UTC on your site, you can keep only:
var tempDate = new Date(milliseconds);
but that is probably unlikely. I haven't implemented a solution yet, but it might be a good idea to be able to pass a time zone to the directive so it's a bit smarter.
Let me know if you have any suggestions for a better fix.

I found a fix for this problem, but my fix only works with moment-timezone (http://momentjs.com/timezone/)
moment-timezone has a cool feature that allows moment object to be instantiated in a specific timezone. You know when you call moment() and it returns a moment object in the local time zone? well by calling moment.tz.setDefault("someTimeZone") every time you create a moment object it will be created in "someTimeZone" in my case, I pass "Etc/UTC" so everything is in UTC.
then make this change
function setTime(milliseconds){

var newDate = moment(milliseconds);
switch(...)
...

moment is then going to take return a moment object in the timezone that you chose. I haven't tested it fully, but it seems to be working with most of the features I have.
I hope this helps, and again if you find a better or cleaner solution let me know!

@DrorOzgaon Thanks for looking at this! My thought was to use moment.utc (without moment-timezone) to get the date, much as you did above. That obviously won't work for other timezones though, so your solution is probably more versatile as a holistic fix.

@cthrax I deleted my comments because I was going to write a bit more about my findings. Using moment.utc will indeed work for you. I'm going to write a fix for this tomorrow and make a PR.
Cheers

That's wonderful! Thanks a lot!

For anyone interested, here is my previous comment and possible solutions:
I found the problem for this:
In
function setTime(milliseconds){
var tempDate = new Date(milliseconds);
        var newDate = new Date(tempDate.getUTCFullYear(), tempDate.getUTCMonth(), tempDate.getUTCDate(), tempDate.getUTCHours(), tempDate.getUTCMinutes(), tempDate.getUTCSeconds(), tempDate.getUTCMilliseconds());
...

We take the time that was selected by the user, and shove it in a "Date" Object.  So now we have a "Date" object with a timestamp in UTC that is falsely seen as local time. We then convert it to UTC... See what's happening?
Solution 1 (Requires entire app to be in UTC, always):

If you are absolutely certain that everything will be in UTC on your site, you can keep only:
var newDate = new Date(milliseconds);

Solution 2 (Requires moment-timezone):

I found a fix for this problem, but my fix only works with moment-timezone (http://momentjs.com/timezone/)
moment-timezone has a cool feature that allows moment object to be instantiated in a specific timezone. You know when you call moment() and it returns a moment object in the local time zone? well by calling moment.tz.setDefault("someTimeZone") every time you create a moment object it will be created in "someTimeZone" in my case, I pass "Etc/UTC" so everything is in UTC.
then make this change
function setTime(milliseconds){

var newDate = moment(milliseconds);
switch(...)
...

Solution 3 (Create a new configuration.modelType and handle your specific case):
case 'milliseconds':
            newDate = milliseconds;
            break;
case 'moment-timezone'
            //Do whatever you need
            break;

I hope this helps someone, maybe I'll create a PR this weekend.

Please let me know if the changes in 1.1.0 do not work for this use case.


Add Spanish translations

Pull Request Summary
Issue: Spanish Translations
Description: This pull request addresses the issue where some blocks, descriptions, and tooltips were not translated into Spanish, resulting in mixed language content when the language was set to Spanish.
Changes Made:

Modified the Spanish JSON file (robMsg/json/es.json) to provide translations for missing blocks, descriptions, and tooltips.

Additional Information:

I saw that recently labels were added for "sensor values in simulation". These changes are associated with the problem (Sprachen-Mix #1465).
Translations for the new labels were included to maintain consistency.
Added translations for the new labels "SIM_VALUES_SENSOR," "SIM_VALUES_SYSTEM," "SIM_VALUES_TIMER," and "SIM_VALUES_VARIABLE."

Definition of Done

The translations have been reviewed and validated.
Local testing has been performed to ensure the changes work as expected.

Future Work

If the translations provided in this pull request are accepted and merged, I can also add the Portuguese translations (work already in progress).

accepted in 63bc4be96b2e60d9262e27e2b310cedd8b4edc37


Naive semantic breaks

I was keen to try out your semantic line breaking, and see it is rather naive. Of course, it would be impossible to do this perfectly, but I wondered if this was your intention.
You might be "surprised how 'easy'" things "can't" be [see @Skud2009olm,
pp. 33-35; also @Shirley2010ht, ch. 1]. But then there were a number of
newspapers articles [@LaVallee2009o1w; @Cohen2011dgg]. However, Mary
Richard Beard's [-@BeardEtal1977seb] analysis of bias proved all too
true. But then @BlumEtal2008cpg [p. 33] says blah. The *Science* article
[@WoolleyEtal2010eci] is great. ^[What about what @BlumEtal2008cpg
said?]

becomes this:
You might be "surprised how 'easy'" things "can't" be [see @Skud2009olm,
pp. 33-35; also @Shirley2010ht,
ch.
1].
But then there were a number of newspapers articles [@LaVallee2009o1w; @Cohen2011dgg]. However,
Mary Richard Beard's [-@BeardEtal1977seb] analysis of bias proved all too true.
But then @BlumEtal2008cpg [p.
33] says blah.
The *Science* article [@WoolleyEtal2010eci] is great.
^[What about what @BlumEtal2008cpg said?]

I'm not sure why it broke after "Shirley2010ht," and it looks like it would break after every period, e.g., "Mr.", "Ph.D.", "p. 5", "ch. 1" etc.

I have added a few setting to customize how the wrapping works. On by default it has this:
    // When wrapping lines, it will consider they to be a list of words if between
    // two sequential commas is find at the maximum these number of words.
    //
    // This is valid only when the `WrapPlus.semantic_line_wrap` above is enabled.
    "WrapPlus.semantic_maximum_words_in_comma_separated_list": 3,

    // When wrapping lines, it will consider they to be a list of words if it contains
    // less items then set on this setting, the comma separated list will not be
    // considered a list of words.
    //
    // For example, the minimum comma separated list of words has 3 items:
    // `it is about to begin a comma separated list of words with 1, 2, 3 items`
    //
    // If it has less than 3 items, it is not a list of words, it is just a single
    // comma breaking two sentences:
    // `this is just a single comma, breaking a sentence as in 1, 2 3 items sequence`
    //
    // This is valid only when the `WrapPlus.semantic_line_wrap` above is enabled.
    "WrapPlus.semantic_maximum_items_in_comma_separated_list": 3,

If you set all these values to 1, then, it will break your input text like this:
You might be "surprised how 'easy'" things "can't" be [see @Skud2009olm,
pp.
33-35;
also @Shirley2010ht,
ch.
1].
But then there were a number of newspapers articles [@LaVallee2009o1w;
@Cohen2011dgg].
However,
Mary Richard Beard's [-@BeardEtal1977seb] analysis of bias proved all too true.
But then @BlumEtal2008cpg [p.
33] says blah.
The *Science* article [@WoolleyEtal2010eci] is great.
^[What about what @BlumEtal2008cpg said?]

However, I just quick tested setting values like 5 and I think they did not worked I as expected.
I had added a more or less extensive set of Unit Test assuring everything is working as expected. But none of these cases seems to be covering this. Next step would be to write an unit test for this cases and patch the algorithms until all existing tests pass.
I see on your text that an improvement would be to not wrap lines as in [p. 33].
For this to work, I think I will allow the user to enter with some regular expression to capture these cases where it should not wrap.

Before I saw your fork I was planning on creating my own semantic-wrap plugin using a simple regex. It's not fancy or perfect, but it's pretty good.
You might be "surprised how 'easy'" things "can't" be [see @Skud2009olm, pp. 33-35; also @Shirley2010ht, ch. 1].
Or would you?
But then there were a number of newspapers articles [@LaVallee2009o1w; @Cohen2011dgg].
However, Mary Richard Beard's [-@BeardEtal1977seb] analysis of bias proved all too true.
(Or is it?) But then @BlumEtal2008cpg [p. 33] says blah.
The *Science* article [@WoolleyEtal2010eci] is great.
^[What about what @BlumEtal2008cpg said?]
Or so says Mr. Smith, Ph.D.
The end.

Okay, finished my little plugin and it works pretty well. Two limitations for me -- I only care about breaking at periods.

Doesn't do multi-cursor.
Cursor isn't returned to exact same character location.

2. Cursor isn't returned to exact same character location.

This was very hard to implemented, and my algorithm just works about 99% of the cases.

I only care about breaking at periods.

If you use this plugin, you could edit these global variables on the wrap_plus.py to use only the period:
alpha_separator_characters = ('e', 'and')
list_separator_characters = ( ",", ";")
word_separator_characters = ( ".", "?", "!", ":" ) + list_separator_characters

-->
alpha_separator_characters = ()
list_separator_characters = ()
word_separator_characters = ( ".", ) + list_separator_characters

-->
You might be "surprised how 'easy'" things "can't" be [see @Skud2009olm, pp.
33-35; also @Shirley2010ht, ch.
1].
But then there were a number of newspapers articles [@LaVallee2009o1w; @Cohen2011dgg].
However, Mary Richard Beard's [-@BeardEtal1977seb] analysis of bias proved all too true.
But then @BlumEtal2008cpg [p.
33] says blah.
The *Science* article [@WoolleyEtal2010eci] is great.
^[What about what @BlumEtal2008cpg said?]


Consider adding map for array generators

I'm not quite sure of the syntax. We could use dot notation, but since this DSL feels more functional, I think a map function makes more sense. It might look:
map(points, Point2D($.x, $.y)) <= [ { x: number, y: number }; 0.. ] as points

Of course, it would be nice to be able to name the parameter, so maybe something more JS-like:
map(points, p => Point2D(p.x, p.y)) <= [ { x: number, y: number }; 0.. ] as points

However, to be consistent with transform syntax, the mapping function could be treated as a transform itself:
map(points, Point2D(p.x, p.y) <= p) <= [ { x: number, y: number }; 0.. ] as points

I think if the mapping function gets any more involved, then a user-defined generator should be used.

I ended up going with the map(generator-expression, transform) approach. I got to re-use existing code that way.


rgwadmin: add support for RadosGW Admin Ops API

Following this discussion https://github.com/ceph/go-ceph/discussions/492
This commit introduces a new package "rgwadmin" which helps you interact
with the RadosGW Admin Ops API.
Not all the API capabilities are covered by this commit, but this is a
solid foundation for adding code on top. I'm expecting a few more
iterations to make 100% complete. Also, the RadosGW Admin API is going
to implement new functions soon (like bucket creation). So this library
will live on and keep catching up.
As many unit tests as possible have been added. A new integration test
suite also runs. The "micro-osd.sh" now deploys a RGW and the
integration suite tests on it. Thus the CI should cover it.
Shout out to @QuentinPerez and @IrekFasikhov for their existing
libraries. They were a very good inspiration to get started.
Co-authored-by: Irek Fasikhov<EMAIL_ADDRESS>Co-authored-by: Quentin Perez<EMAIL_ADDRESS>Signed-off-by: Sébastien Han<EMAIL_ADDRESS>
Checklist

[ ] Added tests for features and functional changes
[ ] Public functions and types are documented
[ ] Standard formatting is applied to Go code

@thotz, is this an API that you could use for your COSI work?

@thotz, is this an API that you could use for your COSI work?

 HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=d9fae6e851ac2c24751c7a45d668b029ef5a1282de1ada67529e612df1a2273c
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:25
HTTP/1.1 200 OK
Content-Length: 2
Connection: Keep-Alive
Date: Wed, 05 May 2021 15:15:25 GMT
X-Amz-Request-Id: tx000000000000000000001-006092b68d-102c-default

[]
=== RUN   TestRadosGWTestSuite/TestBucket/info_non-existing_bucket
2021/05/05 15:15:25
GET /admin/bucket?bucket=foo&policy=false HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=519eac261cf2328eb9a4617910930246787dc92c65cbcf58ee5dd65553ca5596
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:25
HTTP/1.1 404 Not Found
Content-Length: 114
Accept-Ranges: bytes
Connection: Keep-Alive
Content-Type: application/json
Date: Wed, 05 May 2021 15:15:25 GMT
X-Amz-Request-Id: tx000000000000000000002-006092b68d-102c-default

{"Code":"NoSuchKey","RequestId":"tx000000000000000000002-006092b68d-102c-default","HostId":"102c-default-default"}
=== RUN   TestRadosGWTestSuite/TestBucket/remove_non-existing_bucket
2021/05/05 15:15:25
DELETE /admin/bucket?bucket=foo&policy=false HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e2b3135da93c5f7992b64eb3efba9e1f2b0ef4dbd47ecabf5f49756cd2df140a
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:25
HTTP/1.1 404 Not Found
Content-Length: 114
Accept-Ranges: bytes
Connection: Keep-Alive
Content-Type: application/json
Date: Wed, 05 May 2021 15:15:25 GMT
X-Amz-Request-Id: tx000000000000000000003-006092b68d-102c-default

{"Code":"NoSuchKey","RequestId":"tx000000000000000000003-006092b68d-102c-default","HostId":"102c-default-default"}
=== RUN   TestRadosGWTestSuite/TestUsage
=== RUN   TestRadosGWTestSuite/TestUsage/get_usage
2021/05/05 15:15:25
GET /admin/usage?remove-all=false&show-entries=false&show-summary=true HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=ef25b20657890468aae11807c63f0dc08692908d3208dbedc26cfc236bc96aa2
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:25
HTTP/1.1 200 OK
Content-Length: 14
Connection: Keep-Alive
Date: Wed, 05 May 2021 15:15:25 GMT
X-Amz-Request-Id: tx000000000000000000004-006092b68d-102c-default

{"summary":[]}
=== RUN   TestRadosGWTestSuite/TestUsage/trim_usage
2021/05/05 15:15:25
GET /admin/usage?remove-all=false&show-entries=false&show-summary=false HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=dfdfb90c9665d3a5e25c1985c979c0806d10323a1eb3e3b4507ba4a52e42c1a0
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:25
HTTP/1.1 200 OK
Content-Length: 2
Connection: Keep-Alive
Date: Wed, 05 May 2021 15:15:25 GMT
X-Amz-Request-Id: tx000000000000000000005-006092b68d-102c-default

{}
=== RUN   TestRadosGWTestSuite/TestUser
=== RUN   TestRadosGWTestSuite/TestUser/fail_to_create_user_since_no_UID_provided
=== RUN   TestRadosGWTestSuite/TestUser/fail_to_create_user_since_no_no_display_name_provided
=== RUN   TestRadosGWTestSuite/TestUser/user_creation_success
2021/05/05 15:15:25
PUT /admin/user?display-name=This%20is%20leseb&email=leseb%40leseb.io&generate-key=false&max-buckets=0&purge-data=0&suspended=0&uid=leseb HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Content-Length: 0
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=b4ac6d98da12da49e02298b0a3c5130777c4b7b0d3b24c96e370820661da96bc
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:25
HTTP/1.1 200 OK
Content-Length: 547
Connection: Keep-Alive
Date: Wed, 05 May 2021 15:15:25 GMT
X-Amz-Request-Id: tx000000000000000000006-006092b68d-102c-default

{"tenant":"","user_id":"leseb","display_name":"This is leseb","email":"leseb@leseb.io","suspended":0,"max_buckets":0,"subusers":[],"keys":[],"swift_keys":[],"caps":[],"op_mask":"read, write, delete","system":"false","admin":"false","default_placement":"","default_storage_class":"","placement_tags":[],"bucket_quota":{"enabled":false,"check_on_raw":false,"max_size":-1,"max_size_kb":0,"max_objects":-1},"user_quota":{"enabled":false,"check_on_raw":false,"max_size":-1,"max_size_kb":0,"max_objects":-1},"temp_url_keys":[],"type":"rgw","mfa_ids":[]}
=== RUN   TestRadosGWTestSuite/TestUser/get_user_leseb
2021/05/05 15:15:25
GET /admin/user?generate-key=false&max-buckets=0&purge-data=0&suspended=0&uid=leseb HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=b249186f43aa0553e2e28da92258b96f650685c124d2934d6c96bba158f01258
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:25
HTTP/1.1 200 OK
Content-Length: 547
Connection: Keep-Alive
Date: Wed, 05 May 2021 15:15:25 GMT
X-Amz-Request-Id: tx000000000000000000007-006092b68d-102c-default

{"tenant":"","user_id":"leseb","display_name":"This is leseb","email":"leseb@leseb.io","suspended":0,"max_buckets":0,"subusers":[],"keys":[],"swift_keys":[],"caps":[],"op_mask":"read, write, delete","system":"false","admin":"false","default_placement":"","default_storage_class":"","placement_tags":[],"bucket_quota":{"enabled":false,"check_on_raw":false,"max_size":-1,"max_size_kb":0,"max_objects":-1},"user_quota":{"enabled":false,"check_on_raw":false,"max_size":-1,"max_size_kb":0,"max_objects":-1},"temp_url_keys":[],"type":"rgw","mfa_ids":[]}
=== RUN   TestRadosGWTestSuite/TestUser/modify_user_email
2021/05/05 15:15:25
POST /admin/user?email=leseb%40leseb.com&generate-key=false&max-buckets=0&purge-data=0&suspended=0&uid=leseb HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Content-Length: 0
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=1b711a488327c775b366d843b34019d30de3ace6c7fd367da262ee2d4cbdcb58
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:25
HTTP/1.1 200 OK
Content-Length: 548
Connection: Keep-Alive
Date: Wed, 05 May 2021 15:15:25 GMT
X-Amz-Request-Id: tx000000000000000000008-006092b68d-102c-default

{"tenant":"","user_id":"leseb","display_name":"This is leseb","email":"leseb@leseb.com","suspended":0,"max_buckets":0,"subusers":[],"keys":[],"swift_keys":[],"caps":[],"op_mask":"read, write, delete","system":"false","admin":"false","default_placement":"","default_storage_class":"","placement_tags":[],"bucket_quota":{"enabled":false,"check_on_raw":false,"max_size":-1,"max_size_kb":0,"max_objects":-1},"user_quota":{"enabled":false,"check_on_raw":false,"max_size":-1,"max_size_kb":0,"max_objects":-1},"temp_url_keys":[],"type":"rgw","mfa_ids":[]}
=== RUN   TestRadosGWTestSuite/TestUser/user_already_exists
2021/05/05 15:15:25
PUT /admin/user?display-name=Admin%20user&generate-key=false&max-buckets=0&purge-data=0&suspended=0&uid=admin HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Content-Length: 0
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=f5f711543f9da753807984aff056af5c69849e9b31b3b663261f31a6e10a4762
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:25
HTTP/1.1 409 Conflict
Content-Length: 122
Accept-Ranges: bytes
Connection: Keep-Alive
Content-Type: application/json
Date: Wed, 05 May 2021 15:15:25 GMT
X-Amz-Request-Id: tx000000000000000000009-006092b68d-102c-default

{"Code":"UserAlreadyExists","RequestId":"tx000000000000000000009-006092b68d-102c-default","HostId":"102c-default-default"}
=== RUN   TestRadosGWTestSuite/TestUser/get_users
2021/05/05 15:15:25
GET /admin/metadata/user? HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=8dac73aa231133d61ca38ed565666e87a836f29c4920bca1c0b099cbc0a6dd92
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151525Z
Accept-Encoding: gzip

2021/05/05 15:15:26
HTTP/1.1 200 OK
Content-Length: 17
Connection: Keep-Alive
Content-Type: application/json
Date: Wed, 05 May 2021 15:15:26 GMT
X-Amz-Request-Id: tx00000000000000000000a-006092b68d-102c-default

["admin","leseb"]
=== RUN   TestRadosGWTestSuite/TestUser/remove_user
2021/05/05 15:15:26
DELETE /admin/user?generate-key=false&max-buckets=0&purge-data=0&suspended=0&uid=leseb HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: Go-http-client/1.1
Authorization: AWS4-HMAC-SHA256 Credential=2262XNX11FZRR44XWIRD/20210505/default/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=ba5a094d40c7187afd3ab57d72d653dfc14a0645f199c70218bcb3cbbfc8ec9c
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20210505T151526Z
Accept-Encoding: gzip

2021/05/05 15:15:26
HTTP/1.1 200 OK
Connection: Keep-Alive
Date: Wed, 05 May 2021 15:15:26 GMT
X-Amz-Request-Id: tx00000000000000000000b-006092b68e-102c-default
Content-Length: 0

--- PASS: TestRadosGWTestSuite (0.25s)
    --- PASS: TestRadosGWTestSuite/TestBucket (0.02s)
        --- PASS: TestRadosGWTestSuite/TestBucket/list_buckets (0.01s)
        --- PASS: TestRadosGWTestSuite/TestBucket/info_non-existing_bucket (0.00s)
        --- PASS: TestRadosGWTestSuite/TestBucket/remove_non-existing_bucket (0.00s)
    --- PASS: TestRadosGWTestSuite/TestUsage (0.10s)
        --- PASS: TestRadosGWTestSuite/TestUsage/get_usage (0.07s)
        --- PASS: TestRadosGWTestSuite/TestUsage/trim_usage (0.03s)
    --- PASS: TestRadosGWTestSuite/TestUser (0.14s)
        --- PASS: TestRadosGWTestSuite/TestUser/fail_to_create_user_since_no_UID_provided (0.00s)
        --- PASS: TestRadosGWTestSuite/TestUser/fail_to_create_user_since_no_no_display_name_provided (0.00s)
        --- PASS: TestRadosGWTestSuite/TestUser/user_creation_success (0.01s)
        --- PASS: TestRadosGWTestSuite/TestUser/get_user_leseb (0.04s)
        --- PASS: TestRadosGWTestSuite/TestUser/modify_user_email (0.02s)
        --- PASS: TestRadosGWTestSuite/TestUser/user_already_exists (0.00s)
        --- PASS: TestRadosGWTestSuite/TestUser/get_users (0.05s)
        --- PASS: TestRadosGWTestSuite/TestUser/remove_user (0.01s)
=== RUN   TestNew
=== RUN   TestNew/no_endpoint
=== RUN   TestNew/no_accessKey
=== RUN   TestNew/no_secretKey
--- PASS: TestNew (0.00s)
    --- PASS: TestNew/no_endpoint (0.00s)
    --- PASS: TestNew/no_accessKey (0.00s)
    --- PASS: TestNew/no_secretKey (0.00s)
=== RUN   TestUnmarshal
--- PASS: TestUnmarshal (0.00s)
=== RUN   TestBuildQueryPath
--- PASS: TestBuildQueryPath (0.00s)
=== RUN   Test_getValues
=== RUN   Test_getValues/default
--- PASS: Test_getValues (0.00s)
    --- PASS: Test_getValues/default (0.00s)
PASS
coverage: 59.5% of statements in github.com/ceph/go-ceph/rgwadmin
ok      github.com/ceph/go-ceph/rgwadmin        0.267s  coverage: 59.5% of statements in github.com/ceph/go-ceph/rgwadmin
*** running: go tool cover -html=cover.out -o /results/coverage/go-ceph.html

@thotz, is this an API that you could use for your COSI work?

Currently, COSI-driver only uses APIs for User creation and deletion which available in this library from my first glance. Still need to review the PR  entirely.

Looks like the CI is broken with:
No match for argument: libcephfs-devel-16.2.1-0.el8
No match for argument: librados-devel-16.2.1-0.el8
No match for argument: librbd-devel-16.2.1-0.el8
Error: Unable to find a match: libcephfs-devel-16.2.1-0.el8 librados-devel-16.2.1-0.el8 librbd-devel-16.2.1-0.el8
The command '/bin/sh -c true &&     yum clean all &&     cv="$(rpm -q --queryformat '%{version}-%{release}' ceph-common)" &&     yum install -y         git wget curl make         /usr/bin/cc /usr/bin/c++         "libcephfs-devel-${cv}" "librados-devel-${cv}" "librbd-devel-${cv}" &&     true' returned a non-zero code: 1
make: *** [Makefile:73: .build.pacific] Error 1

That does not seem related to my patch.

@ansiwen thanks for the review, I believe I've addressed/replied to all of your concerns. It's ready for another round of review. Thanks.
@phlogistonjohn final review from you? :)

@Mergifyio rebase


Add PyInstaller for apps/

Build with pyinstaller.exe .\apps\stable_diffusion\web\shark_sd.spec
normal flow works. exe is missing a few json files

Looks good to me.
There are 2 more files with relative imports:
scripts/__init__.py and schedulers/sd_schedulers.py.

Verified both web and cli. Landing.


[FEATURE REQUEST] Column for Available After Upcoming

Is your feature request related to a problem? Please describe.
No it is not
Describe the solution you'd like
The available amount in the budget view is confusing when budgeting for the current month as it does not contain payments that will occur in the future. I would like to see a new column containing the "Available After Upcoming" amounts.
Describe alternatives you've considered
Actually I would like to ask if there is such an option as I haven't found one, and I am willing to get my hands dirty and submit a pull request if it's not yet available.
Additional context

I could see this being useful.

Hmm, there's not a feature that adds a column but we do have a feature that shows the total of upcoming transactions...maybe that can show "Available after Upcoming" on hover? I'd be hesitant to add a new column than that to be honest.

Or make it possible to switch the amount in the available column with the upcoming one?
I can't seem to see when the available amount would be useful to me if it doesn't take into account upcoming transactions (for which I have to budget).
If not possible hover will be better than having to click on each category 👍

@adamhl8 I totally overlooked your comment and feature 😨
Thanks a bunch for having implemented it!

I was trying to find the setting in the toolkit? Which property is it under?


removing cloudbees references

@urmilan please review and build.

This build looks good.

we've decided to abandon this work for now.


refactor(api): Change motion target locations and add arcs

The motion commands in the protocol API take a new type, Location, which has a
reference to a labware or well it is related to. This labware or well is used by
a new function, geometry.plan_arc, to break down individual motion commands into
either arc or direct moves depending on if the target is in the same well or
labware as the target of the last move.
In addition, change the Well class position accessors (top(), bottom(),
center()) to return a Location instead of just a Point, and build Wells with
references to their parent Labwares.
This is a prerequisite for #2242 and was blocking the implementation of #2271 so it is split into its own PR.
To test, put onto a robot, put tips on the pipettes, change the pipette models in the script to your pipettes, and run this:
from opentrons import (
  __file__,
  hardware_control as hwc,
  protocol_api as papi,
  types as t)
from opentrons.protocol_api import labware
import asyncio, os, json
hc = hwc.API.build_hardware_controller()
l = asyncio.get_event_loop()
hc._backend.connect()
ctx = papi.ProtocolContext(l)
ctx.connect(hc)
ctx.home()
defn_dir = os.path.join(os.path.dirname(__file__), 'shared_data', 'definitions2')
defn_path = os.path.join(defn_dir, 'generic_96_wellPlate_380_uL.json')
with open(defn_path) as df:
  defn = json.load(df)

plate = labware.load_from_definition(defn, t.Point(0,0,0), 'Slot 1')
ctx.load_labware(plate, '1')
plate2 = labware.load_from_definition(defn, ctx._deck_layout.position_for(7), 'Slot 7')
ctx.load_labware(plate2, '7')
left = ctx.load_instrument('p300_single', t.Mount.LEFT)
right = ctx.load_instrument('p300_multi', t.Mount.RIGHT)

l.run_until_complete(hc.move_rel(t.Mount.LEFT, t.Point(0, 0, -100)))
l.run_until_complete(hc.pick_up_tip(t.Mount.LEFT))
l.run_until_complete(hc.move_rel(t.Mount.RIGHT, t.Point(0, 0, -100)))
l.run_until_complete(hc.pick_up_tip(t.Mount.RIGHT))

for well in plate.wells():
    left.move_to(well.top()) # Look for the arcing motion with a small +z since it's in the same labware

left.move_to(plate2.wells()[0].center()) # Look for a higher z since it's between labware
right.move_to(t.Location(ctx._deck_layout.position_for(4), None)) # Look for the left mount retracting, gantry moving, and then right mount descending - no diagonals
for well in plate2.wells():
   right.move_to(well.center())

Tested OK on sanni-t bot with a P300_single and P1000_single


revert (en/nollyverse)

Checklist:

[X] Updated extVersionCode value in build.gradle for individual extensions
[X] Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
[X] Referenced all related issues in the PR body (e.g. "Closes #xyz")
[X] Added the containsNsfw = true flag in build.gradle when appropriate
[X] Have not changed source names
[X] Have explicitly kept the id if a source's name or language were changed
[X] Have tested the modifications by compiling and running the extension through Android Studio
[X] Tried my best to match it with v14

couldn't find anything except removing okhttp client. still please check if any other change is required


Fix: Added toString() on decisionSource so that rollout keys of enums get picked

Summary

sending decision source rollout and feature-test keys by adding toString().
This change is due to currently source value ROLLOUT and FEATURE_TEST was getting sent in notification.

Test plan
Updated unit Tests

Pull Request Test Coverage Report for Build 984

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 89.613%

Totals

Change from base Build 981:
0.03%

Covered Lines:
2847

Relevant Lines:
3177

💛  - Coveralls

Pull Request Test Coverage Report for Build 984

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 89.613%

Totals

Change from base Build 981:
0.03%

Covered Lines:
2847

Relevant Lines:
3177

💛  - Coveralls


Restricting TLS versions

Binary Version: 1.5.8
I am running Fabio with:
fabio -cfg fabio.properties
Contents of the fabio.properties are:
tlsmin=tls11
tlsmax=tls11
proxy.cs=cs=int;type=path;cert=/etc/fabio/ssl
proxy.addr=<IP_ADDRESS>:443;cs=int
proxy.maxconn=-1
registry.consul.addr=<IP_ADDRESS>:8500
registry.consul.tagprefix=urlprefix-

I was expecting that this would restrict TLS to version 1.1 only.
But curl'ing the address in verbose mode shows that SSL handshake can be done in version 1.3 too.
Am I making an error in tlsmin, tlsmax definitions or missing something else?

Seems like we had another LB in front of Fabio which handled SSL termination.


add symblic link to dev logfile

Signed-off-by: Naiming Shen<EMAIL_ADDRESS>
add a symbolic link to the device current logfile in 'collect' directory, so one can use 'tail -F' to continuously monitor it

b9da544a-47c3-4b7c-8c6c-81eb658aa708:/persist/newlog/collect# ls -lt
total 88
-rw-------    1 root     root         87009 Dec 14 22:12 dev.log.839791970
lrwxrwxrwx    1 root     root            41 Dec 14 22:12 sym.dev.log -> /persist/newlog/collect/dev.log.839791970
b9da544a-47c3-4b7c-8c6c-81eb658aa708:/persist/newlog/collect# ls -lt
total 12
-rw-------    1 root     root         11708 Dec 14 22:12 dev.log.269840115
lrwxrwxrwx    1 root     root            41 Dec 14 22:12 sym.dev.log -> /persist/newlog/collect/dev.log.269840115
b9da544a-47c3-4b7c-8c6c-81eb658aa708:/persist/newlog/collect#

updated with direct os.Remove()

@rvs updated to the relative path and name.

Hey @naiming-zededa -- looks like Ring0 is failing -- can you please take a look so we can merge this ASAP?

@rvs it could not clean the gcp device, not sure what it means, sent to 'tools' to see

rebased to the latest to see.


This is the evil-est chrome extension so far

This extension should have a c2 server. lol.

:)

This is a really fun idea, I'm trying to figure out how to turn this into a followup article


error: implicit declaration of function 'portMUX_INITIALIZE' (MEGH-3496)

I can't compile any of example:
error: implicit declaration of function 'portMUX_INITIALIZE'; did you mean 'portMUX_NO_TIMEOUT'? [-Werror=implicit-function-declaration]      portMUX_INITIALIZE(&pxNewRingbuffer->mux);
Using ESP-IDF 4.4
There is in rbuf.c:
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)     portMUX_INITIALIZE(&pxNewRingbuffer->mux); #else     vPortCPUInitializeMutex(&pxNewRingbuffer->mux); #endif
But i didn't find where the 'portMUX_INITIALIZE' is declared

Can I use vPortCPUInitializeMutex in place of portMUX_INITIALIZE in ESP-idf 4.4? Is it correct?  Is it possible for you to switch to stable tag v4.4.1 release?

I tried to switch to 4.4.1, but i have now:
Toolchain:
C:/Users/jacek/.espressif/tools/xtensa-esp32-elf/esp-2021r2-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe,
crosstool-ng version esp-2021r2 doesn't match supported version
esp-2021r2-patch3

re running install.bat and export.bat should be able to resolve this.

Thank You, i run install.bat but not export.bat. Now my old project, that i was checking after changing to 4.4.1, compiles.
But in rainmaker example now i have:
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32
Processing 2 dependencies:
[1/2] espressif/cbor (0.5.4)
[2/2] idf (4.4.1)
CMake Error at F:/GitHub/esp-idf/tools/cmake/component.cmake:238 (message):
ERROR: Cannot process component requirements.  Multiple candidates to
satisfy project requirements:
requirement: "cbor" candidates: "cbor, espressif__cbor"

Call Stack (most recent call first):
F:/GitHub/esp-idf/tools/cmake/build.cmake:491 (__component_get_requirements)
F:/GitHub/esp-idf/tools/cmake/project.cmake:378 (idf_build_process)
CMakeLists.txt:16 (project)
-- Configuring incomplete, errors occurred!
See also "F:/GitHub/esp-rainmaker/examples/switch/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1

There is an issue with including cbor component with idf-component-manager. Can you please downgrade the idf-component-manager to v1.0.1 and try again?
pip uninstall idf-component-manager
pip install idf-component-manager==1.0.1

This issue will be fixed sooner

Thank You so much, now it works


Refactoring mixins way of defining methods

Coverage increased (+0.006%) to 95.644% when pulling a6105cca6e183ce6f94a4202effef974acfc50f3 on refactor-mixins into b2fedf4e01473ec795029640853d49663b875066 on master.


converted Saturn.magnitude and magnitudeMuller from Double to Magnitude

Saturn's magnitude should be consistent with other planets

Thanks! Should I release 2.0.1 or you have a few PR in prep? :-)

Not at the moment, doesn't have much free time now


[FLINK-25619] Init flink-table-store repository

Create:

README.md
NOTICE LICENSE CODE_OF_CONDUCT
.gitignore
maven tools
releasing tools
github build workflow
pom.xml

Refer to https://github.com/apache/flink-ml

LGTM :)


Sequence and SeqView classes should not be used to replace characters

Delete the _seq_filter() method from sequence classes in new_sequence.py. No longer being used.
Also delete new_sequence.Sequence.replace() method.  Users will need to do this explicitly themselves.
There will be side-effects in that some functions (e.g. moltype._convert_to_rna() and _convert_to_dna()) employ the replace method. We can just produce revised functions that cast incoming data to string and using the replace method on that.

I can work on this

completed in https://github.com/cogent3/cogent3/pull/1935


Has anybody built a SAAS solution with lets-chat?

I would like to build a SaaS solution based on lets-chat, similar to Slack, Noysi and others. I am looking for a Node.js project that could serve as home-page, user registration and subscription management and make deployment of different lets-chat projects. Has anyone tried something similar? Any clue?
Thanks.

I don't think anyone has yet. It's certainly do-able, though Let's Chat (currently!) lags behind Slack in terms of features. I think it's big feature/win is that it's hosted.
If there was a SaaS offering i'm not sure why someone wouldn't just choose Slack. (Sorry @hhaidar! Ha.)

I think to start you'd need to add support for multi-tenancy. Otherwise you'd have to deploy an instance of Let's Chat for each client.

I'm going to close this: it's not really an issue.


No conrtol-module output

Hello,
I am trying to run apollo 3.0 with the carla simulator (0.9.5) using a ros-bridge (https://nemodrive-docs.readthedocs.io/projects/nemodrive-apollo/en/latest/installation.html)
I successfully set up the ros-bridge, so that the car and the map are showing up in dreamview. But when I send a routing request the car does not move a bit, even though the planning module is working fine (blue planning trajectory is showing up).
System information

Ubuntu 18.05
Apollo docker version
Apollo version 3.0

Steps to reproduce the issue:

Start apollo with dev_start & dev_into & bootstrap.sh
Start apollo-ros-bridge (https://nemodrive-docs.readthedocs.io/projects/nemodrive-apollo/en/latest/config_run.html#running)
Start Carla-simulator
Start Carla-Ros-Bridge
Strat apollo modules localization, routing, control, prediction and planning
Send routing request via dreamview "route editing"

There is no error occurring while launching the control module.
This is the output of the control.info logfile:
Log file created at: 2019/08/18 19:23:06 Running on machine: in_dev_docker Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg I0818 19:23:06.100620 16075 control.cc:48] Control init, starting control... I0818 19:23:06.135354 16075 control.cc:51] Conf file: modules/control/conf/lincoln.pb.txt is loaded. I0818 19:23:06.135978 16075 adapter_manager.cc:46] Init AdapterManager config:config {   type: LOCALIZATION   mode: RECEIVE_ONLY   message_history_limit: 10 } config {   type: PAD   mode: RECEIVE_ONLY   message_history_limit: 10 } config {   type: PLANNING_TRAJECTORY   mode: RECEIVE_ONLY   message_history_limit: 10 } config {   type: CHASSIS   mode: RECEIVE_ONLY   message_history_limit: 10 } config {   type: CONTROL_COMMAND   mode: PUBLISH_ONLY } config {   type: MONITOR   mode: DUPLEX   message_history_limit: 1 } is_ros: true I0818 19:23:07.298007 16075 controller_agent.cc:36] Only support MPC controller or Lat + Lon controllers as of now I0818 19:23:07.298779 16075 lat_controller.cc:87] Using LQR-based Lateral Controller I0818 19:23:07.299121 16075 lon_controller.cc:129] Control calibration table loaded I0818 19:23:07.299139 16075 lon_controller.cc:130] Control calibration table size is 1297 I0818 19:23:07.299455 16075 controller_agent.cc:94] Controller <LON_CONTROLLER> init done! I0818 19:23:07.299486 16075 lat_controller.cc:248] Lateral control gain scheduler loaded I0818 19:23:07.299537 16075 lat_controller.cc:159] LQR-based Lateral Controller begin. I0818 19:23:07.299551 16075 lat_controller.cc:160] [LatController parameters] mass_: 2080, iz_: 4208.3, lf_: 1.4224, lr_: 1.4224 I0818 19:23:07.299624 16075 controller_agent.cc:94] Controller <LQR-based Lateral Controller> init done! I0818 19:23:07.299655 16075 control.cc:91] Control resetting vehicle state, sleeping for 1000 ms ... I0818 19:23:08.299755 16075 control.cc:97] Control default driving action is STOP I0818 19:23:08.300050 16075 control.cc:104] Control init done!
This is how it looks in dreamview

Can someone please help me figure out, why there is no output from the control module?
Thanks!

did you connect it with a simulated vehicle? From this limited information, looks like no chassis feedback seen by control

Yes I connected the simulated vehicle from carla using the ros-bridge.
This is the rqt_graph of the Setup:

As you can see chassis feedback is send from the apollo-side of the ros bridge to the modules using the topics /apollo/canbus/chassis with following message:
engine_started: true speed_mps: 0.0 driving_mode: COMPLETE_AUTO_DRIVE gear_location: GEAR_DRIVE
The other input messages for the control module are:
/apollo/localization/pose
pose {   position {     x: -7.52985715866     y: -26.41998291     z: 0.254972994328   }   orientation {     qx: -3.42130677197e-05     qy: -2.60989763867e-05     qz: -0.999999999074     qw: -6.56846254911e-08   }   linear_velocity {     x: 0.0     y: -0.0     z: 0.0   }   linear_acceleration {     x: 0.0     y: 0.0     z: 0.0   }   angular_velocity {     x: 0.0     y: 0.0     z: 0.0   }   heading: -1.57079645638   linear_acceleration_vrf {     x: 0.0     y: -0.0     z: 0.0   }   angular_velocity_vrf {     x: 0.0     y: -0.0     z: 0.0   } } measurement_time: 0.0
/apollo/planning

works, as shown by the blue trajectory in dreamview
message on ros topic looks good as well

/apollo/control/pad

nothing is published here

I am expecting a control command on the topic /apollo/control but nothing is being published here.
Is there something wrong with the input, or am I missing some information needed by the control module?
If you need additional info, please let me know!

Hi @udeto sorry I missed your reply earlier on, you need to send an auto command via https://github.com/ApolloAuto/apollo/blob/master/modules/control/proto/pad_msg.proto in order for control to be triggered for publishing control command, otherwise it would just be headers.

Hi @udeto, how did you even get nemodrive rod-bridge to run with carla 0.9.5?

Closed due to inactivity. If the problem persists, pls feel free to reopen it or create a new one and refer to it.


User Profile Update

In user profile experience , education , important links need to be added.

interested

It is completed


Notification tweaks

https://github.com/ozone-development/ozp-center/issues/535

@clarkjefcoat @SOAP1914

:+1:

👍


Quick fix for evergreen test

hi @guigrpa
I found that test 41 is always green.
Apparently expect() internally works by throwing an error, which is caught by your test construct and thus subsequently ignored.
I forced jest to recognise this error case by using a snapshot test. Note that the word document fixture used for this test did not contain the correct error case, so I fixed that too. The library code itself seems sound.
The latest version of Jest has a simpler way of testing for Errors returned by Promises, but this way works too.
FYI (unrelated to this PR) I ported this awesome project to typescript today because I had to implement a feature real quick. I can't really work in vanilla JS/Flow anymore, so I kinda had to ;). Let me know if you're interested in this and I can make a PR. However, the whole Typescript vs Flow thing is highly subjective, so I understand if you're not interested.
The feature i'm implementing concerns not failing on the first error in the template so the caller can get an overview of all errors in the template.

Fixed in typescript branch


RLC-823a PTZ with NVR

With HomeAssistant 2023.4.0 I enabled the new integration after deleting the reolink_dev I was using before and added my NVR which found all cameras, however for the RLC-423 the PTZ targets were missing.  I removed the NVR and added the cameras individually and the PTZ targets show up perfectly in the list for the camera, so I don't know if the issue is with the NVR not sending the data over or with the library not handling it the same with the NVR.
NVR is a RLN16-410 with hardware H3MB18, firmware v<IP_ADDRESS>_23031645.
RLC-423 has firmware v<IP_ADDRESS>_20122309.
I also have an RLC-823a, I don't think the PTZ targets showed up on that one either, but I can't be 100% sure since I don't use that camera the same as the RLC-423.
Anything I can do to help diagnose I'm happy to.

@bs42 this issue is most likely already resolved in HA 2023.4.2, could you update and try again?
Please let me know if it is fixed or not.

If you appreciate the reolink integration and want to support its development, please consider sponsering the upstream library.

Yes, HA 2023.4.2 fixed the issue.  I see that it knows what types of cameras they are through the NVR which it did not do on the previous version.  Thanks for the update and all the work you are doing on this integration, it is excellent!

@bs42 thanks for the feedback, good to hear it is fixed.
If you appreciate the reolink integration and want to support its development, please consider sponsering the upstream library.


Making things modular

Been thinking about, making this as modular as possible, through the use of %placeholders and @mixins, for example creating a button mixin, that through the arguments you can customise the button to be what ever you want. Which means that we can setup a basic button styling for the compiled css and for those who just want to use it as it, or you can use the mixin and define your own button stylings fairly easily. What are other people thoughts on this?

Rather than trying to reinvent the wheel when it comes to writing a breakpoint mixin, any objects to using https://github.com/at-import/breakpoint ?

We are doing this, don't really see the ned to have this issue open anymore. Will close


Go 1.20 EOL scheduled for Feb 2024

[ ] Open a PR (Reference: https://github.com/devcontainers/images/pull/701)

[!NOTE]
Raised PR #966

Closing as fixed with https://github.com/devcontainers/images/pull/966


needs more examples/docs for BlobPath binding and example may be wrong

the BlobPath supports binding expressions, but this isn't mentioned in the table of params, maybe because it is limited to c#?
thinking this table should make some note of it, AND link to docs explaining the binding syntax.

The  example (shows up a few ways)...i think has bug, it reads for C#:
[FunctionName("BlobInput")]
public static void Run(
    [QueueTrigger("myqueue-items")] string myQueueItem,
    [Blob("samples-workitems/{queueTrigger}", FileAccess.Read)] Stream myBlob,
    ILogger log)
{
    log.LogInformation($"BlobInput processed blob\n Name:{myQueueItem} \n Size: {myBlob.Length} bytes");
}

but shouldn't it be samples-workitems/{myQueueItem} ?
examples should be shown how you can bind to http paths and query strings, something like
public static void Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "path/{param1}")] HttpRequest req,
    [Blob("container/{param1}/{query.query1}", FileAccess.Read)] Stream myBlob,
)

and how how a request to path/test?query1=thing access blob container/test/thing
really a reference to the available binding context(?) should be linked.  As well as the possibility of leveraging https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library?tabs=v2%2Ccmd#binding-at-runtime
i had a dev based on the current docs give up and build their own blob client because of these use cases, which is certainly not what you want i'm sure..i know i don't want them to reinvent the wheel.

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

ID: cd428773-db08-e2cb-8320-2943be82ffb7
Version Independent ID: b8f4e7f0-21a6-1c25-3fd4-7bd3229c4e3a
Content: Azure Blob storage input binding for Azure Functions
Content Source: articles/azure-functions/functions-bindings-storage-blob-input.md
Service: azure-functions
GitHub Login: @craigshoemaker
Microsoft Alias: cshoe

@drdamour Thanks for the feedback! We have assigned this issue to the content author to review and update accordingly with more examples.
We will work up a PR to update the configuration table to clearly state that binding expressions are supported as well.

but shouldn't it be samples-workitems/{myQueueItem} ?

No. It's correct. Each binding has metadata that is exposed for binding expressions. For Queue Storage, queueTrigger is correct and its value is the string form the queue message.

agree. really need to improve the doc with more examples... MS


[Bug] Setting user_azure_compute_gallery on an existing catalog does not create a gallery in Azure

Describe the bug
Summary of the issue
Adding citrix_machine_catalog.provisioning_scheme.azure_machine_config.use_azure_compute_gallery to an existing catalog does not create the image gallery in Azure.
Resource impacted: citrix_machine_catalog
Versions
citrix/citrix provider: 1.0.8

As a workaround, try updating the master image. This should force the image gallery to be created.


add new music for nuke

About the PR

add track Running out by Bolgarich that will be randomly selected between countdown
Media

https://www.youtube.com/watch?v=SzEp2nv6oZ4

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

add: Added new music

I've used this song before, you might want to make sure it isn't abruptly silenced when the nuke goes off, if you didn't

@QuietlyWhisper no, there is all right. i cut and speed up this song a little. it take 1.50 minutes

changelog should say nuke music not just "music"