Suggestions about edit:small-word-abbr behavior

Hi @krader1961
I'm trying to replace fish abbr with edit:small-word-abbr.
Current implementation seems to be

Skip an abbreviation if it begins with an alphanum and the previous
char in the insert buffer is also an alphanum or there is no
preceding char.
https://github.com/elves/elvish/pull/980

But can we also skip an abbreviation if it begins with symbols like -, _ if it doesn't have matching abbr using it ?
If i set something like this.
set edit:small-word-abbr['k'] = 'kubectl'

ls -k<space> expands to ls -kubectl and it is obviously not intended.

FWIW, The edit:small-word-abbr behavior is based on, but not identical to, the Fish shell abbr behavior. It was a compromise between myself and the Elvish project owner; especially with regard to not treating pressing Enter the same as Space. Having said that, it does seem like the expansion should only occur if the prefix is whitespace (or start of line); not just the definition of a "small word". That would fix another annoyance I experience with this abbreviation:
set edit:small-word-abbr['l'] = 'less'

If I type ls -l then press Space the l is converted to less which is incredibly annoying and not how Fish handles that situation. I've just been living with that unwanted behavior. It's probably long past time to fix it.

expansion should only occur if the prefix is whitespace (or start of line)

I thought it was what edit:small-word-abbr intended to achieve (which was not with edit:abbr),
Fish abbr seems to expand only at "start of command" and it is quite nice. (Haven't looked at implementation details yet)

1, 3 expands 2 not.

If I type ls -l then press Space the l is converted to less which is incredibly annoying and not how Fish handles that situation. I've just been living with that unwanted behavior. It's probably long past time to fix it.

+1
Can we at least make it a configuration option? I wouldn't mind trying my hands at a PR if the solution would be accepted.

From my comment in issue #1540 for anyone who stumbles upon this issue and wants to look at the implementation to understand why small word abbreviations behave like they do:

expanded upon typing a trigger character, which is currently a space or semicolon

Close, but not correct. See the implementation, but the short answer is that the trigger char simply has to be in a different category than the last character of the abbreviation; see the definition of CategorizeSmallWord. Consider this abbreviation: set edit:small-word-abbr['l'] = 'less'. If you type echo -l- the ell will be expanded to less because s is an alphanum and - is not.

I'm coming over from #1540, which does not seem like a great idea upon seeing the implementation (thanks @krader1961).
I see two potential changes/features in this thread:

If I type ls -l then press Space the l is converted to less which is incredibly annoying

Fish abbr seems to expand only at "start of command" and it is quite nice

As I see it there are really 3 options for a "fix":

Introduce configuration options somewhere under $edit:... that allow these two behaviours.
Change the behaviour of small-word abbreviations.
Add a third type of abbreviation that behaves this way.

Option 3 in interesting as simple abbreviations and small-word abbreviations have a behaviour that is orthogonal to what we are describing here, which are really abbreviations that behave the same way as Fish abbreviations. We likely do not want 3 different kinds of abbreviations, so that may not be the best solution. I also agree with the following, which is a solution more like option 2:

If I type ls -l then press Space the l is converted to less which is incredibly annoying and not how Fish handles that situation. I've just been living with that unwanted behavior. It's probably long past time to fix it.

Is the intention of small-word abbreviations not to handle abbreviations in the same way as Fish? What is a use case for how Elvish handles small-word abbreviations where they are expanded like this?


I can not run a .class files generated by the Jasmin

The jasmin.jar, already included in the distribution, successfully generates .class files from provided examples. But however I do such a class-files do not show any signs of life... For example, when I run java -jar jasmin.jar HelloWorld.j the jasmin creates the file HelloWorld.class but whenever I execute it via java HelloWorld.class I only see Error: Could not find or load main class HelloWorld.class.
I'm really interested in this project. But at the same time I'm afraid that it's too late to use this tool, after all in the documentation there are dates like 1996, 2004, and now, well, now 2021. :) On top of that the Java is not my primary language (it is why I choose this project in the first place). Rewriting the project in, e.g., C is possible in theory but some of the .java files are over thousand lines of code so I hope to use this software as-is without porting it first.
Is it necessary to build the jasmin.jar from sources or it's enough to run the .jar file already present there?
I'm testing the Jasmin on a relatively old Linux-box running the Slackware with Java version 1.7, JRE IcedTea7 2.3.3. The Jasmin was downloaded directly from davidar/jasmin at GitHub.
[Sorry for my poor English... :) ]

Hi!
I just tested this locally, and it works fine (using HelloWorld example from the README). To make it work, you need to change the java command you use to run the class - Java does not support passing in a class file as an argument. Instead, you need to set the class-path and pass in the name of the class:
java -cp . HelloWorld

For completeness, here's a complete run with the latest LTS release of Java:
➜  jasmin git:(master) java --version
java 17.0.1 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)
➜  jasmin git:(master) java -jar jasmin.jar HelloWorld.j
Generated: HelloWorld.class
➜  jasmin git:(master) java -cp . HelloWorld
Hello World!

Please reply here (and close this) if this solves your issue. If not, I'll look further into it.

Thank you very much. It works, how simple... :)
It's definitely worth to include a line such as "java -cp . <class_name>" into the documentation (either docs/guide.html or README.md). For, it silently assumes now that a typical user does know this java quirk, but no -- it's not obvious at all and nowhere in the documentation does it show such a invocation syntax (or I fail to find it).
But I will not make a pull request because now I see that apart from the README.md there is the Readme.txt in which I found a working instruction, citation: "You can then run the HelloWorld program by doin java examples.HelloWorld"; it differs significantly from the solution provided by you, yet it works too. (May be it's time to synchronize/merge README.md and Readme.txt, who knows...)
Thanks again for your answer.


Revert changes to config.get(..., override_with=None)

Reintroduce support for explicit None for parameter.

Partially reverts #10499
Closes #10519

all test failures seem to be unrelated


Endpoints don't handle chunked request bodies correctly

I don't have much experience with WSGI, but this may be a simple fix as per a similar issue over at StackOverflow.

Endpoints do not appear to handle chunked request bodies correctly. The following is a raw request message to demonstrate and the corresponding raw response message ...
Request
POST /post HTTP/1.1
Host: httpbin.org
User-Agent: Artax/0.3.0-devel (PHP5.4+)
Transfer-Encoding: chunked

4
test
0

Response
HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 24 Jun 2013 17:23:18 GMT
Server: gunicorn/0.17.4
Content-Length: 297
Connection: keep-alive

{
  "origin": "<IP_ADDRESS>",
  "files": {},
  "form": {},
  "url": "http://httpbin.org/post",
  "args": {},
  "headers": {
    "Transfer-Encoding": "chunked",
    "Host": "httpbin.org",
    "Connection": "close",
    "User-Agent": "Artax/0.3.0-devel (PHP5.4+)"
  },
  "json": null,
  "data": ""
}

As you can see, the response is unaware of the request's body data.

This looks like it's fixed now:
In [11]: requests.post(
    'https://httpbin.org/post',
    data='4\r\ntest\r\n0\r\n\r\n',
    headers={'Transfer-Encoding': 'chunked'}).json()
Out[11]:
{u'args': {},
 u'data': u'test',
 u'files': {},
 u'form': {},
 u'headers': {u'Accept': u'*/*',
  u'Accept-Encoding': u'gzip, deflate',
  u'Content-Length': u'4',
  u'Host': u'httpbin.org',
  u'User-Agent': u'python-requests/2.6.0 CPython/2.7.8 Linux/4.4.0-43-generic'},
 u'json': None,
 u'origin': u'x.x.x.x',
 u'url': u'https://httpbin.org/post'}

I can verify @tomviner is correct. Looks like whatever proxy sits in front of the httpbin app is taking care of this (hence why there's no Transfer-Encoding: chunked header)


Add ntfy publish --when-pid-finished $pid command to CLI

This is like the "original" ntfy's ntfy done command, see https://github.com/dschep/ntfy

Done


[$1000] Offline - Workspace details are still clickable after deleting workspace

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Create a workspace
Copy link workspace and open on new tab
Force offline
Delete above workspace
From tab 1, Observe that the options are crossed out but still clickable

Expected Result:
Options are crossed and can't still clickable
Actual Result:
Options are crossed out but still clickable
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.50-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/02120159-ee1a-402c-8eb2-032afd05215c
https://github.com/Expensify/App/assets/43996225/a2b7796d-3291-489f-96a9-01fe29c6a641
Expensify/Expensify Issue URL:
Issue reported by: @namhihi237
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1690889739154479
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01552660bbde134ee7
Upwork Job ID:<PHONE_NUMBER>671638528
Last Price Increase: 2023-08-07

Proposal from @namhihi237
Please re-state the problem that we are trying to solve in this issue.
Options are crossed and can't still be clickable after WS was deleted with offline mode
What is the root cause of that problem?
We have not disabled in WorkspaceInitialPage when workspace has pendingAction = delete here.
https://github.com/Expensify/App/blob/6c9e459f8114f1cd2986a83ede1d73fb150aa366/src/pages/workspace/WorkspaceInitialPage.js#L71
https://github.com/Expensify/App/blob/6c9e459f8114f1cd2986a83ede1d73fb150aa366/src/pages/workspace/WorkspaceInitialPage.js#L250
And in threeDotsMenuItems we have not disabled the delete option.
And WorkspaceSettingsPage as the same with Form and AvatarWithImagePicker
The same disable button invite in WorkspaceMembersPage
What changes do you think we should make in order to solve the problem?

in WorkspaceInitialPage
Here we will add a condition to check the workspace with pendingAction == 'delete' to disable MenuItems and add property to disable the delete action at threeDotsMenuItems
In WorkspaceSettingsPage
Same as above, here we add disable condition for Form and AvatarWithImagePicker
WorkspaceInviteMessagePage
Here they disable the invite button button
Optionally we can disable the invite button in WorkspaceMembersPage and next at WorkspaceInvitePage, because we have disabled step invite in (3).

What alternative solutions did you explore? (Optional)
N/A

Proposal
Please re-state the problem that we are trying to solve in this issue.

In offline mode, after deleting the workspace if we open the workspace through URL then it is showing the workspace page with sections.

What is the root cause of that problem?

The issue is that we are not checking the workspace is deleted or not in below give files.

Files

ReimbursementAccountPage
WorkspaceInitialPage
WorkspaceInviteMessagePage
WorkspaceInvitePage
WorkspaceMembersPage
WorkspacePageWithSections

Below code is not checking the workspace has pendingAction as deleted or not.

shouldShow={_.isEmpty(policy) || !Policy.isPolicyOwner(policy)}

What changes do you think we should make in order to solve the problem?

We should check the workspace has pendingAction as deleted or not in below given files.
We can create a function in Policy.js file to check the workspace has pendingAction as deleted or not.
But just checking the workspace has pendingAction as deleted or not is not enough, we will also need to update the descriptions.
So based on deleted or if not permitted we will update the description.

if not permitted - You do not have access to this page. Are you trying to join the workspace? Please reach out to the owner of this workspace so they can add you as a member! Something else? Reach out to ${CONST.EMAIL.CONCIERGE}
deleted - Workspace has been deleted. Please reach out to the owner or ${CONST.EMAIL.CONCIERGE} for more information.

const workspaceDescription = Policy.hasDeletedPendingAction(policy) ? 'workspace.common.deleted' : 'workspace.common.notAuthorized';
shouldShow={_.isEmpty(policy) || !Policy.isPolicyOwner(policy) || Policy.hasDeletedPendingAction(policy)}
subtitleKey={_.isEmpty(policy) ? undefined :  workspaceDescription}

What alternative solutions did you explore? (Optional)

N/A

Proposal
Please re-state the problem that we are trying to solve in this issue.
The issue at hand is that in our application, when a workspace is deleted and the user is offline, the options for the workspace are crossed out indicating that they are not available. However, these options are still clickable, which is not the expected behavior. The options should be crossed out and unclickable.
What is the root cause of that problem?
The root cause of the problem is that while the visual representation of the options being unavailable (crossed out) is implemented, the functionality to disable clicking on these options is not. The options' clickable property is not being set to false when they are crossed out.
What changes do you think we should make in order to solve the problem?
To solve this problem, we need to modify the applyStrikeThrough function in the OfflineWithFeedback component. This function currently applies a strikethrough style to the children elements when needed. We should extend this function to also disable the clickable property of these elements. This can be done by adding a disabled: true property to the props object in the applyStrikeThrough function.
We should also modify the routing logic of our application. When a workspace is deleted, we should remove or disable the corresponding route.
What alternative solutions did you explore? (Optional)
An alternative solution could be to handle the disabling of the options at a higher level in the component hierarchy, but this would likely involve more extensive changes and could potentially impact other parts of the application. The proposed solution is more localized and less likely to have unintended side effects.

Proposal
Please re-state the problem that we are trying to solve in this issue.
In offline mode, on the workspace details page, after the workspace was deleted:

The disabled options are still clickable.
In the three-dot menu, you can use the Delete button.

What is the root cause of that problem?
We did not check the policy.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE to:

Disable options completely and block users to access subpages of the workspace details page.
Remove the Delete button in the three-dot menu

What changes do you think we should make in order to solve the problem?

Add two lines of code as the picture below into [WorkspaceMembersPage.js (https://github.com/Expensify/App/blob/main/src/pages/workspace/WorkspaceMembersPage.js) to block users to access the Members page by using URL.

Add three lines of code as the picture below into WorkspacePageWithSections.js to block users access these pages Settings, Cards, Reimbursements, Bills, Invoices, Travel  by using URL.

In WorkspaceInitialPage.js, make some changes like the below to not allow users to click on the options and remove the Delete button in the threeDotsMenuItems:

Create isWorkspaceDeleted and disableClickAction const as lines 72 and 73 in the picture below

Only add the Delete button to the threeDotsMenuItems if the workspace is not deleted.

Replace all hasPolicyCreationError with disableClickAction from line 212 to line 267

Result
https://github.com/Expensify/App/assets/497313/5e22ec96-67ab-482b-a949-ff21d7040a7a
https://github.com/Expensify/App/assets/497313/95873982-764b-4db3-9f59-bdc7ad3f6f65
https://github.com/Expensify/App/assets/497313/0c186b17-84ec-4038-9dc6-948ae434999f
What alternative solutions did you explore? (Optional)
Not allow users to access all sub-pages of a deleted workspace such as the workspace details page and its sub-pages.

@parasharrajat yes, sorry that was an oversight. I was able to repro

Proposal
Please re-state the problem that we are trying to solve in this issue.
Tab synchronization issue in workspace. Create a workspace and open the link of that workspace in a new tab and the force offline from settings. Delete the workspace, notice the tab navigates out of the workspace details page to workspace settings page and the link unclickable but in the first tab, the app stays in workspace details page and the links become crossed out yet clickable.
What is the root cause of that problem?
The root cause of the problem is tab synchronization is not correctly happening in both the tabs. After deleting workspace in tab2, tab1 state should also match that of tab2. The user should be navigated out of workspace details page.
What changes do you think we should make in order to solve the problem?
The solution here is to make use of useEffect and then checking if policy.pendingAction matches CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE
like below
    if(policy.pendingAction == CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE)
    {
        Navigation.goBack(ROUTES.SETTINGS_WORKSPACES);
    }

After deleting the workspace in tab 2, tab 1 correctly navigates the user to workspace settings page matching state of tab2.
Attached below is a functional solution,
https://github.com/Expensify/App/assets/141340971/90bcc2b9-bcc6-4ef7-89c9-268f86969332

@parasharrajat please review proposal

@parasharrajat any feedback on the above proposal would be much appreciated.

upon reflection, I agree this isn’t a problem. Going to close this.


Bump golangci-lint to 1.36

Signed-off-by: Stephen Kitt<EMAIL_ADDRESS>

Wondering why the validate-projects jobs are being skipped.

Consuming Projects / Lint (pull_request) Skipped

https://github.com/submariner-io/shipyard/pull/429/checks?check_run_id=1785480952

Wondering why the validate-projects jobs are being skipped.

Consuming Projects / Lint (pull_request) Skipped

https://github.com/submariner-io/shipyard/pull/429/checks?check_run_id=1785480952

Ah, because the label need to be updated to 'lint-projects' (I thought I did this?).
https://github.com/submariner-io/shipyard/blob/master/.github/workflows/consuming.yml#L69

Ah, because the label need to be updated to 'lint-projects' (I thought I did this?).
https://github.com/submariner-io/shipyard/blob/master/.github/workflows/consuming.yml#L69

Ah, because the label need to be updated to 'lint-projects' (I thought I did this?).
https://github.com/submariner-io/shipyard/blob/master/.github/workflows/consuming.yml#L69
Edit: I think I was seeing a GH glitch. It was showing this as labeled validate-projects until I went and tried to add lint-projects and failed on a warning that label already exists (even though I double checked it didn't, both here and on the edit labels page).

That’s probably because I renamed the label while you were adding this comment ;-).

Ah, because the label need to be updated to 'lint-projects' (I thought I did this?).
https://github.com/submariner-io/shipyard/blob/master/.github/workflows/consuming.yml#L69
Edit: I think I was seeing a GH glitch. It was showing this as labeled validate-projects until I went and tried to add lint-projects and failed on a warning that label already exists (even though I double checked it didn't, both here and on the edit labels page).

That’s probably because I renamed the label while you were adding this comment ;-).

Submariner linting should be fixed by https://github.com/submariner-io/submariner/pull/1117

Submariner linting should be fixed by https://github.com/submariner-io/submariner/pull/1117


Don't parse correct for ENV which value is another defined env?

Following ENV not work as expected.
# .env
APP_PORT=3000
APP_NAME=production_line_report
LUCKY_ENV=development
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_NAME=${APP_NAME}_${LUCKY_ENV}

the expected DB_NAME is product_line_report_development, but the actually is: ${APP_NAME}_${LUCKY_ENV}.
If source ~/.env use bash shell,  the result is expected.
So, i consider we should support this, give the user the least surprise

I create a PR for fix this.


Select an area of DAT and show them in one line

for example, this DAT:

i wanna Merge them and display better, look like "2019-04-16.....".
i think the question is how to convert a select DAT to "ds":

the solution:


Update buildscript to filament 0.4.0

Depends on https://github.com/babric/manifest-polyfill/issues/3

In the current state, the pr has only the build command broken. Because of tinyv1 invert command.
yarn works. Also implemented additional commands yarnClient and yarnServer.


Contrasting Panels Issue and Sugestion

Just a small issue really. When the toolbar package is enabled and in a vertical orientation the top icon gets blended with the top bar. That icon doesn't adhere to the contrast panels setting though and remains the darker color even with the setting disabled. Would be nice if this could be fixed.

I was also thinking it would be nice to have more control over the contrasting panels. It would be good to have a control for each individual part so you can darken parts as you prefer. A select box with the options Normal, Dark, and Darker for the treeview, toolbar, editor, settings sidebar, and statusbar would be awesome.

I'll take a look at the toolbar icon. I agree that it should visually "merge" when the contrast is disabled.
About that feature… I guess you'll have to deal with your user stylesheets for it. I'm not a fan of the idea of having way too many options, I like to keep things simple.


Renaming master -> main branch scheduled for 2021-08-09

@donmccurdy and other interested parties: heads-up that I propose to rename the default branch of this repository to 'main' on or after 2021-08-09, following emerging Khronos & github practice. This will have very little impact, although if you have a checked-out repository clone, you may want to follow the simple instructions github will pop up on the repository webpage describing how to do the same locally.
If there is a concern about this, please raise it here by 2021-08-06.

Sounds good! No concerns, feel free to switch when ready.

This has been done.


Reorganize host.rs and wasm32.rs.

Reorganize host.rs and wasm32.rs into host.rs, wasi.rs, and wasi32.rs.
Most of the contents of host.rs was not actually host-specific, as most
of the types are fixed-size types like u32 or i64. These types are now
in wasi.rs.
The few types which do have pointer or usize-sized values now remain,
in two versions: host.rs has versions which use actual raw pointers and
usize, and wasi32.rs has versions which use u32 to represent them.
I'm not sure this is the right approach, and welcome comments here!
This approach does not provide a type-level distinction between most
host types and wasm types, though this isn't new; the previous code
also didn't make a strong distinction, because eg. host::__wasi_filetype_t
was the same type as wasm32::__wasi_filetype_t.

Sounds great! I really like the fact that those unclear cases need to be explicitly opted-in by using either host or wasi32.
One nitpick: how about removing use crate::wasi::* from wasi32.rs and host.rs so that wasi.rs and X are disjoint and that there's only one way of using the cross-platform types?
It would probably also be a good idea to add some comment about what the difference between host and wasi32 actually is.

Hmm, I think I actually prefer the way it is now, since, as far as I understand, for the lib user it is now a matter of importing either wasi_common::wasi32 or wasi_common::wasi64 as both (would) include the common wasi module, rather than importing wasi_common::wasi32 and wasi_common::wasi separately. A matter of taste I guess ;-)
When it comes to having crate::wasi::* inside of the host module, I'm fine with excluding the import here as the host module should only be used for internal purposes (I think).

Sounds great! I really like the fact that those unclear cases need to be explicitly opted-in by using either host or wasi32.
One nitpick: how about removing use crate::wasi::* from wasi32.rs and host.rs so that wasi.rs and X are disjoint and that there's only one way of using the cross-platform types?
It would probably also be a good idea to add some comment about what the difference between host and wasi32 actually is.

Hmm, I think I actually prefer the way it is now, since, as far as I understand, for the lib user it is now a matter of importing either wasi_common::wasi32 or wasi_common::wasi64 as both (would) include the common wasi module, rather than importing wasi_common::wasi32 and wasi_common::wasi separately. A matter of taste I guess ;-)
When it comes to having crate::wasi::* inside of the host module, I'm fine with excluding the import here as the host module should only be used for internal purposes (I think).

Actually, I misread this. Unless we make use crate::wasi::* public, I agree with @marmistrz that it might make more sense to make wasi32 and host disjoint by removing the import altogether.

The wasm and host versions of fixed-size types had the advantage of making a distinction between what has to be encoded as little-endian vs what may use a different encoding.

One nitpick: how about removing use crate::wasi::* from wasi32.rs and host.rs so that wasi.rs and X are disjoint and that there's only one way of using the cross-platform types?

It a plain use, not a pub use, so iirc it's not exported. host.rs and wasi32.rs do depend on things declared in wasi.rs, so they need the import, but they don't export it to their users. There's only one way to use the cross-platforms types, and that's wasi::.

Yet another thing that slipped through the radar, shouldn't these be public? I'm not sure whether all of them, but type aliases such as uintptr_t for sure as it's needed in order to plug in the lib into the runtime, for instance, as is the case in wasmtime_wasi#L166.

The wasm and host versions of fixed-size types had the advantage of making a distinction between what has to be encoded as little-endian vs what may use a different encoding.

There are a few different ways to could approach this, but I'd like to propose the following approach:
Types like __wasi_fd_t are always in host-endian order. The only place we should have endianness conversions happening is in src/memory.rs when we're loading out of a wasm linear memory (which is explicitly little-endian), and while this isn't the case yet, it shouldn't cast into __wasi_fd_t and other types until it's done the conversion. Hopefully soon, most of src/memory.rs will be auto-generated, which should make this feasible.
Does that make sense?

Oops, forgot to actually reply to this:

Yet another thing that slipped through the radar, shouldn't these be public? I'm not sure whether all of them, but type aliases such as uintptr_t for sure as it's needed in order to plug in the lib into the runtime, for instance, as is the case in wasmtime_wasi#L166.

I believe this is sorted out in the rebase I just pushed.

With the latest push, I've now added a patch implementing this idea, of fully encapsulating all endianness issues in memory.rs.
I haven't tested it on a big-endian platform, so it's possible there are endianness bugs (though the code before this patch definitely has endianness bugs), however now we have a principled and simple approach, and we can easily fix any bugs that are found.

And of course I forgot to check the Windows platform the unused code. Perhaps in those 4 instances that caused the CI to fail on Windows:
error: constant item is never used: `RIGHTS_BLOCK_DEVICE_BASE`
   --> src\wasi.rs:152:1
    |
152 | pub(crate) const RIGHTS_BLOCK_DEVICE_BASE: __wasi_rights_t = RIGHTS_ALL;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `-D dead-code` implied by `-D warnings`

error: constant item is never used: `RIGHTS_BLOCK_DEVICE_INHERITING`
   --> src\wasi.rs:153:1
    |
153 | pub(crate) const RIGHTS_BLOCK_DEVICE_INHERITING: __wasi_rights_t = RIGHTS_ALL;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: constant item is never used: `RIGHTS_CHARACTER_DEVICE_BASE`
   --> src\wasi.rs:154:1
    |
154 | pub(crate) const RIGHTS_CHARACTER_DEVICE_BASE: __wasi_rights_t = RIGHTS_ALL;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: constant item is never used: `RIGHTS_CHARACTER_DEVICE_INHERITING`
   --> src\wasi.rs:155:1
    |
155 | pub(crate) const RIGHTS_CHARACTER_DEVICE_INHERITING: __wasi_rights_t = RIGHTS_ALL;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

we could add #[allow(unused)] next to each item? What are your thoughts on this? Ultimately, when we fill in the blanks in the Windows impl, all of the above constants will be used :-)

Oops, I didn't see your comment here. I'll clean that up in a followup PR.

Oops, I didn't see your comment here. I'll clean that up in a followup PR.

Np! :-)


BUG in freeHand and question regarding globalImageIdSpecificToolStateManager

While probe has a control to avoid placing a ROI in a region out of the physical values ((x < 0 || y < 0 || x >= eventData.image.columns || y >= eventData.image.rows)) freeHand doesn't have such control... you can pan the DCM getting a "dark" area and then put a corner of the polygon there.

Thanks.

Hi Carlo,
Sorry for the long delay. I just fixed this in 6a742aa8e1a3599607ed24011ee13445929eba7b.
I'll close the issue now.

thank you so much: I'll check it out ASAP
On Wed, Dec 9, 2015 at 1:30 PM, Erik Ziegler<EMAIL_ADDRESS>wrote:

Closed #122 https://github.com/chafey/cornerstoneTools/issues/122.
—
Reply to this email directly or view it on GitHub
https://github.com/chafey/cornerstoneTools/issues/122#event-486817276.

--
Carlo Perassi - http://perassi.org/


envoy: Prevent resending NACKed resources also when there are no ACK observers

Adjust the version to prevent resending a NACKed resource also when
there are no ACK observers. Currently this only applies the NPHDS as
all other resource types do have ACK observers.
This fixes an issue where we would continuously keep resending a
failing IP/ID mapping resource that Envoy already has NACKed. There is
no indication this ever been triggered.
Signed-off-by: Jarno Rajahalme<EMAIL_ADDRESS>

This change is

test-me-please


Values in all of the table will sometimes mixed within a single table.

Describe the bug
Values in all of the table will sometimes mixed within a single table. Refresh function would fix the problem temporarily. But after a few searches and refreshes, it would then again mix all the values into a singular table.

To Reproduce
Steps to reproduce the behavior:

Go to 'the CMS Window and Search and Refresh the tables'
See the Values in the Table. It would mixed.
See error

Expected behavior
It should not mixed with the values from the other tables

Resolve at #29


Added error check and halt to exit with non-zero.

This addresses issue #131.

Even if you don't include the return option the user might do that so you have to catch both possible error returns error (not a tuple) and (error es ws).
I plan to change the return formats of the compiler to accommodate the possibility of having multiple modules in a file. I am not myself especially fond of the idea but I intend to be prepared.

This will need some other fixes because of the new compiler output.


Renamed deprecated ember install:addon

Renamed deprecated ember install:addon to ember install. This feature has been deprecated since Ember CLI v0.2.3, for more information see the release notes.

Good catch, thanks


test(nuekit): drop removed function from tests

The tests fail, because a removed function parseMarkdown (now handled by nuemark) is imported by the test file nuekit/test/misc.test.js.
See the workflow run test log https://github.com/nuejs/nue/actions/runs/7500154128/job/20418283484#step:4:106
Should also solve the red badge in the README mentioned here: https://github.com/nuejs/nue/pull/155#issuecomment-1888722726

Awesome. Thanks! I can see all tests passed for this commit. For some reason, the red badge is still there.

For me it's green again. Maybe it just took a while to update?


Notifications are a pest, how to disable?

Nice widget, but how do i disable the status bar icon and notifications?
I opted in for a touchbar widget, not a notification backdoor to my attention.
I can not disable it in the notification center.

Okay, nvm i thought it would implement its own notification gateway, while it is just there for setting the interval how often the bar queries for notification badge updates...


WEBPACK DOESN'T COMPILE  PRODUCTION

Do you want to request a feature or report a bug?
BUG

What is the current behavior?
FAILS TO COMPILE WHEN RUN "NPM RUN BUILD", HAS NO ISSUE RUNNING NPM RUN DEV
If the current behavior is a bug, please provide the steps to reproduce.
AT THE MOMENT USING SEED FROM https://github.com/A-Tokyo/generator-at-angular , HOWEVER PROBLEM DOESN"T ONLY HAPPEN ON THAT PARTICULAR SEED AND I"VE TRIED OTHERS.

What is the expected behavior?
COMPILED DIST FOLDER READY TO UPLOAD VIA FTP TO THE SERVER.
If this is a feature request, what is motivation or use case for changing the behavior?
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.
WIN10, POWERSHELL, NPM, NODE ALL LATEST VERSIONS.  ANGULAR1.X
=======WEBPACK.CONFIG.JS=============
'use strict';
const _ = require('lodash');
let _configs = {

  // global section
  global: require(__dirname + '/config/webpack/global'),

  // config by enviroments
  production: require(__dirname + '/config/webpack/environments/production'),
  development: require(__dirname + '/config/webpack/environments/development')
};

let _load = function() {
  let ENV = process.env.NODE_ENV
    ? process.env.NODE_ENV
    : 'production';

  console.log('Current Environment: ', ENV);

  // load config file by environment
  return _configs && _.merge(
    _configs.global(__dirname),
    _configs[ENV](__dirname)
  );
};

module.exports = _load();

========PACKAGE.JSON==========
{
  "name": "sjoPintor",
  "version": "0.1.0",
  "description": "Awesome Exterior/Interior painting company in Costa Rica",
  "homepage": "http://sanjosepintor.com",
  "repository": "",
  "author": {
    "name": "This one guy",
    "email"<EMAIL_ADDRESS>    "url": ""
  },
  "scripts": {
    "build": "cross-env NODE_ENV=production webpack -p --colors",
    "dev": "cross-env NODE_ENV=development webpack-dev-server --progress",
    "docs": "node_modules/node-static/bin/cli.js ./docs -i docs.html -p 8081",
    "start": "npm run dev",
    "test": "karma start --log-level debug --single-run",
    "tests": "karma start --log-level debug"
  },
  "dependencies": {
    "angular": "^1.6.3",
    "angular-animate": "^1.6.3",
    "angular-aria": "^1.6.3",
    "angular-cookie": "^4.1.0",
    "angular-dynamic-locale": "^0.1.32",
    "angular-loading-bar": "^0.9.0",
    "angular-local-storage": "^0.5.2",
    "angular-material": "^1.1.3",
    "angular-messages": "^1.6.3",
    "angular-mocks": "^1.6.1",
    "angular-sanitize": "^1.6.3",
    "angular-translate": "^2.15.1",
    "angular-translate-loader-static-files": "^2.15.1",
    "angular-translate-storage-cookie": "^2.15.1",
    "angular-translate-storage-local": "^2.15.1",
    "angular-ui-router": "^0.4.2",
    "angulartics": "^1.4.0",
    "angulartics-google-analytics": "^0.4.0",
    "babel-core": "^6.14.0",
    "babel-plugin-add-module-exports": "^0.2.1",
    "babel-plugin-angularjs-annotate": "^0.5.2",
    "babel-plugin-syntax-flow": "^6.13.0",
    "babel-plugin-transform-runtime": "^6.12.0",
    "babel-preset-es2015": "^6.16.0",
    "babel-preset-es2017": "^6.16.0",
    "babel-preset-stage-1": "^6.16.0",
    "babel-runtime": "^6.11.6",
    "bootstrap-sass": "^3.3.7",
    "es6-promise": "^4.0.3",
    "font-awesome": "^4.6.3",
    "lodash": "^4.17.4",
    "manifest-revision-webpack-plugin": "^0.3.0",
    "material-icons": "^0.1.0",
    "moment": "^2.17.1",
    "ngmap": "^1.18.4",
    "normalize-css": "^2.3.1",
    "oclazyload": "^1.1.0",
    "satellizer": "^0.15.5",
    "url": "^0.11.0",
    "webpack": "2.1.0-beta.25"
  },
  "devDependencies": {
    "angular-translate": "^2.15.1",
    "assets-webpack-plugin": "^3.4.0",
    "autoprefixer": "^6.5.0",
    "babel-loader": "^6.2.5",
    "baggage-loader": "^0.2.4",
    "clean-webpack-plugin": "^0.1.10",
    "copy-webpack-plugin": "^4.0.1",
    "cross-env": "^3.0.0",
    "css-loader": "^0.25.0",
    "eslint-loader": "~1.5.0",
    "extract-text-webpack-plugin": "^2.0.0-beta.5",
    "file-loader": "^0.9.0",
    "html-loader": "^0.4.4",
    "html-webpack-plugin": "^2.22.0",
    "imagemin-pngquant": "^5.0.0",
    "jasmine": "^2.2.1",
    "jasmine-core": "^2.2.0",
    "karma": "^0.13.2",
    "karma-jasmine": "^0.3.5",
    "karma-phantomjs2-launcher": "^0.5.0",
    "karma-webpack": "^1.6.0",
    "ngtemplate-loader": "^1.3.1",
    "node-sass": "^3.4.0",
    "node-static": "^0.7.9",
    "postcss-loader": "^0.13.0",
    "sass-loader": "^4.0.2",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.7",
    "webpack-dev-server": "2.1.0-beta.7"
  },
  "engines": {
    "node": ">=0.12.0"
  }
}

==========WEBPACK.GLOBAL.JS=============
'use strict';
const path = require('path');
const webpack = require('webpack');
const autoprefixer = require('autoprefixer');
const Manifest = require('manifest-revision-webpack-plugin');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CopyWebpackPlugin = require('copy-webpack-plugin');

const rootPublic = path.resolve('./src');
const NODE_ENV = process.env.NODE_ENV || "production";
const DEVELOPMENT = NODE_ENV === "production" ? false : true;
const stylesLoader = 'css?root=' + rootPublic + '&sourceMap!postcss!sass?outputStyle=expanded&sourceMap=true&sourceMapContents=true';

module.exports = function (_path) {
  const rootAssetPath = _path + 'src';

  let webpackConfig = {
    // entry points
    entry: {
      app: _path + '/src/app/index.bootstrap.js'
    },

    // output system
    output: {
      path: _path + '/dist',
      filename: '[name].js',
      publicPath: '/'
    },

    // // global dev server configs
    // // uncomment the following lines if you need to configure a proxy globaly
    // devServer: {
    //   // configure proxy
    //   proxy: {
    //     '/api/*': {
    //       target: 'https://jsonplaceholder.typicode.com/',
    //       changeOrigin: true,
    //       // uncomment this if you need to remove the /api prefix from the url
    //       // pathRewrite: {'^/api': ''},
    //     },
    //   },
    // },

    // resolves modules
    resolve: {
      extensions: ['.js', '.es6', '.jsx', '.scss', '.css'],
      alias: {
        _appRoot: path.join(_path, 'src', 'app'),
        _images: path.join(_path, 'src', 'app', 'assets', 'images'),
        _stylesheets: path.join(_path, 'src', 'app', 'assets', 'styles'),
        _scripts: path.join(_path, 'src', 'app', 'assets', 'js')
      }
    },

    // modules resolvers
    module: {
      noParse: [],
      loaders: [{
        test: /\.html$/,
        loaders: [
          {
            loader: 'ngtemplate',
            query: {
              relativeTo: path.join(_path, '/src')
            }
          }, {
            loader: 'html',
            query: {
              attrs: ['img:src', 'img:data-src']
            }
          }
        ]
      }, {
        test: /\.js$/,
        exclude: [
          path.resolve(_path, "node_modules")
        ],
        loaders: [
          {
            loader: 'babel',
            query: {
              cacheDirectory: false
            }
          },
          'baggage?[file].html&[file].css'
        ]
      }, {
        test: /\.css$/,
        loaders: [
          'style',
          'css?sourceMap',
          'postcss'
        ]
      }, {
        test: /\.(scss|sass)$/,
        loader: DEVELOPMENT ? ('style!' + stylesLoader) : ExtractTextPlugin.extract({
          fallbackLoader: "style",
          loader: stylesLoader
        })
      }, {
        test: /\.(ttf|otf|svg|eot|woff(2)?)(\?[a-z0-9=&.]+)?$/,
        loaders: [
          {
            loader: 'url-loader',
            query: {
              name: 'assets/fonts/[name]_[hash].[ext]'
            }
          }
        ]
      },
      /*
       * Uncomment the following lines to load all the images to assets/images
       * and access them through 'assets/images/[name].[ext]'
       * p.s: some prefer to use copyWebpackPlugin to copy images as static files
       * This is done below in the plugins part
       */
      // {
      //   test: /\.(jpe?g|png|gif|svg)$/i,
      //   loaders: [
      //     {
      //       // load images to /assets/images/[name].[ext]
      //       loader: 'file-loader',
      //       query: {
      //         name: 'assets/images/[name].[ext]'
      //       }
      //     }
      //   ]
      // }
      ]
    },

    // load plugins
    plugins: [
      new webpack.LoaderOptionsPlugin({
        options: {
          // PostCSS
          postcss: [autoprefixer({browsers: ['last 5 versions']})],
        }
      }),
      // new webpack.ProvidePlugin({
      //
      //     $: 'jquery',
      //     jQuery: 'jquery',
      //     'window.jQuery': 'jquery',
      //
      //
      //     moment: 'moment',
      //     'window.moment': 'moment',
      //
      //
      //     _: 'lodash',
      //     'window._': 'lodash'
      //
      // }),
      /*
      * copyWebpackPlugin
      * copies json files from src/assets/data to dist/assets/data
      * copies image files from src/assets/images to dist/assets/images
      * To be accessed through static links
      */
      new CopyWebpackPlugin([
        { from: 'src/assets/data', to: `${_path}/dist/assets/data`},
        { from: 'src/assets/images', to: `${_path}/dist/assets/images`}
      ]),
      new webpack.DefinePlugin({
        'NODE_ENV': JSON.stringify(NODE_ENV)
      }),
      new webpack.NoErrorsPlugin(),
      new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
      new webpack.optimize.AggressiveMergingPlugin({
        moveToParents: true
      }),
      new webpack.optimize.CommonsChunkPlugin({
        name: 'common',
        async: true,
        children: true,
        minChunks: Infinity
      }),
      new Manifest(path.join(_path + '/config', 'manifest.json'), {
        rootAssetPath: rootAssetPath,
        ignorePaths: ['.DS_Store']
      }),
      new ExtractTextPlugin({
        filename: 'assets/styles/css/[name]' + (NODE_ENV === 'development' ? '' : '.[chunkhash]') + '.css',
        allChunks: true
      }),
      new HtmlWebpackPlugin({
        filename: 'index.html',
        template: path.join(_path, 'src', 'tpl-index.ejs')
      })
    ]
  };

  return webpackConfig;

};

========WEBPACK.DEVELOPMENT.JS===========
const webpack = require('webpack');

module.exports = function(_path) {
  return {
    context: _path,
    devtool: 'cheap-source-map',
    devServer: {
      contentBase: './dist',
      info: true,
      hot: true,
      inline: true,
      host: '<IP_ADDRESS>',
      port: 8080
      // // uncomment the following lines if you need to configure a proxy for dev env
      // // configure proxy
      // proxy: {
      //   '/api/*': {
      //     target: 'https://jsonplaceholder.typicode.com/',
      //     changeOrigin: true,
      //     // uncomment this if you need to remove the /api prefix from the url
      //     // pathRewrite: {'^/api': ''},
      //   }
    },
    plugins: [
      new webpack.HotModuleReplacementPlugin()
    ]
  };
};

========WEBPACK.PRODUCTION.JS==========
const webpack = require('webpack');
const CleanWebpackPlugin = require('clean-webpack-plugin');

module.exports = function(_path) {
  return {
    context: _path,
    devtool: 'cheap-source-map',
    output: {
      publicPath: '/',
      filename: '[name].[chunkhash].js'
    },
    plugins: [
      new CleanWebpackPlugin(['dist'], {
        root: _path,
        verbose: true,
        dry: false
      }),
      new webpack.optimize.DedupePlugin(),
      new webpack.optimize.UglifyJsPlugin({
        minimize: true,
        warnings: false,
        sourceMap: true,
      })
    ]
  };
};

@secretgspot Jesus Christ... 😛 Don't use a seed, it's undescripable outdated :D
"engines": {
   "node": ">=0.12.0"
}

webpack  v2 is  >= node v4 LTS only
"webpack": "2.1.0-beta.25",
"webpack-dev-server": "2.1.0-beta.7"

Both are outdated please update to the respective releases (v2.2.1, v2.4.1)
plugins: [
  new webpack.LoaderOptionsPlugin({
    options: {
      postcss: [ autoprefixer({browsers: ['last 5 versions']}) ],
    }
})

Remove that and update to postcss-loader >= v1.0.0 (v1.3.1).
But the hole config is a mess, e.g all loader configs are written with outdated syntax.
"extract-text-webpack-plugin": "^2.0.0-beta.5",

ExtractTextPlugin had known bugs before >= v2.0.0 (no beta)
....

Please apply Michael's fixes. If you have still trouble after that, use Stack Overflow as instructed in the issue template.

Michael, any recommendation on which seed to use that is compatible with webpack 2 and uses latests standards?   You can't expect everyone to be good at everything just like you can't expect an electrician be good at plumbing.

@secretgspot https://devhub.io/search?keyword=angular2-webpack I search through a few here, bc I'm not using Angular 2 myself, but most of them are outdated an use webpack-beta.x if I have a few minutes I try to sanitate the config you posted above...
webpack.config.js
'use strict';

const path = require('path');
const webpack = require('webpack');

const Manifest = require('manifest-revision-webpack-plugin');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CopyWebpackPlugin = require('copy-webpack-plugin');

const NODE_ENV = process.env.NODE_ENV || "production";
const DEVELOPMENT = NODE_ENV === "production" ? false : true;

module.exports = {
    entry: {
      app: path.resolve(__dirname , 'src/app/index.bootstrap.js')
    },
    output: {
      path: path.resolve(__dirname, 'dist')
      filename: '[name].js',
      publicPath: '/'
    },
    resolve: {
      extensions: [ '.js', '.scss', '.css'],
      alias: {
        root: path.resolve(__dirname, 'src', 'app'),
        images: path.join(__dirname, 'src', 'app', 'assets', 'images'),
        stylesheets: path.join(__dirname, 'src', 'app', 'assets', 'styles'),
        scripts: path.join(__dirname, 'src', 'app', 'assets', 'js')
      }
    },
    module: {
      rules: [
        {
           test: /\.html$/,
           use: [
             {
                 loader: 'ngtemplate',
                 options: { relativeTo: path.join(_path, '/src')  }
             },
             {
                loader: 'html-loader',
                options: {
                   attrs: ['img:src', 'img:data-src']
                }
             }
         ]
        },
        {
           test: /\.js$/,
           exclude: [ path.resolve(__dirname, "node_modules") ],
           use: [
               {
                   loader: 'babel',
                   options: {}
                }
            ]
         },
         {
        test: /\.css$/,
        use: [
           {
             loader: 'style-loader', sourceMap:true
           },
           {
              loader: 'css-loader', options: { importLoaders: 2, sourceMap: true } },
           {
              loader: 'postcss-loader',
              options: {
                plugins: () => [ require('autoprefixer')({ browser: 'last 4 versions' }) ]
                sourceMap: true
              }
           },
           {
              loader: 'sass-loader'
              options: {
                includePaths: path.resolve('path/to/your/@imports'),
                sourceMap: true
              }
            }
       ]
      },
      {
        test: /\.(ttf|otf|svg|eot|woff(2)?)(\?[a-z0-9=&.]+)?$/,
        use: [
          {
             loader: 'url-loader',
             options: {  name: 'assets/fonts/[name]_[hash].[ext]' }
          }
        ]
      },
      {
         test: /\.(jpe?g|png|gif|svg)$/i,
         use: [
           {
               loader: 'file-loader',
               options: { name: 'assets/images/[name].[ext]'  }
            }
          ]
        }
      ]
    },
    plugins: [
      // new webpack.ProvidePlugin({
      //     $: 'jquery',
      //     jQuery: 'jquery',
      //     'window.jQuery': 'jquery',
      //
      //     moment: 'moment',
      //     'window.moment': 'moment',
      //
      //     _: 'lodash',
      //     'window._': 'lodash'
      // }),
      new CopyWebpackPlugin([
        { from: 'src/assets/data', to: `${__dirname}/dist/assets/data`},
        { from: 'src/assets/images', to: `${__dirname}/dist/assets/images`}
      ]),
      new webpack.DefinePlugin({
        'NODE_ENV': JSON.stringify(NODE_ENV)
      }),
      new webpack.NoErrorsPlugin(),
      new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
      new webpack.optimize.AggressiveMergingPlugin({
        moveToParents: true
      }),
      new webpack.optimize.CommonsChunkPlugin({
        name: 'common',
        async: true,
        children: true,
        minChunks: Infinity
      }),
      new Manifest(path.resolve(__dirname, 'config', 'manifest.json'), {
        rootAssetPath: rootAssetPath,
        ignorePaths: [ '.DS_Store' ]
      }),
      new ExtractTextPlugin({
        filename: `assets/styles/css/[name]${ NODE_ENV === 'development' ? '' : '.[chunkhash]'}.css`,
        allChunks: true
      }),
      new HtmlWebpackPlugin({
        filename: 'index.html',
        template: path.resolve(__dirname, 'src', 'tpl-index.ejs')
      })
    ]
  };

This config is likely not working atm but you can see a few mandantory upgrades.
You clearly should start from a simpler config at the beginning, this config is too much and unnecessary in general in my opinion: Also take a look at
Angular CLI
Angular Template Loader
Angular Starter Kit
Make the config as minimal as possible at first and build upon that, all the seeds and boilerplates are crap most of the time and bite you later on... For the long run
webpack Documentation

@michael-ciniawsky I've tried that but it fails, I was able to upgrade most of the components except for webpack to the latest version and still have app run in dev mode.  Also do you know where webpack compiles dist folder that it uses for dev preview?  I would like to at least be able to use that for now instead of nothing.. I tried checking in main folder and src but it's not there.. a

webpack-dev-server  keeps everything In Memory 😛 , but if you change webpack-dev-server => webpack and don't use NODE_ENV=production it should spit out a bundle, also if you upload a few components and the webpack.config.js/package.json as a github repo I will help you to fix the remaining bugs via code comments or PR

See also this seed
:warning: It's for Angular 1.x but the webpack setup is up-to-date, only for 'inspiration' and hints

sure, which components you need?

if it isn't a coporate project, which you can't publish for legislative reasons and it's not to bloated, just push that :stuck_out_tongue: and post the link here

Othewise a few dummy files (css, assets, components) the structure is important

project uploaded to here https://github.com/secretgspot/sanjosepintor

@secretgspot using caps lock is inappropriate 👎
@bebraw is not mean, we just have to deal with a lot of issues. That's why we need to distinguish between support requests and actual bug reports. Support requests should be made on StackOverflow or the Gitter chat. Bug reports need a short and precise description of the bug and a reproducible test case.
We don't have any obligation to fix your problem. Help us so that we can help you.

@michael-ciniawsky no luck?


Disallow 'block' as a default action

Currently, it is possible to specify 'block' as the default disruptive
action for any phase. If there is a rule for a phase with default
action 'block' which in turn uses 'block' as its disruptive action,
i.e., wants to use the default disruptive action, and the rule gets
triggered, libmodsecurity enters an infinite recursion with subsequent
segmentation violation.
Include a regression test for this scenario.

Hi @michaelgranzow-avi,
Thank you for the patch. Indeed the segfault is not welcomed. However, we still need to have the block working in the same fashion that we had on v2. Therefore, I have proposed a different fix. Available here: 6842d4bba8fa596f6141f5abcbb7d0b636c76eb0


bump lint version

This PR has two commits:

bumps lint to a much more recent version, both of the action and of golangci-lint, as well as fixes any lint errors that occurred
disables some testing lines for nettrace, specifically around unset properties, and comments them extensively

The second part is as follows. We have a test called TestUnresponsiveDest, where it sets a http.Client.Timeout and then calls a destination that is unresponsive and times out. What happens, however, is that go does not return the dialer with an error. It just kills the dialer. We get no response whatsoever. Thus, certain fields are not set and remain at timestamp absolute 0: DialEndAt, HandshakeEndAt, CtxCloseAt; as well as the boolean ctxClosed.
I spent some time looking for ways to capture the failed dial and thus set those parameters to the moment of failure. It might be there somewhere, but I have not found it yet. It likely is worth a future effort to find and fix this, as we should not have those fields unset. The handshake, dial and ctxclose all should be considered to be done when the entire client timeout fails.
To do that, I think we should override client.Do(), capture the "context deadline exceeded" error, and then close out anything in there. I am not sure.
In the meantime, though, we should not hold this PR up for that.

A set of yetus complaints (nitpick) about a comment in the build.yaml. I am making a single effort to fix it, if not, I will ignore it.

I found 2 test failures. One of them is just due to a changed certificate on LetsEncrypt, so the tests is out of date. I fixed that. The other is something I don't get. It is failing at httpclient_test.go:484, where is does:
	relTimeIsInBetween(t, dial.DialEndAt, dial.DialBeginAt, trace.TraceEndAt)

It checks in relTimeIsInBetween that all 3 parameters are relative via .IsRel, but in this case dial.DialEndAt is not relative. The other 2 parameters are.
How are these sourced and why is EndAt suddenly absolute?

Looks like this is the line:
	conn, err := netDialer.DialContext(ctx, network, address)

It never comes back to this code after calling it. I tried it both via debugging and old-school style print statements:
        td.tracer.publishTrace(dial)
        fmt.Println("publish trace")
        conn, err := netDialer.DialContext(ctx, network, address)
        fmt.Println("dial context")

The print before the dial is called; the one after never gets called, hence the DialEndAt does not get set. The question is why?

Looks like this is the line:
	conn, err := netDialer.DialContext(ctx, network, address)

It never comes back to this code after calling it. I tried it both via debugging and old-school style print statements:
        td.tracer.publishTrace(dial)
        fmt.Println("publish trace")
        conn, err := netDialer.DialContext(ctx, network, address)
        fmt.Println("dial context")

The print before the dial is called; the one after never gets called, hence the DialEndAt does not get set. The question is why?

Using public IP in that unit test is probably not ideal. Try this:
diff --git a/nettrace/httpclient_test.go b/nettrace/httpclient_test.go
index 86a5aaf..581138f 100644
--- a/nettrace/httpclient_test.go
+++ b/nettrace/httpclient_test.go
@@ -466,7 +466,7 @@ func TestUnresponsiveDest(test *testing.T) {
        }, opts...)
        t.Expect(err).ToNot(HaveOccurred())

-       req, err := http.NewRequest("GET", "https://<IP_ADDRESS>", nil)
+       req, err := http.NewRequest("GET", "https://<IP_ADDRESS>", nil)
        t.Expect(err).ToNot(HaveOccurred())
        resp, err := client.Do(req)
        t.Expect(err).To(HaveOccurred())
@@ -483,7 +483,7 @@ func TestUnresponsiveDest(test *testing.T) {
        relTimeIsInBetween(t, dial.DialBeginAt, traceBeginAsRel, trace.TraceEndAt)
        relTimeIsInBetween(t, dial.DialEndAt, dial.DialBeginAt, trace.TraceEndAt)
        relTimeIsInBetween(t, dial.CtxCloseAt, dial.DialBeginAt, trace.TraceEndAt)
-       t.Expect(dial.DstAddress).To(Equal("<IP_ADDRESS>:443"))
+       t.Expect(dial.DstAddress).To(Equal("<IP_ADDRESS>:443"))
        t.Expect(dial.ResolverDials).To(BeEmpty())
        t.Expect(dial.DialErr).ToNot(BeZero())
        t.Expect(dial.EstablishedConn).To(BeZero())
@@ -526,7 +526,7 @@ func TestUnresponsiveDest(test *testing.T) {
        relTimeIsInBetween(t, httpReq.ReqSentAt, traceBeginAsRel, trace.TraceEndAt)
        t.Expect(httpReq.ReqError).ToNot(BeZero())
        t.Expect(httpReq.ReqMethod).To(Equal("GET"))
-       t.Expect(httpReq.ReqURL).To(Equal("https://<IP_ADDRESS>"))
+       t.Expect(httpReq.ReqURL).To(Equal("https://<IP_ADDRESS>"))
        t.Expect(httpReq.ReqHeader).To(BeEmpty())
        t.Expect(httpReq.ReqContentLen).To(BeZero())
        t.Expect(httpReq.RespRecvAt.Undefined()).To(BeTrue())

(I'm assuming there is no HTTP server running on the local IP <IP_ADDRESS>)

I have a little more information. When we create the net.Dialer, we set Timeout: td.handshakeTimeout, which, in the tests, is 0. When that is the case, I believe that our 5 second http.Client timeout, which is less than the Dialer.Timeout of 0 (i.e. infinite), causes the overall http.Client to stop before the dialer gives up, and everything is cancelled.
Based on the behaviour of client and dialer, I believe that this will cause the client to return and the DialContext call to end silently. I do not know how they make that happen.
I tested it by putting a 4 second timeout in Dialer{Timeout}, and, while it still failed, the section of code after DialContext did get executed.
In theory, the DialContext also should respect the timeout based on the context passed, so when it sends a Done(), the DialContext should return, but for reasons unclear to me it does not.

I have a little more information. When we create the net.Dialer, we set Timeout: td.handshakeTimeout, which, in the tests, is 0. When that is the case, I believe that our 5 second http.Client timeout, which is less than the Dialer.Timeout of 0 (i.e. infinite), causes the overall http.Client to stop before the dialer gives up, and everything is cancelled.
Based on the behaviour of client and dialer, I believe that this will cause the client to return and the DialContext call to end silently. I do not know how they make that happen.
I tested it by putting a 4 second timeout in Dialer{Timeout}, and, while it still failed, the section of code after DialContext did get executed.
In theory, the DialContext also should respect the timeout based on the context passed, so when it sends a Done(), the DialContext should return, but for reasons unclear to me it does not.

Interesting. According to http.Client docs the Timeout (in the test 5 seconds) will interrupt reading of the Response.Body when it elapses. But it does not mention what happens with Dialers, so your theory of DialContext` returning silently somehow might be true.
For the sake of the unit test, does it help to set this to something <5 seconds?

does it help to set this to something <5 seconds

I tried in the test:
        client, err := nettrace.NewHTTPClient(nettrace.HTTPClientCfg{
                ReqTimeout: 5 * time.Second,
                TCPHandshakeTimeout: 4 * time.Second,
        }, opts...)

It now does, indeed, successfully return from the dialer and set the DialEndAt. The test still fails, so I need to dig deeper, but it is a good step in the right direction.

Confirmed. It does, indeed, solve that problem. The reason the test fails is another one. The goroutine that sets the context done also does not get called when it times out.

Here is a simpler way to recreate the issue:
package main

import (
        "context"
        "log"
        "net"
        "net/http"
        "time"
)

func dial(ctx context.Context, network string, addr string) (net.Conn, error) {
        netDialer := net.Dialer{}
        log.Println("will call DialContext")
        conn, err := netDialer.DialContext(ctx, network, addr)
        log.Println("completed DialContext")
        return conn, err
}

func main() {
        client := http.Client{
                Timeout:   5 * time.Second,
                Transport: &http.Transport{
                        DialContext: dial,
                },
        }
        req, err := http.NewRequest("GET", "https://<IP_ADDRESS>", nil)
        if err != nil {
                log.Fatal(err)
        }
        log.Println("will call client.Do()")
        _, err = client.Do(req)
        log.Println("completed client.Do()")
        log.Println(err)
}

When you run this, you get the following output:
2024/11/28 14:27:33 will call client.Do()
2024/11/28 14:27:33 will call DialContext
2024/11/28 14:27:38 completed client.Do()
2024/11/28 14:27:38 Get "https://<IP_ADDRESS>": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Notice that "completed DialContext" never gets called.
From go's design perspective, you cannot necessarily rely on the DialContext returning. That is what causes our problems, as we do rely on it. If you set a specific timeout for the dialing, then it will eventually time out. But if that is longer than the overall client timeout, nothing will happen. We depend on the post-DialContext() call to set various parameters.

I spent far far too much time on this. I don't have an answer. The reality is that the DialContext will not return when the overall http.Client.Timeout deadline exceeds. It is a different context.Context, so you cannot even capture it inside the dialer. Basically, our nettrace functionality is a bit incorrect. When Timeout is exceeded, you will not get either of the following set:

trace.Dials[*].DialEndAt - set inside dial() when the net.Dialer.DialContext() returns, which it does not
trace.Dials[*].CtxCloseAt - set inside dial() when the context sends a Done(), which it does not

This breaks the tests, sure, but more importantly it carries around info that is incorrect.
I am somewhat at a loss as to how to fix it.

I had to disable a few lines of the tests. A detailed explanation is in the updated comment for this PR, as well as inside the code itself. Tests pass. Would like another review please.

Thanks for investigating the failing unit test. It’s unfortunate that the HTTP client/dial behaves this way.

It’s unfortunate that the HTTP client/dial behaves this way

It is. But a lot of investigation brought it to fore. I even spent time on various contexts and stuff. Different contexts to client and Dial. Oh well.


My project is lost

Describe the bug
I cannot restore my project - seems like no files were stored.
Deployed project for reference: https://benevolent-beijinho-6aa23d.netlify.app/
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-5tg95q
Steps to reproduce

Go to project url
Try to import files
No files are being imported

Expected behavior
Project files should be imported.
Screen Recording / Screenshot
No response
Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 129
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 34853470,
  "usedJSHeapSize": 34159114,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = rebusweb
Chat ID = 7c7bf29066a1

Additional context
No response

I have the same issue here.


GUI: do not assume transaction inputs never disappear

I got a crash at startup when computing the fees here for a Spend whose input disappeared:
https://github.com/wizardsardine/liana/blob/514535d8d6fec705c7271241f68276c42b918150/gui/src/daemon/model.rs#L59-L138
More generally it seems the GUI assumes the inputs for a transaction are always available. It's unfortunately not the case. Unconfirmed transactions often get replaced. They can sometimes disappear. It can also, more rarely, happen to confirmed transactions during a reorg. It's just not something we can assume always holds.
We should not crash (or worse, compute incorrect values) when inputs aren't available. Instead, we could display a placeholder with for instance a tooltip "inputs unavailable for this transaction".

In fact the GUI can always get the previous output's value from the PSBT input? We always set it when we create a PSBT, and if the user imports a PSBT without it we can just display a placeholder.

Ah good idea, I did not check that. Also what do you think for unconfirmed transaction moved away from the mempool or with coins removed from database to just not display them in the list payments, and list transactions and user can still rebroadcast them through the psbt panel ?

That makes sense. We could even erase in DB the coins created by an unconfirmed transaction when it gets dropped from the mempool. Any reason why we don't do that currently? There is probably one.

So in order to fix our problem we have, if tx is ejected out of mempool:

Is this issue specific to unconfirmed transactions? I thought it would also apply to listing transactions with otherwise unknown inputs.

If coins are missing for confirmed transactions then the gui will only show a wrong history because of missing deposits or missing change but will not crash as we do a check for fee calculation.

xref https://github.com/wizardsardine/liana/pull/825

closed by #825


WIP - update @octokit/rest to version 15.5.1

Closes #465
This is good to go from my side. /cc @timoschilling

the docs were updated which gives us some fixes for the checks API:
https://github.com/octokit/routes/pull/147/commits
I’ll merge with the new version that has these fixes


IcDataTable clicking sort button causes horizontal scroll bar

Clicking on the sort button causes a horizontal scrollbar to appear on the table. When the mouse moves out of the hitbox of the button, the scrollbar disappears. Seems to only happen when clicking "Sort ascending".

Hello @MI6-651, afraid we're struggling to replicate this issue. Could you confirm whether this is still an issue and potentially provide a code snippet to assist us with debugging this. Thanks.


PROPOSAL - More flexible report options

Is your feature request related to a problem? Please describe.
My team finds the limited reporting options a bit of a hassle.  A team member just got back from vacation, and rather than view standup reports day by day, it would be much easier to view a group of reports.  Another team member was wanting to view his reports for the week to determine if he had reported an issue but had to go through all the reports for the week for the entire team to determine that he hadn't.
Describe the solution you'd like
We would like more reporting options, at a minimum the ability to:

Specify a range of dates to view reports for: /standup report date1-date2
To view a report for a specific person for the given date:   /standup report username
To view a report for a specific interval for a specific person: /standup report date1-date2 username

Describe alternatives you've considered
Right now, we have generated reports on a day by day basis and copied them into a document to make it easier to view a full summary for a period of time.  This solution is less than optimal, however.

@dmatz thank you for the feature proposal.
This is definitely useful and something many users have mentioned. There's another similar feature request of summarized weekly reports. But I think the same can be adapted for any arbitrary date range. I also like your idea of slash commands.
In an error to understand your use case for reports, I think you're looking for an aggregated report rather than a summarized report. Something that allows viewing a team's standup in full, for more than one day. Did I get that right?
It would be awesome if you could share the aggregated sheet you prepared. It would be interesting to see what worked for you and also help in designing a report view.

Here's an example of the file I pulled this week:  https://docs.google.com/document/d/e/2PACX-1vSYxQb4c6KAgMCz5O7SnNin7unfypI5bUxNMfEuYThPKJHwY9rg4yLPtJvDk6OuX_ZE-JbgV7giKtCb/pub
That's not my ideal form for this, but it lets us generate our report to management.  Even generating something like that from the tool would be a great first step and save a bunch of work copying and pasting reports.    If I can copy and paste that for and arbitrary date range, I'm a step ahead of the game.
The ideal report for us would probably be to provide a person's yesterday for all days of an arbitrary date range.  Or provide a checkbox they could check next to an item to indicate it was complete and just report on those, but additional improvements to that sort of reporting could happen down the road.


Start - perf / re-render fixes add debounce

Summary | Résumé
This PR adds an initial perf improvement by adding debase to the Title Input ---

I have also added a small example of using Zustand selectors (doesn't improve anything in this case but starts the process)
Test instructions | Instructions pour tester la modification
Ensure highlight re-renders is turned on --- update the question note the re-render is debounced

We can do much more here but looking to break these updates into multiple PRs
Sequential steps (1., 2., 3., ...) that describe how to test this change. You should include
anything outside the README that will help the developer access your changes and be able to test
them such as any environmental setup steps and/or any time-based elements that this requires.
This will help a developer test things out without too much detective work.
Unresolved questions / Out of scope | Questions non résolues ou hors sujet
Are there any related issues or tangent features you consider out of scope for
this issue that could be addressed in the future? If so please create issues and provide
links in this section
Pull Request Checklist
Please complete the following items in the checklist before you request a review:

[x] Have you completely tested the functionality of change introduced in this PR? Is the PR solving the problem it's meant to solve within the scope of the related issue?
[x] The PR does not introduce any new issues such as failed tests, console warnings or new bugs.
[ ] If this PR adds a package have you ensured its licensed correctly and does not add additional security issues?
[ ] Is the code clean, readable and maintainable? Is it easy to understand and comprehend.
[ ] Does your code have adequate comprehensible comments? Do new functions have docstrings?
[ ] Have you modified the change log and updated any relevant documentation?
[ ] Is there adequate test coverage? Both unit tests and end-to-end tests where applicable?
[ ] If your PR is touching any UI is it accessible? Have you tested it with a screen reader? Have you tested it with automated testing tools such as axe?

Going to close this one and cherry pick only the debounce test into a new PR.


enable/disable linting command

For #8800

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[x] Appropriate comments and documentation strings in the code.
[ ] Has sufficient logging.
[ ] Has telemetry for enhancements.
[ ] The wiki is updated with any design decisions/details.

Codecov Report

Merging #15162 (bd2a3a6) into main (b155be4) will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##            main   #15162   +/-   ##
======================================
  Coverage     65%      65%
======================================
  Files        561      561
  Lines      26542    26542
  Branches    3806     3806
======================================
  Hits       17278    17278
  Misses      8561     8561
  Partials     703      703

Impacted Files
Coverage Δ

src/client/linters/linterCommands.ts
82% <100%> (ø)

Codecov Report

Merging #15162 (bd2a3a6) into main (b155be4) will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##            main   #15162   +/-   ##
======================================
  Coverage     65%      65%
======================================
  Files        561      561
  Lines      26542    26542
  Branches    3806     3806
======================================
  Hits       17278    17278
  Misses      8561     8561
  Partials     703      703

Impacted Files
Coverage Δ

src/client/linters/linterCommands.ts
82% <100%> (ø)

@kimadeline If you don't mind me asking, what's the status of this PR?

@kimadeline If you don't mind me asking, what's the status of this PR?


fix: [AAP-19694] Fix pod missing logs intermittently

This PR adds a log_timestamp field to activation_instance_log. It will store the log timestamps and use to tell whether the line is duplicated.
Resolves: AAP-19694

@hsong-rh does this account for the line number, when we delete the old lines the line number will have to be reset

@hsong-rh does this account for the line number, when we delete the old lines the line number will have to be reset

No, this PR only focuses on missing logs. I have asked @ttuffin to open another ticket for line number issue.


linux-2/linux-5 Android devices need to be rebooted

Storage is full :(

Linux-2 is recovered.

Linux-5 is recovered.


SCRD-3497 Refactor to enable replece controller

Refactor CollapsibleTable so that the logic for
replacing the controller can be put in a single place -- UpdateServer,
rather than spreading the logic between several components.
Remove several unused functions and renamed variables for clarity.
Remove unnecessary state variables
Simplify showing and hiding of dialog boxes and context menus

Rebased against master

One more note: when squash/merging this commit, please fix the commit message summary line to say 'replace' rather than 'replece'

Yes, SCRD-5340 is the bug for the replace dialog not updating the model, which is also not part of this PR. I have to admit that for repeated testing, it is nice to not update the model, so my desire to fix that in the short term is low


Add ibc proposal handler

This looks like it should be included as part of moneta, right?

Should be part of Moneta.


Added value proposition to ACS lab.

@MarkWme , please take a look at this PR. Would love to have this updated lab in place for this coming week.

LGTM


[GOBBLIN-1491] Add option to mark up/down D2 servers for gobblin service on leadership change

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-1491

Description

[x] Here are some details about my PR, including screenshots (if applicable):

Currently, D2 servers are started on all hosts at the time of service start. This change will allow using D2 delayed start, then marking up/down the servers when a host becomes the master/slave respectively. This means only the master will be announced to D2, so all requests will be routed to it.
The logic for markup is linkedin specific so must be implemented in internal code.
Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #3333 (3ea8068) into master (9ed315a) will decrease coverage by 3.53%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #3333      +/-   ##
============================================
- Coverage     46.54%   43.01%   -3.54%
+ Complexity    10133     1939    -8194
============================================
  Files          2051      394    -1657
  Lines         79537    16875   -62662
  Branches       8878     2075    -6803
============================================
- Hits          37018     7258   -29760
+ Misses        39089     8815   -30274
+ Partials       3430      802    -2628

Impacted Files
Coverage Δ

...a/org/apache/gobblin/util/limiter/NoopLimiter.java
40.00% <0.00%> (-20.00%)
:arrow_down:

...a/org/apache/gobblin/cluster/GobblinHelixTask.java
60.21% <0.00%> (-2.16%)
:arrow_down:

...lin/util/filesystem/FileSystemInstrumentation.java
92.85% <0.00%> (ø)

...che/gobblin/converter/AvroToAvroConverterBase.java

...a/org/apache/gobblin/service/FlowStatusClient.java

...gobblin/metrics/context/NameConflictException.java

.../gobblin/runtime/spec_catalog/TopologyCatalog.java

...me/troubleshooter/NoopAutomaticTroubleshooter.java

...ent/copy/replication/ConfigBasedMultiDatasets.java

...g/apache/gobblin/eventhub/EventhubMetricNames.java

... and 1649 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9ed315a...3ea8068. Read the comment docs.


Please add Support for group writeback on the chart

We recently added support for group writeback with the cloud sync agent :
https://learn.microsoft.com/en-us/entra/identity/hybrid/cloud-sync/how-to-configure-entra-to-active-directory
This is not reflected in the chart on this page and needs to be added :

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

ID: 4488ab5f-81f4-eaf2-fe3d-e1de9f5b17af
Version Independent ID: c089c188-c02c-6e64-b59b-bcbc6b79e030
Content: What is Microsoft Entra Cloud Sync? - Microsoft Entra ID
Content Source: docs/identity/hybrid/cloud-sync/what-is-cloud-sync.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: billmath

@tomdan-MSFT
Thanks for your feedback! We will investigate and update as appropriate.

@tomdan-MSFT
Thanks for reporting this! We have created a PR for this issue once the author will review and approve the changes should go live soon.

What is the status?  It's been over a month and the web page is still not updated or accurate

@tomdan-MSFT
Thanks again this!. We have created a PR The update will go live in less than 24 hours.


pip install wxPython before building the Windows EXE

This pull request pip installs wxPython before pyinstaller creates the Windows EXE file.

Just some minor feedback: (please don't be offended!)

This pull request pip installs wxPython

This describes the "what". That can be seen by the code changes anyway.
Try to describe the "why" instead! – It should explain what lead to this PR. Which problem do the changes herein solve. Maybe even refer to evidence, e.g. a failed build or a discussion that triggered making the changes.

Side note:
As a reference, the build on AppVeyor creates a working Windows EXE, IIRC. Only the MSI was "empty" (which is discussed in detail in https://github.com/PythonTurtle/PythonTurtle/issues/107#issuecomment-595343689).


[Feature Request] smooth scrolling

Hello!
A friend of mine (who no longer uses GitHub) asked me to pass on one of his wishes:

Hello!
Thank you for LinearMouse, I can't live without it.
There's a feature "missing" though: smooth scrolling. A lot of people, including myself, install an app dedicated to this for their third-party mice. I currently use MOS combined with LinearMouse, but it would be great to have everything at the same place.
And for the people finding it weird, no, smooth scrolling doesn't conflict with LinearMouse purpose, it's even complementary imho :)
Thank you for taking it into consideration, keep up the good work!

Thank you!

Hi, @BebePhoqueMort! Thank you for informing me about this. Happy new year to you and your friend! :)
Many people, I believe, prefer smooth scrolling, while others may prefer discrete scrolling. When it comes to smooth scrolling, MOS is professional. MOS is also a free and open-source software which is actively maintained, and not conflicted with LinearMouse, I guess. So I'm not going to do implement this feature directly for the moment.
However, I'd like to keep this an open issue. I'm working on an extension system. I think this feature can be implemented as an extension by then.

Thank you @lujjjh, happy new year to you too !

Hello and happy new year!
Thank you, I perfectly understand your point of view.
My wish comes from the fact that people like me often want to optimize our setup by avoiding having several applications running for related functionalities. As I prefer smooth scrolling (I only turn it off when playing video games), I thought it would be interesting to have this feature directly integrated.
Extensions are a great idea, good luck with that!

It would be great if LinearMouse could do this out of the box. I’m trying the LinearMouse + MOS setup but now I have 3 settings for scrolling (LinearMouse, MOS, Mac settings).

Smooth scrolling is definitely the only feature that is missing in this app. Please consider implementing it.

I think you can program the scroll to masquerade as a trackpad or default magic mouse scroll behavior for CPU priority and accessibility. I think mac mouse fix has the necessary API code within but it contacts the developer server.

linear mouse afaik is the only software that recognizes tilt buttons and makes them customizable, but If there was an option for smooth scrolling I would just quit using MOS completely


ci(rust): cache build output in "ockam command test" workflow

Current Behavior
CI workflow "Ockam Command Test" builds the Ockam CLI from scratch on every run.
There may be a reason why caching is not used here. If there's not, then maybe this PR will help.
Proposed Changes
Add caching of build output, so it can be reused on subsequent builds and shorten run time.
Checks

[x] All commits in this Pull Request are signed and Verified by Github.
[x] All commits in this Pull Request follow the Ockam commit message convention.
[x] I accept the Ockam Community Code of Conduct.
[x] I have accepted the Ockam Contributor License Agreement by adding my Git/Github details in a row at the end of the CONTRIBUTORS.csv file in a separate pull request to the build-trust/ockam-contributors repository.

Cheers! :smile:

@neil2468 thank you 🥳


Nested inline parameter properties of type SecureString cannot be provided to Az powershell cmdlets

Something like the following example is not working with AZ Powershell New-AzResourceGroupDeployment.
type propertiesType = {
   @secure()
   foo: string
}

When the args are passed to bicep the following message is thrown:
InvalidTemplate - Deployment template validation failed: 'The provided value for the template parameter 'adminPassword' is not valid. Expected a value of type 'String, Uri', but received a value of type 'Object'. Please see https://aka.ms/arm-create-parameter-file for usage details.'.

As a workaround, I had to default to the default param.
It's a regular secure string passed from the az powershell command mentioned, something along the lines of
Powershell File

$templateFile = Join-Path $PSScriptRoot -ChildPath "infrastructure.bicep"

$adminUsername = "adminUsername" |  ConvertTo-SecureString -AsPlainText
$adminPassword = ".$.S0M3R4nD0MPwd#%" |  ConvertTo-SecureString -AsPlainText

$virtualMachine = @{
  Name = 'VMName'
  AdminUsername = $adminUsername
  AdminPassword = $adminPassword
  VmSize = 'Standard_E8_v5'
}

New-AzResourceGroupDeployment -Mode Incremental `
-TemplateFile $templateFile `
-Vm $virtualMachine `

Bicep file

type vmSize = 'Standard_E8_v5' | 'Standard_E8s_v5' | 'Standard_E16_v5' | 'Standard_E16s_v5' | 'Standard_E32_v5' | 'Standard_E32s_v5'

type virtualMachine = {
  name: string
  @secure()
  adminUsername: string
  @secure()
  adminPassword: string
  vmSize: vmSize
}

param vm virtualMachine

module resourceVMs 'module.bicep' = [for vm in vms: {
    name: vm.name
    params: {
      location: location
      adminUsername: vm.adminUsername
      adminPassword:  vm.adminPassword
      vmSize: vm.vmSize
    }
  }]

Something like this... I had to cut some bits and pieces for brevity and to remove the specifics of the project...
It's something related with the datatype. if it's a string works fine.. it can't be a secureString else it throws the error.
I was also glancing the PR mentioned above, and it seems that only addresses (I may be wrong) the output of secrets to the terminal.
The test cases only cover scenarios where the @secure decorator is used on param obj and not for user-defined typed properties, such as the case above.
Anyways, I tried also to decorate the whole type as @secure but didn't work either, same error...
I also tried to create a Powershell class object (strong typed) instead of the dynamic PSO... to force it.. same result.
Originally posted by @rmjoia in https://github.com/Azure/bicep/issues/11082#issuecomment-1813043826

SecureString is actually no longer recommended for use in .NET, so we are not going to fix this one.
https://learn.microsoft.com/en-us/dotnet/api/system.security.securestring?view=net-8.0#remarks
Please let us know if we are misinterpreting this and we can consider re-opening.

Re-opening after discussing with the PowerShell team. They clarified that SecureString is not a security boundary, but is the only way today to prevent accidentally emitting the value of these variables. The fix we need to make is most likely in the Deployments cmdlet.

Getting a similar error when executing New-AzResourceGroupDeploymentStack
New-AzResourceGroupDeploymentStack: 12:41:00 - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'The provided value for the template parameter 'adminPassword' is not valid. Expected a value of type 'String, Uri', but received a value of type 'Object'. Please see https://aka.ms/arm-create-parameter-file for usage details.'.

Az version: 12.3.0
Bicep CLI version: 0.30.3 (2f0e78dcae)

@Oscar-Macdonald64 The original issue reported here has already been fixed - I've created #15112 to track is issue separately.