Improve error messages when IPU config is not compatible with model

What does this PR do?
This PR improves error messages which can occur when the layers_per_ipu attribute of the config does not create an array with enough entries for the number of layers in the model.
Before this PR a raw IndexError was returned to the user, with no suggestion of what might be the cause.
This PR introduces two layers of error handling:

When using a pipeline, if the poplar executor creation fails, additional context is added to the error by suggesting that the IPU Config might be incompatible.
The models now call get_ipu_layers with an additional argument which is used for checking if the number of layers is too much. That is still not ideal as it requires models to call this properly (although could remove the default argument to make sure of that).

The new error message looks like this:
>>> data = ["I love you", "I hate you"]
>>> specific_model = pipelines.pipeline(model="cardiffnlp/twitter-roberta-base-sentiment")
>>> specific_model(data)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File /localdata/alexandrep/paperspace-forks/optimum-graphcore-fork/optimum/graphcore/pipelines/__init__.py:169, in get_poplar_executor(model, ipu_config, fp16)
    168     model = to_pipelined(model, ipu_config, force=False)
--> 169     model.parallelize()
    170 except Exception as error:
File /localdata/alexandrep/paperspace-forks/optimum-graphcore-fork/optimum/graphcore/models/roberta/modeling_roberta.py:250, in PipelinedRobertaForSequenceClassification.parallelize(self)
    249 def parallelize(self):
--> 250     super().parallelize()
    251     last_ipu = self.ipu_config.ipus_per_replica - 1
File /localdata/alexandrep/paperspace-forks/optimum-graphcore-fork/optimum/graphcore/models/roberta/modeling_roberta.py:67, in RobertaPipelineMixin.parallelize(self)
     65 self._hooks.extend(hs)
---> 67 layer_ipu = get_layer_ipu(self.ipu_config.layers_per_ipu, self.roberta.encoder.layer)
     68 for index, layer in enumerate(self.roberta.encoder.layer):
File /localdata/alexandrep/paperspace-forks/optimum-graphcore-fork/optimum/graphcore/modeling_utils.py:226, in get_layer_ipu(layers_per_ipu, target_number_of_layers)
    225     if len(layer_ipu) < target_number_of_layers:
--> 226         raise ValueError(
    227             "layers_per_ipu does not support enough layers for the current model."
    228             " The current IPU Config specifies IPU assignments for "
    229             f"{len(layer_ipu)} but there are {target_number_of_layers}. "
    230             f"layers_per_ipu={layers_per_ipu}"
    231         )
    232 return layer_ipu
ValueError: layers_per_ipu does not support enough layers for the current model. The current IPU Config specifies IPU assignments for 6 but there are 12. layers_per_ipu=[2, 4]
The above exception was the direct cause of the following exception:
IncompatibleIPUConfigError                Traceback (most recent call last)
Cell In [8], line 1
----> 1 specific_model = pipelines.pipeline(
      2     model="cardiffnlp/twitter-roberta-base-sentiment",
      3     # ipu_config="Graphcore/roberta-base-ipu"
      4 )
      5 specific_model(data)
File /localdata/alexandrep/paperspace-forks/optimum-graphcore-fork/optimum/graphcore/pipelines/__init__.py:274, in pipeline(task, model, ipu_config, tokenizer, feature_extractor, revision, use_fast, use_auth_token, pipeline_class, fp16, **kwargs)
    272     model_id = model
    273     model = SUPPORTED_TASKS[targeted_task]["class"][0].from_pretrained(model_id, revision=revision)
--> 274     model = get_poplar_executor(model, ipu_config, fp16)
    275 elif isinstance(model, PreTrainedModel):
    276     model = get_poplar_executor(model, ipu_config, fp16)
File /localdata/alexandrep/paperspace-forks/optimum-graphcore-fork/optimum/graphcore/pipelines/__init__.py:176, in get_poplar_executor(model, ipu_config, fp16)
    170 except Exception as error:
    171     new_message = (
    172         "The model and ipu_config seem to be incompatible,"
    173         " please try a different IPU config or customizing it for the model."
    174         f" The config provided is '{ipu_config_arg}'"
    175     )
--> 176     raise IncompatibleIPUConfigError(new_message) from error
    177 if fp16:
    178     model.half()
IncompatibleIPUConfigError: The model and ipu_config seem to be incompatible, please try a different IPU config or customizing it for the model. The config provided is 'Graphcore/distilbert-base-ipu'

Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[x] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

Yep, no problem. In your opinion, would it be enough to run the test_examples file?

I ran test_examples.py all passed except 1 which failed because we were 0.004 from the threshold (1%):
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.3, pluggy-1.0.0
rootdir: /localdata/alexandrep/paperspace-forks/optimum-graphcore-fork, configfile: setup.cfg
plugins: anyio-3.6.1, cov-4.0.0
collected 38 items

tests/test_examples_match_transformers.py ............
tests/test_examples.py .....................................x

=========================================================================
>                   self.assertGreaterEqual(float(results[self.SCORE_NAME]), threshold)
E                   AssertionError: 0.6461915373802185 not greater than or equal to 0.65

tests/test_examples.py:185: AssertionError

=========================== short test summary info ============================
FAILED tests/test_examples.py::MultipleChoiceExampleTester::test_run_swag_distilbert
============ 1 failed, 37 passed, 1 warning in 30425.34s (8:27:05) =============

Yes that's great, thanks!

@michaelbenayoun, I don't have write access to the repository so I can't merge it, could you either merge or grant me write access?


compilation on Mac

Hi Jan,
I added instruction for compilation on Mac
Fabrizio

Hi Fabrizio,
Applied the change to library_path_hook/3.  That is a clear bug.  For the rest I think the changes are overly complicated, but my Mac is too old to test anything.   I'm expecting to get a new one shortly.   Anyway, you managed to find a way around compiling on the mac, so I assume you are ok for now.

ok


GCM Adapter misspelled parameters leading to wrong behavior

The GCM Adapter uses from line 125 until 129 camelCased parameter names but defines them in getDefinedParameters in snakeCase.
this results in Erros if you pass the params into construct in camelCase.
if you pass them as defined in snakeCase the ServiceMessage is constructed without those keys

Connected issue https://github.com/Ph3nol/NotificationPusher/issues/81


Proposal: force type hint check with mypy

Why
While I am learning the source code, I found it challenging to understand asyncio. Taking this codebase as an example, I spend quite some time with the following method signature:
https://github.com/vllm-project/vllm/blob/7c600440f7560348e571f021f2b2d1469de5264d/vllm/engine/async_llm_engine.py#L394-L399
I realized there was a discrepancy in the return type hint. The original hint was:
-> RequestOutput:

However, the correct hint should be:
-> typing.AsyncIterator[RequestOutput]:

For a detailed demonstration of this issue, please see the appendix below.
Proposal
To enhance type checking with mypy, it's advisable to include the following options in mypy.ini, as suggested in this StackOverflow answer:
disallow_untyped_defs
disallow_incomplete_defs
disallow_untyped_calls

Appendix
Below is a complete example that illustrates the correct use of type hints for async iterators:
"""
For a full check including type hints, run the following command

mypy \
  --disallow-untyped-defs \
  --disallow-incomplete-defs \
  --disallow-untyped-calls \
  /tmp/a.py
"""
import asyncio
import typing

async def foo() -> typing.AsyncIterable[int]:
    for i in range(3):
        yield (i)

async def bar() -> typing.AsyncIterable[int]:
    f = foo()
    print(f"The type of foo is {type(foo)}")  # <class 'function'>
    print(f"The return type of foo is {type(f)}")  # <class 'async_generator'>
    async for i in f:
        yield i

async def main() -> None:
    b = bar()
    print(f"The type of bar is {type(bar)}")  # <class 'function'>
    print(f"The return type of bar is {type(b)}")  # <class 'async_generator'>
    async for i in b:
        print(i)

c = main()
print(f"The return type of main is {type(c)}")  #  <class 'coroutine'>
asyncio.run(c)

we would definitely love to fully enable type checking, however, we understand it is fairly involved and time consuming so we are focusing on more pressing issue. if you can help contribute that would be amazing!

@rkooo567 you may close this once you've completed the PR for cross-directory type checking with mypy.

Yeah I will need to create 1 more PR to finish this

Closing this as mypy has been enabled to some extent - please refer to #3680 for further developments.


1.18 Physics Issues

1.18 made changes to physics that cause the bot to get stuck due to the server's anticheat disallowing movements and rubberbanding the player. I made a PR on pathfinder because I assumed it was an issue with that library, but it turns out it works fine on lower versions and is an issue with 1.18 physics.
An easy way to observe this is to get pathfinder to slide across blocks during diagonal movements like so. In the current implementation, it will get stuck forever. It can also happen when jumping up blocks.

The collide function seems to be quite different from previous versions:

https://github.com/extremeheat/extracted_minecraft_data/blob/client1.18.1/client/net/minecraft/world/entity/Entity.java#L803
https://github.com/extremeheat/extracted_minecraft_data/blob/client1.16.4/client/net/minecraft/world/entity/Entity.java#L704

here are 2 video examples of this happening to me too
https://youtu.be/7enDyUwmvP8
https://streamable.com/3pibu0

A hacky fix for this issue is changing line 118 of prismarine-physics's index.js to const blockBB = new AABB(shape[0] - 0.01, shape[1], shape[2] - 0.01, shape[3] + 0.01, shape[4], shape[5] + 0.01) if this has not been fixed yet(from complaints I've heard from other users it seems to have not been fixed yet), however if the bot is teleported directly next to a block it'll be stuck unless it is mined/teleported again, though unless you're doing stuff with enderpearls/lots of teleporting directly next to blocks it should work.
It seems to happen at x=-2, x=-32, etc. but not at x=-16 or x=-8, could be a floating point issue? Oddly adding 0.01 to playerhalfwidth does NOT fix this issue.


Trailing whitespace in i18n messages (+extra)

Summary:
Translatewiki.net does not support trailing whitespace in messages (it gets stripped). Here is a list of such messages:
Wikimedia:Commons-android-strings-bullet/en
'•  '                                | '•'

Wikimedia:Commons-android-strings-about license/en
'The Wikimedia Commons app is an       | 'The Wikimedia Commons app is an
open-source app created and maintained | open-source app created and maintained
by grantees and volunteers of the      | by grantees and volunteers of the
Wikimedia community. The Wikimedia     | Wikimedia community. The Wikimedia
Foundation is not involved in the      | Foundation is not involved in the
creation, development, or maintenance  | creation, development, or maintenance
of the app. '                          | of the app.'

Wikimedia:Commons-android-strings-question/en
'Question '                            | 'Question'

Wikimedia:Commons-android-strings-achievements revert limit message/en
'minimum required: '                   | 'minimum required:'

Wikimedia:Commons-android-strings-bad token error proposed solution/en
'Upload failed due to issues with edit | 'Upload failed due to issues with edit
token. Please try logging out and in   | token. Please try logging out and in
again. '                               | again.'

Wikimedia:Commons-android-strings-review c violation report question/en
'It is copyright violation because it  | 'It is copyright violation because it
is '                                   | is'

Insignificant trailing whitespace should be removed. Significant trailing whitespace should be avoided by using variables.
The script also found this difference:
Wikimedia:Commons-android-strings-upload image duplicate/en
'This file already destroyed on        | 'This file already exists on Commons.
Commons. Are you sure you want to      | Are you sure you want to proceed?'
proceed?'                              |

The change from "exists" to "destroyed" looks like a mistake. Can you verify?

Yes, the change was a mistake I believe, I remember there was a PR where an auto-replace of "exists" had to be fixed. @neslihanturan can you confirm? :)
Thanks for letting us know about the trailing whitespaces. This should be an easy PR for a new contributor to get started on.

Yes, the change was a mistake I believe, I remember there was a PR where an auto-replace of "exists" had to be fixed. @neslihanturan can you confirm? :)
Thanks for letting us know about the trailing whitespaces. This should be an easy PR for a new contributor to get started on.

@misaochan The issue with whitespaces can be fixed with the PR #4200
About the second part, Should we reopen this issue or create a new one?

@misaochan The issue with whitespaces can be fixed with the PR #4200
About the second part, Should we reopen this issue or create a new one?

@madhurgupta10 I will do the second part in the same PR sorry

@madhurgupta10 I will do the second part in the same PR sorry

Second part done in the same PR than the first part #4200

Second part done in the same PR than the first part #4200


Improve build system (npm -> yarn, remove bower, add demos/tsconfig.json)

Replace npm with yarn
Remove bower as a dependency (yarn handles it)
Add tsconfig.json in demos/, so demos compile separately
Update base tsconfig.json to not compile demos (15% faster compile time)
Make all tsconfig.json files extend from the base tsconfig.json to avoid repetition
move @types/polymer and tone-piano deps to demos
update typescript compiler from 2.5.3 to 2.6.1

This change is

This is such a great cleanup. Few comments inline.

Reviewed 16 of 26 files at r1, 31 of 36 files at r2, 1 of 3 files at r3, 4 of 5 files at r4.
Review status: all files reviewed at latest revision, 3 unresolved discussions, some commit checks failed.

package.json, line 2 at r4 (raw file):

{
  "name": "deeplearn",

what do you think about using a scoped package? We will have to create a "deeplearn" organization, and then deprecate the old package. We can do this in a follow up, just wanted to put these notes down.
https://docs.npmjs.com/misc/scope
Check out the first response here about deprecation (users can get a message when installing):
https://stackoverflow.com/questions/43007471/how-to-migrate-npm-package-to-an-organization-scope

tsconfig.json, line 10 at r4 (raw file):

    "declaration": true,
    "target": "es5",
    "lib": ["es2015", "dom"],

I thought we wanted to target es6 as well? Does that happen somehow?

models/knn_image_classifier/package.json, line 28 at r4 (raw file):

    "prep": "yarn && mkdirp dist",
    "build": "browserify --standalone knn_image_classifier knn_image_classifier.ts -p [tsify] -o dist/bundle.js",
    "publish-npm": "tsc && yarn build && npm publish"

sourceMap --false for consistency, and in the other package.

Comments from Reviewable

Thanks!

Reviewed 26 of 26 files at r1, 35 of 36 files at r2, 3 of 3 files at r3.
Review status: all files reviewed at latest revision, 3 unresolved discussions, some commit checks failed.

package.json, line 2 at r4 (raw file):
Previously, nsthorat (Nikhil Thorat) wrote…
what do you think about using a scoped package? We will have to create a "deeplearn" organization, and then deprecate the old package. We can do this in a follow up, just wanted to put these notes down.
https://docs.npmjs.com/misc/scope
Check out the first response here about deprecation (users can get a message when installing):
https://stackoverflow.com/questions/43007471/how-to-migrate-npm-package-to-an-organization-scope

Yup, let's do scope package in another PR

tsconfig.json, line 10 at r4 (raw file):
Previously, nsthorat (Nikhil Thorat) wrote…
I thought we wanted to target es6 as well? Does that happen somehow?

we will produce a separate es6 build (maybe under dist/es6/...). We shouldn't change the current target because we will break existing users.

models/knn_image_classifier/package.json, line 28 at r4 (raw file):
Previously, nsthorat (Nikhil Thorat) wrote…
sourceMap --false for consistency, and in the other package.

Done.

Comments from Reviewable

Reviewed 1 of 5 files at r4, 20 of 20 files at r5.
Review status: all files reviewed at latest revision, 3 unresolved discussions, some commit checks pending.

Comments from Reviewable


String Compression

Aim: The string should be compressed such that consecutive duplicates of characters are replaced with the character and followed by the number of consecutive duplicates.
input : aaabbccdeff
output : a3b2c2def2
Hey, I'm Gssoc participant I want to work on this issue in C++ or Java. Please assign this to me.

Hello,
I would like to contribute to this issue in java as a GSSoC 2021 participant
kindly assign me the issue

Hi @anubhavitis , I am GSSoC'21 participant and I want to do it in C++. Please assign me this.

Hi,
I am GSSOC'21 participant,
My code will be in python with proper comments and test cases.
@anubhavitis Please assign me this. Thankyou!!


Question about training custom

I traning with my dataset but loss_l1 are 0 in training process. Do i compile wrong ?

Oops, I see that in code set L1_loss is Fasle . Seem that we don't want to use it


adding probr-analysis link to nginx, separate compose file

Should fix the following issue, concerning the nginx-configuration when deploying both probr-core and probr-analysis.

Checkout this branch
Use docker-compose -f docker-compose-analysis.yml up -d
You should now have a new nginx deployed, properly configured to access probr-analysis, for example on http://localhost/analysis/ (or using your docker-machine IP)

this should get merged in...

You are right - I'm not sure why we haven't merged the PR.


[RFC] add a pass to distribute thread block workload to each warp

Hi, I am working on leveraging Triton as the target compiler for an in-house GPU. During development, I realized that adding a warp-level IR/stage could be helpful and improve code generation.
Current state: TritonGPU lowers directly from the thread block level to the per-thread level. This is kind of large gap.
Proposed addition: Include a warp-level IR/stage between the thread block and per-thread level.
Benefits of a warp-level IR/stage:

This would allow for a more gradual lowering “tritongpu -> tritongpu(warp level) -> llvm”
Some hardware has SIMD unit which abstract away what each thread works on. The warp-level IR could map directly to a SIMD unit.
It would be nice to have control over warp index for some kernel. For example, the flash attention v2 suggested certain work partitioning between warps.
To implement this, I propose a new pass that distributes the thread block level workload to each warp. It would slice tensors and assign work to each warp according to the annotated layout attribute.

In the drafted pr, there is a simple Matmul test to demonstrate the concept.
draft PR
Workload: C = A*B (128x128xf32 = 128x32xf16 * 32x128xf16), num-warps = 4
Matrix A load from global memory is transformed from 128x32xf16 to 32x32xf16
Matrix B load from global memory is transformed from 32x128xf16 to 32x32xf16
  // generated from the convertLayoutOp
  Matrix A store to shared memory is 32x32xf16
  Matrix B store to shared memory is 32x32xf16
  Barrier
  Matrix A load from shared memory is 64x32xf16
  Matrix B load from shared memory is 32x64xf16
tt.dot is transformed to C = A*B (64x164xf32 = 64x32xf16 * 32x64xf16)
matrix C store to global memory is transformed from 128x128xf16 to 64x64xf16

It looks like a good idea to me

Thanks for the feedback, @jlebar . I would like to provide some clarifications.
The pass is primarily aimed at offering an alternative approach to the TTGIR lowering pipeline for developers. The existing "TTGIR -> LLVM" remain unchanged.
The pass is more of adding a new stage instead of adding a new IR. All the IR and layout related semantic remain unchanged. The goal is to leverage the existing infrastructure.
The pass implementation maintains the original layout for ease of use, rather than introducing a new attribute. It’s essential for developers who intend to utilize this warp level stage to be aware that high-level optimizations (inter warps) should have already been performed. The remaining tasks after this pass involve the lowering and optimization within a warp.
More specifically, the current lowering is not adept at handling certain aspects of the SIMD programming model. In specific hardware, the SIMD unit is not concerned with each thread operations; instead, it operates on contiguous 1D/2D vectors as a whole. By incorporating a warp level stage, the process becomes more straightforward and aids in simplifying the subsequent mapping to LLVM IR (Intrinsic).
Regarding the flash attention v2, it interacts with the TTGIR by annotating the block layout with "sizePerWarp" (which is calculated as "sizePerThread * threadsPerWarp") and "WarpsPerCTA". This annotation aligns with the current IR and block layout semantics. The work partitioning approach suggested in "Flash Attention V2" serves as further evidence that people would consider a problem and coordinate workload at the warp level and leave the lowering to each thread afterwards.

keep out of tree for now


Support List<String> type for @Header annotation

Motivation:
Several HTTP headers can be sent with the same name. We missed that kind of situation before. Need to enhance annotated HTTP service to support it.
Modifications:

Support List<String> type for @Header annotation.

This is 1st PR for resolving #1164 . I will send the next PR that BeanRequestConverterFunction also supports List<String> for @Header annotation.

Thanks, @hyangtack !


add missing RPM-GPG-KEY-EPEL-9

Since AlmaLinux 9 is already in metadata.json, I think this doesn't require any additional changes
But, technically, I don't see why this won't work on RHEL9 and Rocky 9, unless testing suites are not ready yet
a side-note - ScientificLinux never released v8

I'm not sure if this is a bug... It seems more like an enhancement. I guess it depends on if we consider epel a defacto core repo or not.
While adding EPEL9 is consistent with EPEL7 and 8 already supported in this module, the EPEL support overlaps with puppet-epel.  Do we need to support configuring the EPEL repos in both mods?

I, personally, don't use epel module, since functionality is already available through this module and provides more capabilities

I have been using it since the el4 days. It is convenient to include epel in profiles but I'm not wed to it.  It seems like there is an opportunity to simplify here.


RadzenTabsItem: --rz-tabs-tab-color stopped to work and the cursor is not 'pointer' anymore.

The css variable '--rz-tabs-tab-color' stopped to work and the cursor is not 'pointer' anymore for the RadzenTabsItem component.
The problem is the fix of 'redundant link WCAG warning' (commit a2144d21, file RadzenTabsItem.razor) removed the 'ref' attribute from the <a role="tab" ..> element which caused the selector
a:-webkit-any-link stopped to be applied
and the selector a:not([href]):not([class]) started to be applied.
As a consequence, the variable '--rz-tabs-tab-color' is suppressed and the cursor is not the pointer anymore.

This is how styles were applied before the fix:

Please, would it be possible to provide a different fix for that warning so that the original behavior is preserved?

@yordanov this change fixing this issue broke the experience on my usage.  The text which had been white, is now forced black:

Hi @timheuer,
Could you please share the styles used to apply this custom background color?
There is a dedicated CSS variable for the selected tab text color that you can use:
:root { /* Applied to all tabs on page */
    --rz-tabs-tab-selected-color: #ffffff;
}

.my-tabs { /* Applied to <RadzenTabs class="my-tabs" ... > */
    --rz-tabs-tab-selected-color: #ffffff;
}

@yordanov this was the style I was using that was working:
.rz-tabview-nav .rz-tabview-selected {
    border-top-color: #512bd4;
    background-color: #512bd4;
    color: #ffffff;
}

After some version update it stopped applying the forecolor

@timheuer you are right that text and background color should be applied to the same element. That's just been fixed with 510d94b. However, your styles could be optimized to take advantage of the available CSS variables.
That said, with the current Radzen.Blazor version you can use the following to fix your styles:
.rz-tabview-nav .rz-tabview-selected {
    background-color: #512bd4;
    --rz-tabs-tab-selected-color: #ffffff;
    --rz-tabs-tab-selected-top-border-color: #512bd4;
}

With the next version (containing 510d94b) your styles should work as they are, but you will also be able to further optimize:
:root { /* Applied to all tabs on page */
    --rz-tabs-tab-selected-background-color: #512bd4;
    --rz-tabs-tab-selected-color: #ffffff;
    --rz-tabs-tab-selected-top-border-color: #512bd4;
}

Last but not least all those CSS variables can be set via the style attribute of the component:
<RadzenTabs style="--rz-tabs-tab-selected-color: #ffffff; --rz-tabs-tab-selected-background-color: #512bd4;">

This has the advantage of having more than one tab visual configuration and not having to update the global styles.


Update website intro

#204 Updated the Help and Troubleshooting section. #198 updated the Credits. Now its time for the intro.

Also increase header gap to 2rem between logo and slogan.


[Bug] Accessibility - Keyboard Navigation

https://takenote.dev/app
To Reproduce
Attempt to navigate the app without a mouse.
Expected behavior
Should be able to access all features sans mouse.
Actual behavior
There are several instances where using the tab key results in the focus of an item without highlighting it. This hinders users further who can only access the app using a keyboard. You are also essentially trapped in the editor if you are using it with only a keyboard. There is an exception, however, where you can use certain keyboard shortcuts (such as Ctrl + Atl + F) as an escape.
Notes
More reading in issue #495. You also lose the ability to use the tab key for navigation when editing a note. Take the Github editor as an example, where using the tab key escapes you from the editor, instead of writing out a tab. Adding tabs is a pain in these types of text editors, where adding 4 spaces is used as a replacement when writing inline code, etc.
There appear to be many opportunities to improve this throughout, such as allowing a user to navigate available notes using arrow keys.

I partly closed this issue in #509, please look for it 😄


[Event Change Request] page 6510  "Item Tracking Lines" - OnQueryClosePageOnBeforeConfirmClosePage2

Hello, would it be possible to add OnQueryClosePageOnBeforeConfirmClosePage2 event to page 6510  "Item Tracking Lines", like this:
There is an existing event OnQueryClosePageOnBeforeConfirmClosePage( that has been updated with additional parameters.
    trigger OnQueryClosePage(CloseAction: Action): Boolean
...
              if IsHandled then
                 Exit(true);

             IsHandled := false;
//Existing->            OnQueryClosePageOnBeforeConfirmClosePage(Rec, IsHandled, CurrentRunMode);
>             OnQueryClosePageOnBeforeConfirmClosePage2(Rec, Result, IsHandled); //New Event
             if IsHandled then
                 Exit(Result);

             exit(Confirm(AvailabilityWarningsQst, true));

      [IntegrationEvent(false, false)]
//Existing->    local procedure OnQueryClosePageOnBeforeConfirmClosePage(var TrackingSpecification: Record "Tracking Specification"; var IsHandled: Boolean; CurrentRunMode: Enum "Item Tracking Run Mode")
     local procedure OnQueryClosePageOnBeforeConfirmClosePage2(var TrackingSpecification: Record "Tracking Specification"; var Result: Boolean; var IsHandled: Boolean)
     begin
     end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 53874.


NameError: name 'X' is not defined

A bug as following:
NameError: name 'X' is not defined
Here is my code:
X = df_miR_10[DEmiRs]
y = list(df_miR_10['target'])

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42,stratify=y)
model = models[0]

model.fit(X_train, y_train)
feature_order = feature_selection.shap_select(model, X, X_train.values, X_test.values, feature_names=np.array(X_train.columns), agnostic=True)

error information
---NameError Traceback (most recent call last)
Input In [38], in <cell line: 10>()  7 model = models[0]  9 model.fit(X_train, y_train) ---> 10 feature_order = feature_selection.shap_select(model, X_train.values, X_test.values, feature_names=np.array(X_train.columns), agnostic=True) File ~/.local/lib/python3.8/site-packages/shap_selection/feature_selection.py:43, in shap_select(model, X_train, X_test, feature_names, task, agnostic)  41 else:  42 background = None ---> 43 if len(X) < 500:  44 background = X_train  45 else: NameError: name 'X' is not defined

Solution from the Author
For now, the best way you can solve this problem is by doing the following:
if len(X) < 500: ----->>> if len(X_train) < 500:
It essentially means that if the training data is small, we can use all of it as background dataset.

Thanks a lot @phage-GP for your interest and explanation. The bug was fixed by the lastest release.


Add indented_writer_base to library

Start using common code for tool/python and samples/meta_reader.
This just takes indentation code from PR https://github.com/Microsoft/xlang/pull/260.
The benefit to python tool is that it does not output indented empty lines, since new code explicitly checks for that.
Changes in src/tool/python/main.cpp are whitespace-only to remove trailing whitespaces.

FYI, I'm working towards the first release of the python projection. I love the idea of pulling the indented code writer out of python and into the shared library, but I need to put off merging this into master for a couple weeks.

Hey @jonitis, Harry has left the team. Are you still interested in contributing this update? Note that we don't have anyone actively working on Python at the moment so it may require some effort to get this up and running, but I'm happy to help as time allows.

Hello, Kenny. I've made this patch after suggestion of Harry Pierson, since both python_tool and meta_reader (former idl tool) now use identical approach for indenting text. It made sense to move common functionality into library, so that both tools do not have to duplicate code. The python tool will benefit from small change that I've already made in meta_reader - there is no indentation for empty lines.
Feel free to decide whether you want to accept this patch. If you are interested, I can refresh the patch (in two weeks) on top of latest head to resolve the conflicts.


Fix deployment to work when installed from wheel

Attempts to fix one aspect of #629.
WARNING: The changes needed to make this work without restructuring the entire repo are pretty wacky, bear with me when reading the below.
Deployment was failing from GaNDLF installed via wheel/from pip largely because the directory structure in this case is NOT equivalent to the source repo's structure (i.e., from pip install -e . in the git repo).
Trying to install the dockerfiles/other files needed for setup into the installed package is difficult for various reasons related to implementation details in setuptools, etc.
In order to avoid restructuring the entire repository, I decided to leave these files in the top-level site-packages directory, and "install them" during deployment.
This means turning the GaNDLF package directory into something that, itself, can be installed.
So we use some tricks that require us to exclude the other stuff inside the package from being installed, including making a recursive symlink to the GaNDLF package so that the code gets bundled, but change setup.py to exclude the package from being installed by itself. (Isn't recursion fun?)
Proposed Changes

deploy script now checks for the case where GaNDLF is installed directly as a package in site-packages
We now bundle the extra setup-related files and install to site-packages
deploy script now uses these to generate the install inside the container

Checklist

[x] I have read the CONTRIBUTING guide.
[x] My PR is based from the current GaNDLF master .
[x] Non-breaking change (does not break existing functionality): provide as many details as possible for any breaking change.
[x] Function/class source code documentation added/updated.
[x] Code has been blacked for style consistency.
[x] If applicable, version information has been updated in GANDLF/version.py.
[x] If adding a git submodule, add to list of exceptions for black styling in pyproject.toml file.
[x] Usage documentation has been updated, if appropriate.
[x] History has been updated, if appropriate.
[x] Tests added or modified to cover the changes; if coverage is reduced, please give explanation.
[x] If customized dependency installation is required (i.e., a separate pip install step is needed for PR to be functional), please ensure it is reflected in all the files that control the CI, namely: python-test.yml, and all docker files [1,2,3].

@AlexanderGetka-cbica how are you testing this?
I pip installed gandlf from source and tested that deployment works fine. But do you know how I can "simulate" having it installed just like pip install gandlf from pypi?
I did pip install . -t <some_folder> and visually inspected that folder. I can see that it is installed according to your description above. So this looks good, but any idea if there is a better way for testing?

In my case, I am just generating a wheel, and installing from that. the Python "build" tool can do this, e.g. from the source repo:
pip install build
python -m build
(you might be able to get it to build just the wheel and not also the source distribution). This is also how we create the nightly builds.
Then install the wheel directly
pip install GaNDLF_[...]_py38.whl

I am not sure how testing could cover this. We could make the testing pipeline cover the entire build->upload->install->run tests, but i don't know if pytest even supports this use.


update build tools version and a performance tweak

Just small things I noticed when diving into Anvil.

I might be wrong, but doesn't reducing the synchronized block cause certain issues when handler is holding a partially constructed object? (https://en.wikipedia.org/wiki/Double-checked_locking)
I'm thinking why can't we just make the handler final instead of lazy initialization?

No this doesn't introduce any such issues because we do the null check inside the synchronised block so there is never any partially created state.
Making handler final is definitely one option to consider - they are pretty cheap objects and considering the importance of this handler I think it's worth the cost :)

Ah, right, mislooked it. Great, merging this, thanks!


add Ideaology

https://ideaology.io/

Hello, please check the logo in attachment.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MetaMask/contract-metadata/pull/973#issuecomment-983618804,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOHQR3V5YO2HXKSD7DOAUNTUOYMI5ANCNFSM5I5S4KEA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


fix vec*mat in PyTorch converter

Related comment: https://github.com/apache/tvm/issues/10651#issuecomment-1128873182
cc: @masahi

please run a new job.

It seems to be blocked by an irrelevant (probably flaky?) test...


Added PlatformFile support.

Adds support for platformFiles which enables importing of files on web - and probably other platforms that may not have been supported.

Hi @raphael-bmec-co , thanks for this. I am currently abroad and not able to look into this better.
It would be great to remove the file picker dependency from the pr.
May I ask why the collections dependency is needed? From a quick look from web, I could not see where it is in use.
Thank you!

@moovida apologies for the delayed response.
The collections dependancy is used to call firstWhereOrNull.
I am happy to refactor this so that it takes raw data byte lists for each of the three files. This will remove the need to both extra dependencies and push the file handling side of things out of this package.
I will update the pull request ASAP.

@moovida okay I have updated the pull request and it is ready for your review when you have time.
Thanks.

@moovida Sorry to put pressure here. More a friendly reminder.
We are going to roll a release soon and I'd prefer to do so with the package rather than our fork.
Having said that, if you aren't going to get to it, that's fine, we'll release referencing our fork.
Thanks.

Hi @raphael-bmec-co , sorry for the lag, and good you pinged me on this. I am sure I will be able to create the release on Friday. Can that work for you?

Release 1.2.0 done. Even noticed a bug in the dbase reader I had not seen before :-)

Thanks @moovida 🚀


[FR] Multiselect column type

Use the power of select but with multi-tag and cross remove option

starting this issue

the core is ready =) working on the details
https://user-images.githubusercontent.com/11924043/172217785-d7743764-2435-4aa3-84b7-07df3e2afb9b.mov


fix(types): allow blank env

Closes #2832 and improve types for handling blank input and blank schema
The author should do the following, if applicable

[ ] Add tests
[x] Run tests
[x] bun run format:fix && bun run lint:fix to format the code

Tested with vitest 1.5.x,  it's working too! 😄

Yarn lock and bun lockb got conflict after revert vitest upgrade, fixed it.

@fzn0x
Thanks! Looks good. But one thing. We have to update the src/preset/quick.ts and src/preset/tiny.ts too.

Hi @yusukebe updated !


[Feature suggestion] Save all

First off, thank you for creating this amazing open source and privacy friendly file sharing platform! Stumbled upon it on HackerNews and must say it's really as good as how other users described it. Personally, way better and easier to use than DropBox and co!
The only thing which might be missing would be a "Save all" button (or something similar?). At least when sharing photos with my friends they note that it's cumbersome to click accept on all photos. Especially on a mobile device...
But it's nothing mayor, just a small suggestion if you ever wonder what to add as a new feature. I'm already glad and happy with the current version! Keep it up mate and have a nice day 😄

Good idea! Give me an hour.

The feature is now ready and should be available in production right now.

Wow, this was super fast, thank you very much! 😄


Ledger harvesting - VRF and Remote private keys not saved

Steps:

Login using Ledger (you need to have account with > 10000 XYM and importance > 0)
Go to harvesting
Click "Link All keys"
Announce transaction and wait for confirmation
Go to "Key Links"

Result: Private keys are not saved. WIthout it process is not possible to finish.
Expected result: Private keys are saved.
Applies to regulat and multisig Ledger accounts.

Fixed in dev.


Make objects controllable in Zapperment track definition files

Zapperment version 0.2.0 “Grievous” introduced track definition files (see documentation).
Currently, basic values (numbers, booleans, strings) can be defined as controllable, i.e. Zapperment can vary the values based on randomness and its neural network.
For some use cases, it would be more convenient to be able to not only configure the leaf nodes of the JSON structure, but whole branches, by specifying whole channel element objects controllable.
For example, controlling the mood with a button – this is more convenient and easier to understand to notate…
{
  "mood": {
    "button2": {
      "0": {
        "happy": 127,
        "cheerful": 127
      },
      "1": {
        "sad": 127,
        "gloomy": 127
      }
  }
}

…than this:
{
  "mood": {
    "happy": {
      "button2": {
        "0": 127,
        "127": 0
      },
    },
    "cheerful": {
      "button2": {
        "0": 127,
        "127": 0
      }
    },
    "sad": {
      "button2": {
        "0": 0,
        "127": 127
       }
    },
    "gloomy": {
      "button2": {
        "0": 0,
        "127": 127
       }
    }
  }
}

Added wiki documentation about this feature: https://github.com/technology-ebay-de/zapperment/wiki/Zapperment-Track-Definition

This was implemented in Grievous.


Deepsurv variable importance

Hi, does 'DeepSurv'' support variable importance method? I did not find a function for variable importance in this package.

Hi, thank you for your interest with DeepSurv!
Variable importance is not currently implemented. If you go ahead and
implement it, I’m happy to accept a pull request.
On Fri, Apr 9, 2021 at 1:39 AM Behnam @.***> wrote:

Hi, does 'DeepSurv'' support variable importance method? I did not find a
function for variable importance in this package.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jaredleekatzman/DeepSurv/issues/67, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABM2MZUI375ZELA2RR2BJZTTH2HH7ANCNFSM42UI2LPA
.

@Jaredleekatzman, Many thanks for your response.


Configuring exposed ports

Is there any configuration that allows for the tuning of exposed ports? I'm looking to try to run a container image that contains my API and then allows molecule to test my roles out to see if the expected actions/outputs are completed.

Just define exposed_ports or piblished_ports in your molecule config, depending on what you need.

Just define exposed_ports or piblished_ports in your molecule config, depending on what you need.

Thanks @sshnaidm . Is this documented anywhere? I combed through as much of the molecule docs as I could and even grepped through the repo and only found this  within the code. Just want to make sure I'm not missing something simple here.
For anyone else that ends up here, you'll want your molecule.yml to look something like this:
---
</snip>
platforms:
  - name: instance-keycloak
    image: docker.io/jboss/keycloak:9.0.3
    published_ports:
      - 8080/tcp
      - 8443/tcp
</snip>

Thanks @sshnaidm . Is this documented anywhere? I combed through as much of the molecule docs as I could and even grepped through the repo and only found this  within the code. Just want to make sure I'm not missing something simple here.
For anyone else that ends up here, you'll want your molecule.yml to look something like this:
---
</snip>
platforms:
  - name: instance-keycloak
    image: docker.io/jboss/keycloak:9.0.3
    published_ports:
      - 8080/tcp
      - 8443/tcp
</snip>

I don't see any docs here at all, tbh.

I don't see any docs here at all, tbh.

That' what I noticed as well. Would this be the place to have those types of docs? Or does those belong in the molecule core ? Happy to help start creating those wherever they may need to be -- just probably worth a chat of what should be included and where they need to go.

That' what I noticed as well. Would this be the place to have those types of docs? Or does those belong in the molecule core ? Happy to help start creating those wherever they may need to be -- just probably worth a chat of what should be included and where they need to go.

it seems not work
molecule --version
molecule 3.5.2 using python 3.9
    ansible:2.11.6
    delegated:3.5.2 from molecule
    docker:1.1.0 from molecule_docker requiring collections: community.docker>=1.9.1
    hetznercloud:1.3.0 from molecule_hetznercloud
    vagrant:0.6.3 from molecule_vagrant
(.env) spham@pop-os:~/infra/nemo_source$

@spham
You need to verify which port that "published_port" selected for your host machine.
docker ps should reveal something like <IP_ADDRESS>:59175->8500/tcp

There is a complete docker example here: https://molecule.readthedocs.io/en/2.13.1/configuration.html#docker

thank you

Ports in the container are exposed on the localhost, and it's custom to use a mapping to avoid the Address already in use bind error when your container starts listening. This fragment of molecule.yml is for a web server:
platforms:
  - name: ubi8
    image: registry.access.redhat.com/ubi8/ubi-init
    pre_build_image: true
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup:ro
    privileged: true
    command: "/usr/sbin/init"
    published_ports:
      - <IP_ADDRESS>:8000:80


TestNG 7.0.0: @BeforeClass/@AfterClass getting called multiple times during test run

Oracle Java 8u221
Maven 3.6.1
NetBeans 11.1
Windows 10
Expected result (TestNG 6.14.3):
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running debug.TestBeforeAfterClassOrdering
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Begin
  --> Doing setup
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Complete
[TestBeforeAfterClassOrdering.testMethod]: @Test Begin
  --> Running a test
[TestBeforeAfterClassOrdering.testMethod]: @Test Complete
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Begin
  --> Doing cleanup
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Complete
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.749 s - in debug.TestBeforeAfterClassOrdering

Results:

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

Actual result (TestNG 7.0.0):
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running debug.TestBeforeAfterClassOrdering
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Begin
  --> Doing setup
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Complete
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Begin
  --> Doing cleanup
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Complete
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Begin
  --> Doing setup
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Complete
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Begin
  --> Doing cleanup
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Complete
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Begin
  --> Doing setup
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Complete
[TestBeforeAfterClassOrdering.testMethod]: @Test Begin
  --> Running a test
[TestBeforeAfterClassOrdering.testMethod]: @Test Complete
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Begin
  --> Doing cleanup
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Complete
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Begin
  --> Doing setup
[TestBeforeAfterClassOrdering.setup]: @BeforeClass Complete
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Begin
  --> Doing cleanup
[TestBeforeAfterClassOrdering.cleanup]: @AfterClass Complete
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.981 s - in debug.TestBeforeAfterClassOrdering

Results:

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

Test Project Attached:
testng-test.zip

I was about to write something like this when I ran into this one. It seems to be tied to the @Test annotation at a class level. I was able to "fix" this by removing that and moving groups (in my case) to the individual tests which I was trying to avoid by having them at a class level.

This looks like a duplicate of https://github.com/cbeust/testng/issues/2152

It does.

Duplicate of #2152

I am still facing the issue in testng 7.0.0. @Test methods run number of times  tag is present in testng.xml

@HDwares - Please be more elaborate. I would suggest that you create a new issue (instead of commenting on an existing issue that was closed ) with a full fledged simple standalone sample that can be used to recreate your problem

Suppose there are 2 Java Files:
Test1:
import org.testng.annotations.Test;
public class Test1 {
@Test
public void Test1Method1() {
	System.out.println("This is method 1 from Test 1");
}

}
Test2:
import org.testng.annotations.Test;
public class Test2 {
@Test
public void Test2Method1() {
	System.out.println("This is method 1 from Test 2");
}

}
And testng.xml contains:

When I run the testng.xml suite then I get the following results:
[RemoteTestNG] detected TestNG version 7.0.0
...
... TestNG 7.0.0 by CÃ©dric Beust<EMAIL_ADDRESS>...
This is method 1 from Test 1
PASSED: Test1Method1
===============================================
Test1
Tests run: 1, Failures: 0, Skips: 0
PASSED: Test1Method1
===============================================
Test2
Tests run: 1, Failures: 0, Skips: 0
This is method 1 from Test 2
PASSED: Test1Method1
PASSED: Test2Method1
===============================================
Test2
Tests run: 2, Failures: 0, Skips: 0
===============================================
Suite
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
Also attached is the testng run result screen shot:

When I changed testng plugin to 6.8.8 it started working fine.

@HDwares - From what you are saying it looks like its a TestNG eclipse plugin related problem. I can't reproduce this on IntelliJ. So please create a new issue here and include all the relevant details (TestNG version that you are using, TestNG eclipse plugin version, a full fledged simple standalone project)


Unable to run the example on the android_alarm_manager

When trying to run the example project on the android_alarm_manager I get the following exception.
Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Running 'gradlew assembleDebug'...
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
C:\code\experiments\android\plugins-master\packages\android_alarm_manager\android\src\main\java\io\flutter\plugins\androidalarmmanager\AlarmService.java:16: error: cannot find symbol
import io.flutter.view.FlutterCallbackInformation;
                      ^
  symbol:   class FlutterCallbackInformation
  location: package io.flutter.view
C:\code\experiments\android\plugins-master\packages\android_alarm_manager\android\src\main\java\io\flutter\plugins\androidalarmmanager\AlarmService.java:19: error: cannot find symbol
import io.flutter.view.FlutterRunArguments;
                      ^
  symbol:   class FlutterRunArguments
  location: package io.flutter.view
C:\code\experiments\android\plugins-master\packages\android_alarm_manager\android\src\main\java\io\flutter\plugins\androidalarmmanager\AlarmService.java:47: error: cannot find symbol
    FlutterCallbackInformation cb =
    ^
  symbol:   class FlutterCallbackInformation
  location: class AlarmService
C:\code\experiments\android\plugins-master\packages\android_alarm_manager\android\src\main\java\io\flutter\plugins\androidalarmmanager\AlarmService.java:48: error: cannot find symbol
        FlutterCallbackInformation.lookupCallbackInformation(callbackHandle);
        ^
  symbol:   variable FlutterCallbackInformation
  location: class AlarmService
C:\code\experiments\android\plugins-master\packages\android_alarm_manager\android\src\main\java\io\flutter\plugins\androidalarmmanager\AlarmService.java:57: error: constructor FlutterNativeView in class FlutterNativeView cannot be applied to given types;
    sBackgroundFlutterView = new FlutterNativeView(context, true);
                             ^
  required: Context
  found: Context,boolean
  reason: actual and formal argument lists differ in length
C:\code\experiments\android\plugins-master\packages\android_alarm_manager\android\src\main\java\io\flutter\plugins\androidalarmmanager\AlarmService.java:60: error: cannot find symbol
      FlutterRunArguments args = new FlutterRunArguments();
      ^
  symbol:   class FlutterRunArguments
  location: class AlarmService
C:\code\experiments\android\plugins-master\packages\android_alarm_manager\android\src\main\java\io\flutter\plugins\androidalarmmanager\AlarmService.java:60: error: cannot find symbol
      FlutterRunArguments args = new FlutterRunArguments();
                                     ^
  symbol:   class FlutterRunArguments
  location: class AlarmService
7 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':android_alarm_manager:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 4s
Finished with error: Gradle build failed: 1

My flutter doctor's output is as follows.
C:\softwares\flutter\bin\flutter.bat --no-color doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.5.1, on Microsoft Windows [Version 10.0.16299.611], locale en-ZA)
[√] Android toolchain - develop for Android devices (Android SDK 28.0.0)
[√] Android Studio (version 3.1)
[!] VS Code, 64-bit edition (version 1.24.0)
[√] Connected devices (1 available)

! Doctor found issues in 1 category.
Process finished with exit code 0

Please try with master or dev channel
flutter channel master
flutter doctor

Now the issue is fixed. I am able to run the android_alarm_manager example. I have documented the steps below.
Thanks Zoechi
Running flutter channel master gave me the following .
Switching to flutter channel 'master'...
git: Branch 'master' set up to track remote branch 'master' from 'origin'.
git: Switched to a new branch 'master'
'seconds...' is not recognized as an internal or external command,
operable program or batch file.

Waiting for 0 seconds, press CTRL+C to quit ...
Running pub upgrade...
Resolving dependencies...
The current Dart SDK version is 2.0.0-dev.58.0.flutter-f981f09760.

Because android_alarm_manager depends on flutter any from sdk which requires SDK version >=2.0.0-dev.68.0 <3.0.0, version solving failed.
Error Unable to 'pub upgrade' flutter tool. Retrying in five seconds... (-1 tries left)

Waiting for 0 seconds, press CTRL+C to quit ...
Running pub upgrade...
Resolving dependencies...
The current Dart SDK version is 2.0.0-dev.58.0.flutter-f981f09760.

It kept on retrying and I had to quit it.
Then I ran flutter doctor
which gave the following output.
flutter doctor
Checking Dart SDK version...
Downloading Dart SDK from Flutter engine 03f8ba51e3d4d2f4de7875fe1607d781bf0a7409...
Unzipping Dart SDK...
Building flutter tool...
Running pub upgrade...
Failed to rename directory because access was denied.
This may be caused by a virus scanner or having a file
in the directory open in another application.
Error Unable to 'pub upgrade' flutter tool. Retrying in five seconds... (9 tries left)

Waiting for 0 seconds, press CTRL+C to quit ...
Running pub upgrade...
Downloading package sky_engine...                            8,3s
Downloading common tools...                                 46,0s
Downloading windows-x64 tools...                            120,6s
Downloading android-arm-profile/windows-x64 tools...        17,3s
Downloading android-arm-release/windows-x64 tools...        16,1s
Downloading android-arm64-profile/windows-x64 tools...      20,8s
Downloading android-arm64-release/windows-x64 tools...      18,8s
Downloading android-x86 tools...                            109,3s
Downloading android-x64 tools...                            113,5s
Downloading android-arm tools...                            51,4s
Downloading android-arm-profile tools...                    44,0s
Downloading android-arm-release tools...                    34,6s
Downloading android-arm64 tools...                          56,2s
Downloading android-arm64-profile tools...                  47,8s
Downloading android-arm64-release tools...                  38,5s
Downloading android-arm-dynamic-profile tools...            51,3s
Downloading android-arm-dynamic-release tools...            40,9s
Downloading android-arm64-dynamic-profile tools...          55,9s
Downloading android-arm64-dynamic-release tools...          46,2s
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, v0.5.9-pre.84, on Microsoft Windows [Version 10.0.16299.611], locale en-ZA)
[√] Android toolchain - develop for Android devices (Android SDK 28.0.0)
[√] Android Studio (version 3.1)
[√] VS Code, 64-bit edition (version 1.24.0)
[√] Connected devices (1 available)

• No issues found!

Did you install Flutter in a directory where you need to be Admin for write permissions? (like c:\Program Files)
That's not supported.

No, I have created a seperate folder for flutter.
But I am able to run only the sample. But when I add the plugin as a dependency to the project, I still get a compilation error saying the following.
import io.flutter.view.FlutterCallbackInformation; and
import io.flutter.view.FlutterRunArguments;    not recognized as an available class.

Did you try flutter clean?

Same issue. After installing the android_alarm_manager plugin, and then running the app I get this
/Users/name/.pub-cache/hosted/pub.dartlang.org/android_alarm_manager-0.2.1/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java:16: error: cannot find symbol
import io.flutter.view.FlutterCallbackInformation;
                      ^
  symbol:   class FlutterCallbackInformation
  location: package io.flutter.view
/Users/name/.pub-cache/hosted/pub.dartlang.org/android_alarm_manager-0.2.1/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java:19: error: cannot find symbol
import io.flutter.view.FlutterRunArguments;
                      ^
  symbol:   class FlutterRunArguments
  location: package io.flutter.view
/Users/name/.pub-cache/hosted/pub.dartlang.org/android_alarm_manager-0.2.1/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java:47: error: cannot find symbol
    FlutterCallbackInformation cb =
    ^
  symbol:   class FlutterCallbackInformation
  location: class AlarmService
/Users/name/.pub-cache/hosted/pub.dartlang.org/android_alarm_manager-0.2.1/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java:48: error: cannot find symbol
        FlutterCallbackInformation.lookupCallbackInformation(callbackHandle);
        ^
  symbol:   variable FlutterCallbackInformation
  location: class AlarmService
/Users/name/.pub-cache/hosted/pub.dartlang.org/android_alarm_manager-0.2.1/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java:57: error: constructor FlutterNativeView in class FlutterNativeView cannot be applied to given types;
    sBackgroundFlutterView = new FlutterNativeView(context, true);
                             ^
  required: Context
  found: Context,boolean
  reason: actual and formal argument lists differ in length
/Users/name/.pub-cache/hosted/pub.dartlang.org/android_alarm_manager-0.2.1/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java:60: error: cannot find symbol
      FlutterRunArguments args = new FlutterRunArguments();
      ^
  symbol:   class FlutterRunArguments
  location: class AlarmService
/Users/name/.pub-cache/hosted/pub.dartlang.org/android_alarm_manager-0.2.1/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java:60: error: cannot find symbol
      FlutterRunArguments args = new FlutterRunArguments();
                                     ^
  symbol:   class FlutterRunArguments
  location: class AlarmService
7 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':android_alarm_manager:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

@km16 Could you please try with a newer Flutter version as well?

Tried with the new version. This time I didn't see any errors, but the application crashes every time I run it. This does not happen without the android_alarm_manager package.
Not sure if it is related, here is a small section of the adb logcat:
I/MiniDeviceController: [MiniDeviceController-1] ACTIVATE (MountBlue Python) null
    [MiniDeviceController-1] connecting to /<IP_ADDRESS>
08-28 12:40:31.507 1757-16880/? E/CastSocket: [MiniDeviceController-1] IOException encountered. Tearing down the socket.
    java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
        at libcore.io.IoBridge.maybeThrowAfterRecvfrom(IoBridge.java:592)
        at libcore.io.IoBridge.recvfrom(IoBridge.java:568)
        at java.nio.SocketChannelImpl.readImpl(SocketChannelImpl.java:342)
        at java.nio.SocketChannelImpl.read(SocketChannelImpl.java:304)
        at mtx.read(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136))
        at msw.j(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136):5)
        at mtf.run(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136):50)
        at java.lang.Thread.run(Thread.java:818)
     Caused by: android.system.ErrnoException: recvfrom failed: ECONNRESET (Connection reset by peer)
        at libcore.io.Posix.recvfromBytes(Native Method)
        at libcore.io.Posix.recvfrom(Posix.java:177)
        at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:245)
        at libcore.io.IoBridge.recvfrom(IoBridge.java:565)
        at java.nio.SocketChannelImpl.readImpl(SocketChannelImpl.java:342)
        at java.nio.SocketChannelImpl.read(SocketChannelImpl.java:304)
        at mtx.read(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136))
        at msw.j(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136):5)
        at mtf.run(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136):50)
        at java.lang.Thread.run(Thread.java:818)
08-28 12:40:31.508 1757-16880/? E/CastSocket: [MiniDeviceController-1] Failed to shutdown the output stream socket: mtx@2ee4df6e.
    java.net.SocketException: shutdown failed: ENOTCONN (Transport endpoint is not connected)
        at java.net.PlainSocketImpl.shutdownOutput(PlainSocketImpl.java:377)
        at java.net.Socket.shutdownOutput(Socket.java:652)
        at msw.b(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136):21)
        at mtf.run(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136):50)
        at java.lang.Thread.run(Thread.java:818)
     Caused by: android.system.ErrnoException: shutdown failed: ENOTCONN (Transport endpoint is not connected)
        at libcore.io.Posix.shutdown(Native Method)
        at libcore.io.ForwardingOs.shutdown(ForwardingOs.java:149)
        at java.net.PlainSocketImpl.shutdownOutput(PlainSocketImpl.java:375)
        at java.net.Socket.shutdownOutput(Socket.java:652)
        at msw.b(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136):21)
        at mtf.run(:com.google.android.gms<EMAIL_ADDRESS>(020306-204998136):50)
        at java.lang.Thread.run(Thread.java:818)

flutter doctor

[✓] Flutter (Channel master, v0.7.2-pre.18, on Mac OS X 10.13.6 17G65)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[!] iOS toolchain - develop for iOS devices (Xcode 9.3.1)
    ! CocoaPods out of date (1.5.0 is recommended).
        CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
        For more info, see https://flutter.io/platform-plugins
      To upgrade:
        brew upgrade cocoapods
        pod setup
[✓] Android Studio (version 3.1)
[✓] Connected devices (1 available)

! Doctor found issues in 1 category.

Executing pod install in ios/ might be worth a try.

This is just on the device. I am currently interested to implement it in an android app only.

Does that mean it works on the emulator or that you did not try with the emulator?

@zoechi I have the same issue on beta. When switch to master I don't log issue but the app start and crash.
I am also in windows, my version of android_alarm manager is: 0.2.1 and I test on emulator and device and I have the error on both:
`D:\Documents\dev\projets\vsCodeWorkspace\relax-mobile-app\relax (feature/parametrage)
λ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, v0.7.2-pre.23, on Microsoft Windows [version 10.0.17134.228], locale fr-FR)
[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
X Android license status unknown.
[√] Android Studio (version 2.3)
X Flutter plugin version 12.1 - the recommended minimum version is 16.0.0
[√] VS Code, 64-bit edition (version 1.24.1)
[√] Connected devices (1 available)
! Doctor found issues in 1 category.
D:\Documents\dev\projets\vsCodeWorkspace\relax-mobile-app\relax (feature/parametrage)
λ flutter run
Launching lib/main.dart on D6603 in debug mode...
Initializing gradle...                                       7,2s
Resolving dependencies...                                    9,0s
Running 'gradlew assembleDebug'...                          92,6s
Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...                 29,2s
Syncing files to device D6603...
Lost connection to device.`

I did not try with the emulator.

Hello, is a workaround now available for this ?

https://github.com/flutter/flutter/issues/24201#issuecomment-441182993 might help

I install the plugin and run in emulator and real device.
Ricardo Luiz Pinto:
I/AlarmService(13919): Starting AlarmService...
E/MethodChannel#plugins.flutter.io/android_alarm_manager(13919): Failed to handle method call
E/MethodChannel#plugins.flutter.io/android_alarm_manager(13919): java.lang.NullPointerException: Attempt to invoke interface method 'void io.flutter.plugin.common.PluginRegistry$PluginRegistrantCallback.registerWith(io.flutter.plugin.common.PluginRegistry)' on a null object reference
E/MethodChannel#plugins.flutter.io/android_alarm_manager(13919):  at io.flutter.plugins.androidalarmmanager.AlarmService.startAlarmService(AlarmService.java:65)
E/MethodChannel#plugins.flutter.io/android_alarm_manager(13919):  at io.flutter.plugins.androidalarmmanager.AndroidAlarmManagerPlugin.startService(AndroidAlarmManagerPlugin.java:75)
E/MethodChannel#plugins.flutter.io/android_alarm_manager(13919):  at io.flutter.plugins.androidalarmmanager.AndroidAlarmManagerPlugin.onMethodCall(AndroidAlarmManagerPlugin.java:52)
E/MethodChannel#plugins.flutter.io/android_alarm_manager(13919):  at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:200)
E/MethodChannel#plugins.flutter.io/android_alarm_manager(13919):  at io.flutter.view.FlutterNativeView.handlePlatformMessage(FlutterNativeView.java:163)
E/MethodChannel#plugins.flutter.io/android_alarm_manager(13919):  at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/android_alarm_manager(13919):  at android.os.MessageQueue.next(MessageQueue.java:325)

@siepi do you mind creating a separate issue for this?

@rahulgul8 @ghost
Are you still having this issue on the latest version 0.4.1+6?

Yes, @bparrishMines  I am suffering from the same issue. Currently I'm trying with the above solution by switching between channels. Switched from stable to master. Is there any solution for that?

I am facing this issue too (0.4.1+6)

@bkonyi

I'm unable to reproduce this failure myself on Linux with the latest Flutter build. If I had to guess, the failures above are due to an incorrect environment setup and the Flutter engine library artifacts not being found.

@rahulgul8 @ghost are you still encountering this issue with the latest release?

@cbracken I am currently not using it and don't have the setup to test it either. So I am unable to confirm.

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


Unable to run my app or the cookiecutter... getting error  `materialize': Could not find

Hi
I have been trying to launch my own app on to lambda and also the cookiecutter but after deploying to AWS I am getting the same error -
/usr/local/lib/ruby/3.2.0/bundler/definition.rb:524:in materialize': Could not find debug-1.8.0, webrick-1.8.1, web-console-4.2.0, capybara-3.39.1, selenium-webdriver-4.9.1, webdrivers-5.2.0, irb-1.6.4, reline-0.3.4, bindex-0.8.1, addressable-2.8.4, matrix-0.4.2, nokogiri-1.15.2-aarch64-linux, regexp_parser-2.8.0, xpath-3.2.0, rexml-3.2.5, rubyzip-2.3.2, websocket-1.2.9, nio4r-2.5.9, websocket-driver-0.7.5, public_suffix-5.0.1 in locally installed gems (Bundler::GemNotFound)`
For some reason it seems like it cannot find the gems.
Does anyone know the fix / why this is happening?
Cheers
Liam

Morning Liam, a few things to check in your container build.

Have you bundled the gems in a local vendor/bundle directory vs system installed?
Are you building or copying that entire directory into the container along with the app?
Do you have the right BUNDLE_ environment variables and/or local configs to support those paths?

@metaskills just getting into lamby, super interested
Following the quick start guide, i dont see any specifications about vendoring gems or setting any variables. Is it implied by the fact github workspace is somehow a requirement ?

Yup, cover that a bit in this section.
https://lamby.cloud/docs/anatomy#deployment--cicd
The cookie cutter has this and lots more details. See deploy script here.
https://github.com/rails-lambda/lamby-cookiecutter/blob/master/{{cookiecutter.project_name}}/bin/deploy#L26-L31

missed the details; will dive into it
thanks alot for your reply!

i might lack  of understanding, but if i may ask;
Im on my osx laptop (silicon) and not in dev containers. Reading the script (and following the quick start, so running it via ./bin/deploy), it is indeed vendoring the gem etc... so things should be working the same way ? I just dont understand what is missing while not doing it in dev containers.
I had no issues when deploying via devcontainers

Always fine to ask, happy to help.
I think the issue is "platform" not "arch". Your deployment target "platform" is going to be Linux. If your project has any gem with platform dependencies then you may be compiling gems that are executable and linking on your Mac, not Linux. So let's say you have the MySQL2 gem? And when you vendor that on your Mac it will only run on your Mac and likely links shared objects to system dependences on your Mac. This is why a dev container in both CI/CD is so helpful. Does that help?

I got the idea thank a lot
Without changing anything with the provided files, i'am a bit stuck with bot circle ci and github actions deployments steps
** circleci :
...
Successfully tagged railslambda:web

Building codeuri: /workspaces/rbdotrun runtime: None metadata: {'DockerContext':
'/workspaces/rbdotrun/.lamby/RailsLambda', 'Dockerfile': 'Dockerfile',
'DockerTag': 'jobs'} architecture: arm64 functions: JobsLambda
Building image for JobsLambda function
Setting DockerBuildArgs: {} for JobsLambda function

Error: You must specify a directory to build in path
Traceback:
...

And github actions :
...
Building codeuri: /workspaces/rbdotrun runtime: None metadata: {'DockerContext': '/workspaces/rbdotrun', 'Dockerfile': 'Dockerfile', 'DockerTag': 'web'} architecture: arm64 functions: RailsLambda
Building image for RailsLambda function
Setting DockerBuildArgs: {} for RailsLambda function
Failed building function RailsLambda
Build Failed
Error: The command '/bin/sh -c gem install 'aws_lambda_ric'' returned a non-zero code: 1
...

are those errors familiar to you and could be solved somehow ?

ok I so got it, stupid reason.
The default deploy super fine anywhere. I use postgres; so I had to extend the dockerfile.
# Shared image, envs, packages for both devcontainer & prod.
FROM ruby:3.2-bullseye
RUN apt-get update
RUN apt-get install -y postgresql-client
RUN gem install 'aws_lambda_ric'
...

That is, the failing step was RUN gem install 'aws_lambda_ric', with the following :
Error: The command '/bin/sh -c gem install 'aws_lambda_ric'' returned a non-zero code: 1

I kind of get the idea why it was stopping at that step without further infos (the bundle install occurs before 'locally' within the container?); but that did not helped to spot the (now obvious) issue

I'd have to see more output. Seems just fine if I test what is happening during a docker build.
> docker run --interactive --tty --rm --entrypoint "/bin/bash" ruby:3.2-bullseye
root@03998ca6a750:/# apt-get update 1> /dev/null 2> /dev/null
root@03998ca6a750:/# apt-get install -y postgresql-client 1> /dev/null 2> /dev/null
root@03998ca6a750:/# gem install 'aws_lambda_ric'
Fetching aws_lambda_ric-2.0.0.gem
Successfully installed aws_lambda_ric-2.0.0
1 gem installed

A new release of RubyGems is available: 3.4.10 → 3.4.19!
Run `gem update --system 3.4.19` to update your installation.

Hey there! I'm having the same problem as @benbonnet, could you guys help me?
I'm trying to deploy the cookiecutter through Github Actions
This is the output of the error:
== SAM build ==
SAM CLI now collects telemetry to better understand customer needs.

You can OPT OUT and disable telemetry collection by setting the
environment variable SAM_CLI_TELEMETRY=0 in your shell.
Thanks for your help!

Learn More: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-telemetry.html

2023-09-26 13:32:04,573 | No config file found in this directory.
2023-09-26 13:32:04,574 | OSError occurred while reading TOML file: [Errno 2] No such file or directory: '/workspaces/cookiecutter/samconfig.toml'
2023-09-26 13:32:04,575 | Config file location: /workspaces/cookiecutter/samconfig.toml
2023-09-26 13:32:04,575 | Config file '/workspaces/cookiecutter/samconfig.toml' does not exist
2023-09-26 13:32:04,582 | Using SAM Template at /workspaces/cookiecutter/template.yaml
2023-09-26 13:32:04,602 | Using config file: samconfig.toml, config environment: default
2023-09-26 13:32:04,602 | Expand command line arguments to:
2023-09-26 13:32:04,602 | --template_file=/workspaces/cookiecutter/template.yaml --parameter_overrides={'RailsEnv': 'production'} --mount_with=READ --build_dir=.aws-sam/build --cache_dir=.aws-sam/cache
2023-09-26 13:32:04,658 | 'build' command is called
2023-09-26 13:32:04,661 | Collected default values for parameters: {'RailsEnv': 'staging'}
2023-09-26 13:32:04,680 | There is no customer defined id or cdk path defined for resource RailsLambda, so we will use the resource logical id as the resource id
2023-09-26 13:32:04,681 | Unable to resolve property Value: {'Fn::GetAtt': ['RailsLambdaUrl', 'FunctionUrl']}. Leaving as is.
2023-09-26 13:32:04,681 | 0 stacks found in the template
2023-09-26 13:32:04,681 | Collected default values for parameters: {'RailsEnv': 'staging'}
2023-09-26 13:32:04,694 | There is no customer defined id or cdk path defined for resource RailsLambda, so we will use the resource logical id as the resource id
2023-09-26 13:32:04,695 | Unable to resolve property Value: {'Fn::GetAtt': ['RailsLambdaUrl', 'FunctionUrl']}. Leaving as is.
2023-09-26 13:32:04,695 | 1 resources found in the stack
2023-09-26 13:32:04,695 | Found Serverless function with name='RailsLambda' and ImageUri='None'
2023-09-26 13:32:04,695 | --base-dir is not presented, adjusting uri . relative to /workspaces/cookiecutter/template.yaml
2023-09-26 13:32:04,695 | --base-dir is not presented, adjusting uri . relative to /workspaces/cookiecutter/template.yaml
2023-09-26 13:32:04,699 | 1 resources found in the stack
2023-09-26 13:32:04,699 | Found Serverless function with name='RailsLambda' and ImageUri='None'
2023-09-26 13:32:04,699 | Error occurred while trying to track an event: Event 'BuildFunctionRuntime' does not accept value 'None'.
2023-09-26 13:32:04,700 | Instantiating build definitions
2023-09-26 13:32:04,700 | No previous build graph found, generating new one
2023-09-26 13:32:04,700 | Unique function build definition found, adding as new (Function Build Definition: BuildDefinition(None, /workspaces/cookiecutter, Image, , 4019b7c6-5d0f-482c-9501-238a495eecfb, {'DockerContext': '/workspaces/cookiecutter', 'Dockerfile': 'Dockerfile', 'DockerTag': 'web'}, {}, arm64, []), Function: Function(function_id='RailsLambda', name='RailsLambda', functionname='RailsLambda', runtime=None, memory=1792, timeout=30, handler=None, imageuri=None, packagetype='Image', imageconfig=None, codeuri='/workspaces/cookiecutter', environment={'Variables': {'RAILS_ENV': 'production'}}, rolearn=None, layers=[], events=None, metadata={'DockerContext': '/workspaces/cookiecutter', 'Dockerfile': 'Dockerfile', 'DockerTag': 'web', 'SamResourceId': 'RailsLambda'}, inlinecode=None, codesign_config_arn=None, architectures=['arm64'], function_url_config={'AuthType': 'NONE'}, function_build_info=<FunctionBuildInfo.BuildableImage: ('BuildableImage', 'Regular IMAGE function which can be build with SAM CLI')>, stack_path='', runtime_management_config=None))
2023-09-26 13:32:04,701 | Building codeuri: /workspaces/cookiecutter runtime: None metadata: {'DockerContext': '/workspaces/cookiecutter', 'Dockerfile': 'Dockerfile', 'DockerTag': 'web'} architecture: arm64 functions: RailsLambda
2023-09-26 13:32:04,701 | Building to following folder /workspaces/cookiecutter/.aws-sam/build/RailsLambda
2023-09-26 13:32:04,701 | Building image for RailsLambda function
2023-09-26 13:32:04,703 | Setting DockerBuildArgs: {} for RailsLambda function
2023-09-26 13:32:22,959 | Failed building function RailsLambda
2023-09-26 13:32:22,959 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
Build Failed
2023-09-26 13:32:22,975 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
2023-09-26 13:32:22,975 | Unable to find Click Context for getting session_id.
2023-09-26 13:32:22,976 | Sending Telemetry: {'metrics': [{'commandRun': {'requestId': '67333f5a-ac16-4edf-856d-75aadf764361', 'installationId': '55cbc077-4453-4aae-b4ec-f61cbe0b1604', 'sessionId': 'cf091346-c0e8-4c02-a8d8-d900328ff012', 'executionEnvironment': 'Other', 'ci': True, 'pyversion': '3.9.2', 'samcliVersion': '1.97.0', 'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam build', 'metricSpecificAttributes': {'projectType': 'CFN', 'gitOrigin': None, 'projectName': '30a7af1f221523c4bb41b4cc6f7dd5f7eff1adf6686ad91d7386f1c98cd78c55', 'initialCommit': None}, 'duration': 18357, 'exitReason': 'DockerBuildFailed', 'exitCode': 1}}]}
2023-09-26 13:32:22,979 | Sending Telemetry: {'metrics': [{'events': {'requestId': '2b9f37ef-5731-4661-ac71-95d7f71e2bb8', 'installationId': '55cbc077-4453-4aae-b4ec-f61cbe0b1604', 'sessionId': 'cf091346-c0e8-4c02-a8d8-d900328ff012', 'executionEnvironment': 'Other', 'ci': True, 'pyversion': '3.9.2', 'samcliVersion': '1.97.0', 'commandName': 'sam build', 'metricSpecificAttributes': {'events': [{'event_name': 'SamConfigFileExtension', 'event_value': '.toml', 'thread_id': '9fd64fccc69244748917aafb5b731f88', 'time_stamp': '2023-09-26 13:32:04.575', 'exception_name': None}]}}}]}
2023-09-26 13:32:23,320 | Telemetry response: 200
Error: The command '/bin/sh -c gem install 'aws_lambda_ric'' returned a non-zero code: 1
2023-09-26 13:32:23,344 | Telemetry response: 200
Error: Dev container exec failed: (exit code: 1)
Error: Dev container exec failed: (exit code: 1)

actually, trying to shake up the apt packages to get postgres running, this part :
# Shared image, envs, packages for both devcontainer & prod.
FROM ruby:3.2-bullseye

RUN apt-get update # <--
RUN apt-get install -y postgresql-client # <--

Fails on github actions. While the example mentionned above worked well when deploying via vscode devcontainers
Some github actions logs :
Build Failed
Error: The command '/bin/sh -c apt-get update -y -qq' returned a non-zero code: 1

ERROR: failed to solve: process "/bin/sh -c apt-get update -y -qq && apt-get safe-upgrade -y" did not complete successfully: exit code: 100

  --------------------
     5 |
     6 |     RUN apt upgrade -y
     7 | >>> RUN apt-get install -y postgresql-client
     8 |
     9 |     # Temporary multi-platform SAM CLI install method.
  --------------------
  ERROR: failed to solve: process "/bin/sh -c apt-get install -y postgresql-client" did not complete successfully: exit code: 100
 ```

Looking around about devcontainers (ex. https://github.com/luizkowalski/devcontainer-rails), it feels like i'm too much of a noob at using it. That is, if you may provide some guidance that'd be awesome

I had a very similar error when I used the cookiecutter. Without any changes at all, it fails after deployment because gems are missing.
/usr/local/lib/ruby/3.2.0/bundler/definition.rb:524:in materialize': Could not find debug-1.9.0, web-console-4.2.1, capybara-3.39.2, selenium-webdriver-4.10.0, webdrivers-5.3.1, bindex-0.8.1, addressable-2.8.6, matrix-0.4.2, regexp_parser-2.8.3, xpath-3.2.0, rexml-3.2.6, rubyzip-2.3.2, websocket-1.2.10, public_suffix-5.0.4 in locally installed gems (Bundler::GemNotFound)
`
In this case those gems are all in the development/test section of the Gemfile. My lambda has RAILS_ENV=production, so i'm not sure why this is causing problems. I fixed it by commenting out this line in the bin/setup script:
#bundle config --local without 'development test'
When i bundle all the gems (even the dev/test ones) then it gets pass this error.
Doesn't seem to be the same as @hungnv-sr exactly, since that error shows prod gems like mysql2...

I'm also having an issue getting my app to work.  I see the following error in Cloudwatch:
2024-01-26T09:22:44.672-06:00

Copy
/usr/local/lib/ruby/3.2.0/bundler/definition.rb:524:in `materialize': Could not find web-console-4.2.1, capybara-3.39.2, selenium-webdriver-4.10.0, webdrivers-5.3.1, bindex-0.8.1, addressable-2.8.5, matrix-0.4.2, regexp_parser-2.8.1, xpath-3.2.0, rexml-3.2.6, rubyzip-2.3.2, websocket-1.2.10, nio4r-2.5.9, websocket-driver-0.7.6, bigdecimal-3.1.4, public_suffix-5.0.3, psych-5.1.0, stringio-3.0.8 in locally installed gems (Bundler::GemNotFound)

The PLATFRORMS section of Gemfile.lock:
PLATFORMS
  ruby

I was able to get past this issue (although ran into another issue unrelated) by bundling in a docker container because we need the gems to be for Linux.
Created a new Dockerfile and called it Dockerfile.bundle
FROM ruby:3.2-bullseye

# Set working directory
WORKDIR /var/task

# Copy Gemfile and Gemfile.lock
COPY Gemfile Gemfile.lock ./

# Install dependencies
RUN bundle install --path vendor/bundle

Updated deploy script with:
echo '== Bundle For Deployment =='
docker build -t bundle-container -f Dockerfile.bundle .
docker run --rm -v $(pwd):/var/task bundle-container sh -c "\
bundle config --global silence_root_warning true && \
bundle config --local deployment true && \
bundle config --local path './vendor/bundle' && \
bundle install --quiet --jobs 4"

I had no issue deploying from my Mac m1. I did have many issues deploying arm64 via automation however. I will fork the cookie cutter and send a link with a working version on Mac. Ill do this in a few days.
I could also add the automation to deploy via codebuild using GHA as a trigger if anyone is interested in that.

I could also add the automation to deploy via codebuild using GHA as a trigger if anyone is interested in that.

Yup, but be careful. I find that CI/CD is a very personal thing. One method I tried was to find something that works for the cookiecutter starter, anything, and just go with that. Then document this area is a personal choice. Make it easy to know where the Lamby rack adapter fits in, and where the rest is CI/CD boiler plate.

I dont think it should be included in the cookiecutter  but it would be nice to have an example.
Maybe if I do branches of the cookie cutter with different features. Named cloudfront , mac and codebuild ect... Then have the docs or the readme in the cookiecutter reference them as examples. This would have helped me at least ha. This is def outside of lamby and what lamby should do but judging from the issues this is a lot of peoples first go at use SAM so it should be helpful or at least spark some ideas.
Same thing with the rails example I created this after reading an issue.
https://github.com/jeremiahlukus/rails-serverless
A fresh rails app then a push to add the needed code to deploy to SAM (even though i forgot to remove the .sam files on the first push).

I dont think it should be included in the cookiecutter but it would be nice to have an example.

Agreed, but how do you get a fully working deploy setup for the soup to nuts getting started? Are you thinking leaning into documenting what is needed on your local / remote systems? I can go for that.

Named cookiecutter-cloudfront , and cookiecutter-codebuild

Yup, are those could be articles or documentation context. I still think you will be left with a CI/CD the author personally favors (which is fine) so YMMV and I encourage you to explore those. The important thing for me is a system that works too for the soup to nuts getting started demo.


Cleanup CIs

We currently have several CIs runnig with several different trigger points.
I think, running everything through GitHub Actions should be cleanest and work well.
For now I propose:

Remove CircleCI

seems to give build error anyway
@holgern would need to disable it in on their website

Remove Appveyor

takes forever to build
I see no advantage over Actions

Only one thing I'm not sure about: Both Actions and AppVeyor should use VS2019 to build on Windows. I'm not sure if they differ here and we get a greater variance of build chains that we cover.
Additionally:

Is tox actually used? Or can we also remove it? @holgern
I'd like to include a workflow that automatically triggers on making a release, creates wheels for all platforms and uploads them to PiPy, what do you think?

I disabled CircleCI and agree that we do not need that.

Visual Studio 2019 is used by appveyer and github actions.
we can change the github action os to windows-2019 in order to garantee that VS2019 is used.
https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md
I think we can disable also AppVeyoer.
tox was used by travis, so I think it can also be removed.


DUPLO-16209 TF S3 bucket resource: duplo_lifecycle_owner':'duplo tag is not getting added to S3

Overview
Added support to add duplo_lifecycle_owner to duplocloud_s3_bucket resource
Summary of changes
This PR does the following:

Added duplo_lifecycle_owner attribute to schema
Added attribute ResourceTags to request body
Updated docs

Testing performed

[ ] Using unit tests
[ ] Manually, on my local system
[✓ ] Manually, on a remote test system

Describe any breaking changes

...

Task linked: DUPLO-16209 (develop) TF S3 bucket resource: duplo_lifecycle_owner':'duplo tag is not getting added to S3


Intermittent failures due to memleaks detected in threads_test in sanitized builds

The recent addition of concurrent provider loading in the threads_test reveals new intermittent failures in sanitized builds. There are memleaks being detected.
The problem was most probably already there in the code just the new test case is revealing it.
Shane had this comment:
@mattcaswell or @paulidale see the Sanitizer failure here? (I had this in my recent PR also)
I think test_threads was recently updated - I assume this is finding a race condition now?
This particular line in fipsprov.c indicates that something pretty bad is going on..
/* TODO(3.0): Tests will hang if this is removed */
(void)RAND_get0_public(libctx);

The issue for the TODO in fipsprov.c is #14364

Weirdly, it's not a thread sanitiser issue.

Coverity recently reported several issues with test/threadstest.c - maybe they are related.

I also had a closer look at this, what I found out:
I could reproduce the error on my local machine with the test test_multi_load it config was run with parameter enable-asan.

I'm not sure this is really related, I am mainly hit by the failing error of 90-test_memleak.
To investigate, I quickly set up an Ubuntu 20.04 environment and I can reproduce the behavior there. I am pretty sure this is related to changes in the environment. When I can valgrind test/memleaktest I get no error (All heap blocks were freed -- no leaks are possible) what is certainly incorrect since this is leaking reliably. Additionally, I noticed following note:
ASan runtime does not come first in initial library list; you should either link runtime to your application or manually preload it with LD_PRELOAD.
I did not succeed getting this running, neither by setting LD_PRELOAD nor by modifying the Makefile manually. I case I can make some tests, feel free to contact me.

Failing 90-test_memleak is a different issue and we do not see it in the CI. Please open a new issue with details - configure options and log of the memleak test failure.

Ah, that failure is appearing on Ubuntu 20.04 runners but not on 18.04 and the openssl project CI is still on 18.04. I'll investigate.

Ah, that failure is appearing on Ubuntu 20.04 runners but not on 18.04 and the openssl project CI is still on 18.04. I'll investigate.

On a branch on my fork I duplicated the non-caching to use 18.04 and 20.04 specifically. Here is a link to one of the results: https://github.com/arminfuerst/openssl/actions/runs/644269314
There is already some debug output. Shall I still create a new issue with additional details? I didn't have the time yet, I guess I will only find enough time this evening.

Fixed by merging PR #14497

I saw there is already an issue (#14337), I'll continue there. I just confused the numbers (14337 / 14437 - that's why I started in this issue in the beginning...)


add instance queue

Codecov Report

Merging #61 (2ce573b) into schubert/reorganize-amqp-invoker-PD-612 (413a4d6) will decrease coverage by 1.30%.
The diff coverage is 33.33%.

@@                             Coverage Diff                             @@
##           schubert/reorganize-amqp-invoker-PD-612      #61      +/-   ##
===========================================================================
- Coverage                                    68.46%   67.15%   -1.31%
===========================================================================
  Files                                           25       25
  Lines                                         1040     1029      -11
===========================================================================
- Hits                                           712      691      -21
- Misses                                         328      338      +10

Impacted Files
Coverage Δ

ergo/amqp_invoker.py
31.18% <18.18%> (-2.16%)
:arrow_down:

ergo/util.py
93.87% <75.00%> (-3.91%)
:arrow_down:

test/integration/amqp/test_amqp.py
78.94% <0.00%> (-2.31%)
:arrow_down:

test/integration/amqp/test_scope.py
73.77% <0.00%> (-1.62%)
:arrow_down:

ergo/message.py
60.00% <0.00%> (-1.12%)
:arrow_down:

ergo/config.py
57.14% <0.00%> (-0.86%)
:arrow_down:

test/integration/utils.py
94.44% <0.00%> (-0.41%)
:arrow_down:

test/integration/amqp/utils.py
93.47% <0.00%> (-0.05%)
:arrow_down:

test/integration/test_http.py
98.24% <0.00%> (-0.04%)
:arrow_down:

... and 2 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 413a4d6...2ce573b. Read the comment docs.


Fix/Update package-lock for new ws version

This version bump fixes a vulnerability in the ws package. See https://github.com/websockets/ws/releases/tag/7.5.10.


[HOTFIX] fix cloudinary url

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 2 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.8%) to 94.231%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/cloudinary/cloudinary.ts
0
2
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-1.8%

Covered Lines:
45

Relevant Lines:
48

💛  - Coveralls


Fix argspec schema: support version_added, and lists of strings for author and description

The current argspec schema has some bugs:

It doens't support version_added;
It doesn't allow list of strings for author and description.

@felixfontein Do not forget to add test examples for these. Adding the files at right position is enough to make them tests.

The JSON parser used to actually parse the tests in ansible-lint seems to be very forgiving, I had multiple cases of broken JSON (I already noticed and fixed some before the first commit) and it didn't complain :)

Hmm, that's ... not helpful:

Error: items value must be ["object","array","boolean"]

Is it really impossible to model something like 'array of strings' with JSON schemas? Or does it require some more complicated solution?

I can help fixing it once we identify what we need to support. Just add the test files negative or positive and I will push the required schema update to make it pass.
You should note that schema errors can be very confusing, far from being strait.

I think I figured it out, it needs "items": {"type": "string"} instead of "items": "string"...

... and CI passed :)

(I eventually found https://cswr.github.io/JsonSchema/spec/arrays/#array-schemas, that was more helpful than all SO posts and other things on the internet I found before that...)

@ssbarnea thanks for reviewing and merging!


Automate our release process

When a new commit lands in master, a new patch release is pushed to npm. There are a few manual steps after this that should be automated:

Update and deploy app.quicktype.io
Update and deploy quicktype-xcode
Update and deploy quicktype-vscode

I'd also like to consider a change to how we use semantic versioning:

Patch releases are always safe to upgrade
Minor releases can introduce breaking changes to output
Major releases break the API

Oh, also, we need to generate a PR to update quicktype's Homebrew formula.


clarify ops faq regarding docs strings

Description
This PR clarifies how to document operators.
In response to https://github.com/apache/incubator-mxnet/pull/13463 where an issue with the doc strings is fixed.
Keeping most of the examples on the wiki since it's easier to keep that updated:
https://cwiki.apache.org/confluence/display/MXNET/Documentation+Guide

@mxnet-label-bot add [Doc, pr-awaiting-review]


Question: How to allow uses who are locked out of their accounts to reset their passwords?

Hey, thanks for contributing to Koel! To save time for both of us, please make sure these checkboxes are checked before submitting the issue:

[x] You have read and followed closely the Wiki, Upgrade Guide, as well as Troubleshooting
[x] The issue has not been reported before
[x] This is not a "how to install on Windows" or "why is my npm messed up" question
[x] You're a cool person

All checked? Now also make sure your issue

[x] Is associated with a version. Or better yet, a commit.
[x] Is as detailed as possible (ahem... OS, browser, steps to reproduce, maybe?)
[x] Includes the error output if it's a bug/error report ("Whoops!" is not very helpful, you know)
[x] Is in English, 因为我不说中文。

On version 3.7.2:
Is there a way to give users the ability to reset their passwords if they lost them? It seems like there is a built in capability to do this (Looking at koel/config/auth.php), but there does not seem to be a way for the user to access this from the main login screen. Am I just missing something obvious?

Admin can reset user passwords.


By using nn.BCEWithLogitsLoss() i got:  'aten::clamp_min.out' is not currently supported on the ocl backend.

UserWarning: The operator 'aten::clamp_min.out' is not currently supported on the ocl backend. Please open an issue at for requesting support https://github.com/artyom-beilis/pytorch_dlprim/issues (Triggered internally at /home/insdf/Ksdfsd/programming/ZenDnn/pytorch_dlprim/src/tensor_ops.cpp:311.)
return torch.binary_cross_entropy_with_logits(input, target, weight, pos_weight, reduction_enum)

If you write documentation on how to implement new functions, then maybe I can try to fix it myself.
But I'm afraid that it will take me 1-3 months just to understand your code without any hints.

Actually this one is trivial to implement: Look for operator in ATen/RegistrationDeclarations.h
Tensor & clamp_min_out(const Tensor & self, const Scalar & min, Tensor & out); // {"schema": "aten::clamp_min.out(Tensor self, Scalar min, *, Tensor(a!) out) -> Tensor(a!)", "dispatch": "True", "default": "False"}

And look at src/pointwise_ops.cpp function clamp_out it is really trivial one. Strange it does not call  clamp_out


Update README

Closes #29
Also removed the TODO section since implementing a stats interface seems a bit beyond this tool's minimalist scope.

Codecov Report

Merging #30 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #30   +/-   ##
=======================================
  Coverage   64.65%   64.65%
=======================================
  Files           5        5
  Lines         365      365
=======================================
  Hits          236      236
  Misses         90       90
  Partials       39       39

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 f325372...29eb9b5. Read the comment docs.


fix(changelog): correct year for 1.8.4 release

Closes #
Describe your proposed changes here.

[x] Signed the InfluxData CLA
(if necessary)
[ ] Tests pass (no build errors)
[ ] Rebased/mergeable

thank you, @oori