Update Ginkgo to the new containers status.

This updates the containers usage in our main repository due to some changes made while developing the automatic container building system which is available there for project members: https://gitlab.com/ginkgo-project/ginkgo-containers
Exemple of automatic build pipeline: https://gitlab.com/ginkgo-project/ginkgo-containers/pipelines/133883673
I welcome any feedback on either this PR or the containers project. Now is a good time to make changes.
Summary of this PR's changes

Intel support has been made clear in container names
A repository stores all the containers and more, so remove them from Ginkgo
itself.
Intel 2017 is already in CUDA 9.2 image, so do not use it in 9.1.
Image names are fixed for new llvm scheme from 7 onward, there is no ".0"
The old nocuda with gnu 8 image is useless now that we have proper tags for
requesting an Intel capable image (on the CUDA machine).

Everything is now working. There were some pretty weird unforeseen issues that are now fixed:

Intel 19 and C++17 create a linking error when using gflags. Maybe Intel uses a high standard such as C++17 by default? Using the C++11 standard fixes the issue. It was basically this issue: https://software.intel.com/en-us/forums/intel-c-compiler/topic/810447, but on gflags linkage after compiling it without explicitly setting C++11 as standard.
For some reason, the previous way of handling the CUDA flags (host compilers and architecture) now created an issue. One character (the first of the -DCMAKE_CUDA_HOST_COMPILER argument value, in fact) was weirdly disappearing from the CMake command line.
@yhmtsai's fix for HIP is also required and has been integrated to this PR.

As this PR is already related to CI and Build, you can also probably disable the failing Windows builds (due to the symbol limits) and add something to INSTALL.md/README.md ?

It would be nice if we could add a protection step before deploying in gitlab.
If it would be possible, deploying after a sucessfull PR (on the gitlab side) would be better because at least another person would read over it. That way, it is less likely that we override our images on the CI with images that do not work or fail the CI jobs.

I think that would be possible, here is what I think would make sense:

In the branch/PR, build and do preliminary tests of the containers.
People review the branch/PR for acceptance
When the branch is accepted and merged, the deploy step of the containers is ran (no rebuilding or retesting happens).

Another issue is concerning the tests. There is already a lot of them, all put together I'm fairly certain they cover most of Ginkgo's requirements. I would consider these tests unit tests in the sense that they check a lot of the single units present in the containers (documentation build, cmake, networking, ...). Should we add new tests? Does it make sense to add a test which tries to build and/or run Ginkgo (though that could a bit complex to write that should be possible, also one issue is to not add Ginkgo issues into the container builds). In general, that's going in the direction of integration testing for containers.

@pratikvn I think it would be better if someone with the issue can try it. I can change it but I cannot make sure it works properly.
Also, since we are discussing that windows issue, I think I would rather add -O2 flags for these two compilers for sebug/shared in our CMake rather than disable this altogether. We cannot check debug/static due to size issues. Now we cannot check debug/shared due to the export ordinal issue. That means we are losing debug altogether...

I put together a MR on gitlab with an implementation proposition for the scheme I described. Feel free to discuss it there.
https://gitlab.com/ginkgo-project/ginkgo-containers/-/merge_requests/1

I will go ahead and merge this so that our containers are fixed.


Added more information about auth methods

https://github.com/MicrosoftDocs/office-docs-powershell/pull/6485

Docs Build status updates of commit ddaf316:
:clock10: Full build: the average full build time is 17 min(s) 32 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit ddaf316:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Enable-OutlookAnywhere.md
:white_check_mark:Succeeded

exchange/exchange-ps/exchange/New-MapiVirtualDirectory.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 7e554d2:
:clock10: Full build: the average full build time is 17 min(s) 32 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 7e554d2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Enable-OutlookAnywhere.md
:white_check_mark:Succeeded

exchange/exchange-ps/exchange/New-MapiVirtualDirectory.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Add new available regions for Aurora Serverless

I bumped into a missing availability region while playing with Aurora Serverless and AppSync.
I was trying the amplify api add-graphql-datasource command in the CLI.
According to this blog, the necessary Data API feature has only recently been added to more regions.
I only had a brief look through the codebase, but I think this is the only change necessary - hope it's a helpful first contribution :) Btw, thanks to the AppSync and Amplify team for the great work!
~
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

After a little more playing around with this CLI, this change is not ready to merge live because actually selecting any region other than us-east-1 returns exactly the same error as reported in issue #1403.
The fix for that issue, or reason why it is now closed is very ambiguous. From first glance, it looks like the library dependency aws-sdk might be at fault for the newly supported Data API regions...

After a little more playing around with this CLI, this change is not ready to merge live because actually selecting any region other than us-east-1 returns exactly the same error as reported in issue #1403.
The fix for that issue, or reason why it is now closed is very ambiguous. From first glance, it looks like the library dependency aws-sdk might be at fault for the newly supported Data API regions...

Is ExecuteStatement still not available in aws-sdk? It is available in documentation: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/RDSDataService.html#executeStatement-property

It should be available because you can find this from the changelog https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md#24660.

The RDS Data API is generally available for the MySQL-compatible edition of Amazon Aurora Serverless in the US East (N. Virginia and Ohio), US West (Oregon), EU (Ireland), and Asia Pacific (Tokyo) regions. This service enables you to easily access Aurora Serverless clusters with web services-based applications including AWS Lambda and AWS AppSync. The new APIs included in this SDK release are ExecuteStatement, BatchExecuteStatement, BeginTransaction, CommitTransaction, and RollbackTransaction. The ExecuteSql API is deprecated; instead use ExecuteStatement which provides additional functionality including transaction support.

So this pull request can be finally merged? I really need RDS on eu-west-1, but I afraid that patching file myself may lead to some unpredictable results.

@ashwindevendran is this already implemented in amplify-cli?


[UI] Specify entrypoint when starting a container

I am using Shippable to automate the process of building my application and dockerising it. The resulting dockerfile gets pushed to dockerhub upon a successful build, all well and good.
This issue: https://github.com/Shippable/support/issues/981
details the reasons why I then have to specify an entrypoint when starting my docker image. There is no option in the UI, as far as I can see, to specify this. Is there something I am missing? Or is this a feature request? If so any idea how long it might take?
Thanks

endpoint is in our app so it would just be adding a text field on the form.  @ibuildthecloud is there a reason we're not showing it today?

No reason that it's not exposed.  We should add it to the UI

great, any idea how long it might take to get that pushed through to a release?

alternatively, since you say it's already in the API, could you provide a sample for posting a new container to the API? I notice the documentation link is marked as future.

I should be able to add this tonight so it makes it into this week's beta release...
But to use the API:

Click on the API endpoint on that screen, which will bring you into the root of the API. [1]
Click on the "containers": ".../v1/containers" link
Click "+ Create" in the upper-right
You'll want at least a

name
networkIds (Managed)
imageUuid ("docker:blah")
And probably a requestedHostId
entryPoint is towards the bottom

[1]:  If you have access control on, you'll need to create an API key and copy/paste it into the Basic auth prompt.

Added in rancherio/ui#113

v0.15.0
Verified fixed in UI and that data is being passed in Post


Issue: Request: Need Help with CustomAgentExecutor for Accessing Dynamically Created Prompts

Issue you'd like to raise.
I am currently piecing together some of the tutorials on the langchain documentation page to use a CustomOutputParser and a CustomPrompt Template similar to the ZeroShotReact Template.
While parsing the actions, I have a scenario where, the model returns Action as None & Action Input as None. In that case, I would like access to the dynamically created prompt with in the CustomOutputParser to call another LLM and return the action as call to another LLM to complete the action.
Current Approach:
# Set up a prompt template
class CustomPromptTemplatePirate(StringPromptTemplate):
    # The template to use
    template: str
    # The list of tools available
    tools: List[Tool]

    def format(self, **kwargs) -> str:
        # Get the intermediate steps (AgentAction, Observation tuples)
        # Format them in a particular way
        intermediate_steps = kwargs.pop("intermediate_steps")
        thoughts = ""
        for action, observation in intermediate_steps:
            thoughts += action.log
            thoughts += f"\nObservation: {observation}\nThought: "
        # Set the agent_scratchpad variable to that value
        kwargs["agent_scratchpad"] = thoughts
        # Create a tools variable from the list of tools provided
        kwargs["tools"] = "\n".join([f"{tool.name}: {tool.description}" for tool in self.tools])
        # Create a list of tool names for the tools provided
        kwargs["tool_names"] = ", ".join([tool.name for tool in self.tools])
        return self.template.format(**kwargs)

class CustomOutputParserPirate(AgentOutputParser):

    def parse(self, llm_output: str) -> Union[AgentAction, AgentFinish]:
        # Check if agent should finish
        if "Final Answer:" in llm_output:
            return AgentFinish(
                # Return values is generally always a dictionary with a single `output` key
                # It is not recommended to try anything else at the moment :)
                return_values={"output": llm_output.split("Final Answer:")[-1].strip()},
                log=llm_output,
            )
        # Parse out the action and action input
        regex = r"Action\s*\d*\s*:(.*?)\nAction\s*\d*\s*Input\s*\d*\s*:[\s]*(.*)"
        match = re.search(regex, llm_output, re.DOTALL)
        if not match:
            raise OutputParserException(f"Could not parse LLM output: `{llm_output}`")
        action = match.group(1).strip()
        action_input = match.group(2)
        # Return the action and action input
        return AgentAction(tool=action, tool_input=action_input.strip(" ").strip('"'), log=llm_output)

# Set up the base template
template = """Complete the objective as best you can. You have access to the following tools:

{tools}

Use the following format:

Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question

These were previous tasks you completed:

Begin!

Question: {input}
{agent_scratchpad}"""

search = SerpAPIWrapper()
tools= [Tool(
    name="Search",
    func=search.run,
    description="useful for when you need to answer questions about current events",
)]
prompt = CustomPromptTemplatePirate(
    template=template,
    tools=tools,
    # This omits the `agent_scratchpad`, `tools`, and `tool_names` variables because those are generated dynamically
    # This includes the `intermediate_steps` variable because that is needed
    input_variables=["input", "intermediate_steps"]
)

output_parser = CustomOutputParserPirate()
# LLM chain consisting of the LLM and a prompt
llm_chain = LLMChain(llm=llm, prompt=prompt)

tool_names = [tool.name for tool in tools]
agent = LLMSingleActionAgent(
    llm_chain=llm_chain,
    output_parser=output_parser,
    stop=["\nObservation:"],
    allowed_tools=tool_names
)
agent_executor = AgentExecutor.from_agent_and_tools(agent=agent, tools=tools, verbose=True)
agent_executor.run("How many people live in canada as of 2023?")

Challenges Faced:
I am unable to figure out how to access the callback or any other similar approach to use the complete Prompt/User Input with in the context of the CustomOutputParser
Desired Outcome:
 def parse(self, llm_output: str, prompt:start) -> Union[AgentAction, AgentFinish]:
        # Check if agent should finish
        .....
		if  not 'Action' & not  'Action Input' :
			call  AgentAction with another llm fine_tuned defined as tool with the user question as input ex: Write a summary on  Canada. I need a way to access the user question here.

I would greatly appreciate any advice, documentation, or examples that could assist me in accomplishing this task. Thank you very much for your time and support.
Suggestion:
No response

@dosu-bot Cannot really use parse function the way you suggested as the method doesn't seem to have access to prompt_value at run, time. I would need a way to pass it to the CustomOutput parser class, on what callbacks to use and how.
class CustomOutputParser(AgentOutputParser):
    def parse(self, llm_output: str, prompt_value: PromptValue) -> Union[AgentAction, AgentFinish]:
        user_question = prompt_value.to_string().split("Question: ")[-1].split("\n")[0]
        print(user_question)
        # Check if agent should finish
        if "Final Answer:" in llm_output:
            # print("******")
            # print(callback_value)
            return AgentFinish(
                # Return values is generally always a dictionary with a single `output` key
                # It is not recommended to try anything else at the moment :)
                return_values={"output": llm_output.split("Final Answer:")[-1].strip()},
                log=llm_output,
            )
        # Parse out the action and action input
        print(f"llm_output::::: {llm_output}")
        regex = r"Action\s*\d*\s*:(.*?)\nAction\s*\d*\s*Input\s*\d*\s*:[\s]*(.*)"
        match = re.search(regex, llm_output, re.DOTALL)
        if not match:
            raise ValueError(f"Could not parse LLM output: `{llm_output}`")
        action = match.group(1).strip()
        action_input = match.group(2)
        # Return the action and action input
        return AgentAction(
            tool=action, tool_input=action_input.strip(" ").strip('"'), log=llm_output
        )```

TypeError: parse() missing 1 required positional argument: 'prompt_value'


Typo fix in NFS driver README

Fixed typos on line 7 and 14.

Thank you for your pull request. Before we can look at your contribution, we need to ensure all contributors are covered by a Contributor License Agreement.
After the following items are addressed, please respond with a new comment here, and the automated system will re-verify.

User @mathu97 isn't covered by a CLA. They will need to complete the form at https://identity.linuxfoundation.org/projects/cncf

Regards,
CLA GitHub bot

@linuxfoundation completed CNCF form.

lgtm

/check-cla


"Drăgolești" is listed in the drop-down menu

Description:
"Drăgolești" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Drăgolești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Drăgolești, Argeș (Cotmeana)".


Setting releases to create packages in pypi.org so we can productioni…

…se the code.

This change is

Codecov Report

Merging #6 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop       #6   +/-   ##
========================================
  Coverage    90.62%   90.62%
========================================
  Files            9        9
  Lines          256      256
========================================
  Hits           232      232
  Misses          24       24

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 34761ea...d1c2906. Read the comment docs.


PlatformException(AudioWaveforms, Failed to prepare player, null, null)

Hey, when I try to load an audio file, I get the following exception in Xcode:
         MP3AudioFile.cpp:1526   Problem scanning for packets
         MP3AudioFile.cpp:1065   MPEGAudioFile::OpenFromDataSource failed
      AudioFileObject.cpp:105    OpenFromDataSource failed
       AudioFileObject.cpp:80    Open failed
          ExtAudioFile.cpp:211   about to throw 'dta?': open audio file
          AVAEInternal.h:109   [AVAudioFile.mm:135:AVAudioFileImpl: (ExtAudioFileOpenURL((CFURLRef)fileURL, &_extAudioFile)): error<PHONE_NUMBER>
           ```

In Flutter itself I get `PlatformException(AudioWaveforms, Failed to prepare player, null, null)`

The issue happens when I try to extract the waveform, but setting it in the `initializePlacer` to false does not help.

I tried several mp3`s, does someone have one that works?

I also facing this issue @DevarshRanpara can help me out ?

Funny enough, on Android it does work. Only iOS (15) is exploding.

Hello @appinteractive
Can you please share your implementation code and plugin version (from pubspec.lock file).
We will look into this ASAP.

@DevarshRanpara this is my pubspec.lock file
audio_waveforms:
dependency: "direct main"
description:
name: audio_waveforms
sha256: f2f81e256c5c03b64e2861e0323a77e1b6790c256c73393b671214c9846260fc
url: "https://pub.dev"
source: hosted
version: "1.0.4"
==> Code
  void _initialiseRecordControllers() {
recorderController = RecorderController()
  ..androidEncoder = AndroidEncoder.aac
  ..androidOutputFormat = AndroidOutputFormat.ogg
  ..iosEncoder = IosEncoder.kAudioFormatMPEG4AAC
  ..sampleRate = 44100;
maxDuration = const Duration(seconds: 10);
_initialisePlayerController();

}
For record =>  await recorderController.record();
For stop record =>  audioPath = await recorderController.stop();

It works now
My findings so far are:

I had no luck with the docs, could not get it running
using paths from the assets folder does not work, you have to write the files to an app dir (was not obvious to me)
I had to copy the whole pub.dev example and get the chat_bubble from the examples folder to get it working
now I need to pull out the parts that I need

Thanks for your quick response @DevarshRanpara. I think the docs are just quite incomplete. Also the file in the example folder does import import 'package:audio_waveforms_example/chat_bubble.dart'; which does not exist when you try to get it working in the first place as I was trying to import it.

The same problem. I've used example code for voice player widget with  wave.
How can we fix this problem.

The same problem. I've used example code for voice player widget with  wave.
How can we fix this problem.

How do you load the audio file? It needs to be on the device before being able to generate.
For me also using files on the assets directory did not work. It seems only files in the app data or temp directory work.
For files on the assets folder you could pre-compile the values as it's more more performant any way.
@DevarshRanpara maybe that should be mentioned in the docs!?

@appinteractive
I have the following code:
`
import 'package:flutter/material.dart';
// Begin custom widget code
// DO NOT REMOVE OR MODIFY THE CODE ABOVE!
// Set your widget name, define your parameter, and then add the
// boilerplate code using the green button on the right!
import 'dart:io';
import 'dart:async'
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:audio_waveforms/audio_waveforms.dart' as audio_waveforms;
import 'package:http/http.dart' as http;
class VoiceAudioLoaderWithPlayer extends StatefulWidget {
const VoiceAudioLoaderWithPlayer({
Key? key,
this.width,
this.height,
required this.sourceUrl,
required this.errorString,
this.isCurrentUser = false,
}) : super(key: key);
final String sourceUrl;
final String errorString;
final bool isCurrentUser;
final double? width;
final double? height;
@override
State createState() =>
_VoiceAudioLoaderWithPlayer();
}
class _VoiceAudioLoaderWithPlayer extends State {
String? _audioFilePath;
Future _loadAudioFileByUrl(String url) async {
try {
// final DefaultCacheManager cacheManager = DefaultCacheManager();
final fetchedFile = await DefaultCacheManager().getSingleFile(url);
// final fetchedFile = _downloadFile(url, getFileName(url));
// final fetchedFile = await cacheManager.downloadFile(url);
  debugPrint('fetchedFile: ${fetchedFile}');
  // cacheManager.dispose();

  return fetchedFile;
} catch (e) {
  debugPrint('_loadAudioFileByUrl - e: $e');

  rethrow;
}

}
Future _loadPlayer() async {
try {
if (_audioFilePath != null) {
return;
}
final audioFile = await _loadAudioFileByUrl(widget.sourceUrl);
_audioFilePath = audioFile.path;
} catch (e) {
debugPrint('_loadPlayer - e: $e');
rethrow;
}
}
@override
void dispose() {
debugPrint('VoiceAudioLoaderWithPlayer - dispose: $_audioFilePath');
super.dispose();
}
late final double width;
late final double height;
// if didnt do it, component will bebuild multiple times
late final Future loadPlayerFuture;
@override
void initState() {
width = widget.width ?? 140;
height = widget.height ?? 40;
loadPlayerFuture = _loadPlayer();

super.initState();

}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: loadPlayerFuture,
builder: (
BuildContext context,
AsyncSnapshot snapshot,
) {
if (snapshot.hasError) {
return VoiceAudioError(errorString: widget.errorString);
}
    if (snapshot.connectionState == ConnectionState.done) {
      return SizedBox(
        height: height,
        width: width,
        child: Row(
          children: [
            AudioWaveformPlayer(
              key: ValueKey(_audioFilePath),
              path: _audioFilePath!,
              isCurrentUser: widget.isCurrentUser,
              waveWidth: width - 58,
              waveHeight: height! - 22.0,
            ),
          ],
        ),
      );
    } else if (snapshot.connectionState == ConnectionState.waiting) {
      return Row(
        children: [
          Container(
              height: height,
              width: width,
              decoration: BoxDecoration(
                border: widget.isCurrentUser
                    ? Border.all(
                        color: Colors.grey.shade300,
                        width: 1.0,
                      )
                    : null,
                borderRadius: BorderRadius.only(
                  topLeft: Radius.zero,
                  topRight: Radius.circular(16),
                  bottomLeft: Radius.circular(16),
                  bottomRight: Radius.circular(16),
                ),
              ),
              child: Padding(
                padding: const EdgeInsets.symmetric(horizontal: 8.0),
                child: Row(
                  children: [
                    CustomLoaderSpinner(
                      size: 28,
                      color: Colors.grey,
                    ),
                  ],
                ),
              )),
        ],
      );
    } else {
      debugPrint('snapshot.connectionState: ${snapshot.connectionState}');
      return SizedBox.shrink();
    }
  },
);

}
}
class VoiceAudioError extends StatelessWidget {
const VoiceAudioError({
super.key,
required this.errorString,
this.color,
this.textColor,
});
final String errorString;
final Color? color;
final Color? textColor;
@override
Widget build(BuildContext context) {
return Container(
width: double.maxFinite,
height: 50,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: color ?? Colors.grey.shade100,
),
child: Center(
child: Text(
errorString,
style: TextStyle(
color: textColor ?? Colors.black,
fontSize: 16,
fontWeight: FontWeight.w600),
),
),
);
}
}
//
//
// AudioWaveformPlayer
//
//
const _kIconPlay = Icon(
Icons.play_arrow_rounded,
size: 26.0,
color: Colors.white,
);
const _kIconPause = Icon(
Icons.pause_rounded,
size: 26.0,
color: Colors.white,
);
class AudioWaveformPlayer extends StatefulWidget {
const AudioWaveformPlayer({
Key? key,
required this.path,
this.isCurrentUser = false,
this.playIcon,
this.pauseIcon,
this.fixedWaveColor,
this.liveWaveColor,
this.waveWidth = 140,
this.waveHeight = 34,
}) : super(key: key);
final String path;
final bool isCurrentUser;
final Icon? playIcon;
final Icon? pauseIcon;
final Color? fixedWaveColor;
final Color? liveWaveColor;
final double waveWidth;
final double waveHeight;
@override
State createState() => _AudioWaveformPlayerState();
}
class _AudioWaveformPlayerState extends State {
late audio_waveforms.PlayerController _playerController;
late StreamSubscription<audio_waveforms.PlayerState> _playerStateSubscription;
// bool loading = false;
Duration? _duration;
late Icon _icon;
@override
void initState() {
_icon = widget.playIcon ?? _kIconPlay;
_duration = Duration.zero;
super.initState();
_playerController = audio_waveforms.PlayerController();

_preparePlayer();
_playerStateSubscription =
    _playerController.onPlayerStateChanged.listen((_) {
  setState(() {});
});

}
statusChange(audio_waveforms.PlayerController playerController) async {
if (playerController.playerState ==
audio_waveforms.PlayerState.initialized) {
playerController.startPlayer(
forceRefresh: true, finishMode: audio_waveforms.FinishMode.pause);
  _icon = widget.pauseIcon ?? _kIconPause;

}

if (playerController.playerState == audio_waveforms.PlayerState.playing) {
  playerController.pausePlayer();

  _icon = widget.playIcon ?? _kIconPlay;

}

if (playerController.playerState == audio_waveforms.PlayerState.paused) {
  playerController.startPlayer(
      forceRefresh: true, finishMode: audio_waveforms.FinishMode.pause);

  _icon = widget.pauseIcon ?? _kIconPause;

}

if (playerController.playerState == audio_waveforms.PlayerState.stopped) {
  playerController.startPlayer(
      forceRefresh: true, finishMode: audio_waveforms.FinishMode.pause);

  _icon = widget.pauseIcon ?? _kIconPause;

}

// final playerStateSubscription =
await playerController.onPlayerStateChanged.listen((event) async {
  if (event == audio_waveforms.PlayerState.paused) {

    _icon = widget.playIcon ?? _kIconPlay;

  }
});

}
void _preparePlayer() async {
final samples = const audio_waveforms.PlayerWaveStyle()
.getSamplesForWidth(widget.waveWidth);
_playerController.preparePlayer(
path: widget.path,
noOfSamples: samples,
shouldExtractWaveform: true,
);
// todo: get duration
// final durationInMiliSeconds = await _playerController.getDuration();
// final _duration = Duration(milliseconds: durationInMiliSeconds);

setState(() {

});,

}
// _initPlayer() async {
//   playerController = audio_waveforms.PlayerController();
String _formatDuration(Duration duration) {
String minutes =
duration.inMinutes.remainder(60).toString().padLeft(2, '0');
String seconds =
duration.inSeconds.remainder(60).toString().padLeft(2, '0');
return '$minutes:$seconds';
}
Future<Duration?> _getMaxAudioDuration(String filePath) async {
try {
  final durationInMiliSeconds = await _playerController.getDuration();
  final duration = Duration(milliseconds: durationInMiliSeconds);
  return duration;
} catch (e) {
  debugPrint('_getMaxAudioDuration - e: $e');
  return null;
}

}
@override
void dispose() {
_playerStateSubscription.cancel();
_playerController.stopPlayer();
_playerController.dispose();
super.dispose();

}
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 6, vertical: 2),
decoration: BoxDecoration(
border: widget.isCurrentUser
? Border.all(
color: widget.fixedWaveColor ?? Colors.grey.shade300,
width: 1.0,
)
: null,
borderRadius: BorderRadius.only(
topLeft: Radius.zero,
topRight: Radius.circular(16),
bottomLeft: Radius.circular(16),
bottomRight: Radius.circular(16),
),
),
child: Column(
children: [
Row(
mainAxisSize: MainAxisSize.min,
children: [
Material(
type: MaterialType.transparency,
child: Ink(
decoration: BoxDecoration(
border: Border.all(color: Colors.white, width: 2.0),
shape: BoxShape.circle,
),
child: InkWell(
//This keeps the splash effect within the circle
borderRadius: BorderRadius.circular(
1000.0), //Something large to ensure a circle
onTap: () {
statusChange(_playerController);
},
child: Padding(
padding: EdgeInsets.all(2),
child: _icon,
),
),
),
),
SizedBox(width: 6),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
audio_waveforms.AudioFileWaveforms(
key: ValueKey(widget.path),
size: Size(
widget.waveWidth,
widget.waveHeight,
),
playerController: _playerController,
enableSeekGesture: true,
waveformType: audio_waveforms.WaveformType.fitWidth,
waveformData: _playerController.waveformData,
playerWaveStyle: audio_waveforms.PlayerWaveStyle(
fixedWaveColor:
widget.fixedWaveColor ?? Colors.grey.shade500,
liveWaveColor: widget.liveWaveColor ?? Colors.white,
spacing: 6,
showTop: true,
scaleFactor: 100,
scrollScale: 3,
seekLineThickness: 4,
showBottom: true,
seekLineColor: Colors.black87,
showSeekLine: true,
),
),
Padding(
padding: const EdgeInsets.only(left: 4, bottom: 4),
child: Text(
// _formatDuration(_duration ?? Duration.zero),
// todo: если проигрывается, то показывать длительность проигрывания
// todo:
// todo: если не проигрывается, то показывать длительность записи
                  _formatDuration(_duration ?? Duration.zero),
                  style: TextStyle(
                    fontSize: 10,
                    color: Colors.white,
                    letterSpacing: 1,
                    fontWeight: FontWeight.w500,
                  ),
                ),
                // todo: показывать длительность записи в стриме
                    StreamBuilder<int>(
                  stream: _playerController.onCurrentDurationChanged,
                  builder: (context, snapshot) {
                    final textStyle = TextStyle(
                      fontSize: 10,
                      color: Colors.white,
                      letterSpacing: 1,
                      fontWeight: FontWeight.w500,
                    );

                    if (snapshot.hasData) {
                      return Text(
                        _formatDuration(
                          // Duration(milliseconds: snapshot.data!)
                          //  ??
                          Duration.zero,
                        ),
                        style: textStyle,
                      );
                    } else {
                      return Text(
                        _formatDuration(
                          Duration(milliseconds: 0),
                        ),
                        style: textStyle,
                      );
                    }
                  },
                ),
              ),
            ],
          ),
        ],
      ),
    ],
  ),
);

}
}
`
It's contain two widget:

VoiceAudioLoaderWithPlayer - wrapper which loads audiofrom backend
AudioWaveformPlayer - player with wave

Current AudioWaveformPlayer has error, but i don't understand what am i wrong.

@yokawaiik I use the extract method and setting the shouldExtractWaveform.

The exception is caused by the extractWaveformData method.
Exception in terminal output
E/flutter ( 2224): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(AudioWaveforms, Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference, An error is thrown before decoding the audio file, null)
  E/flutter ( 2224): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
  E/flutter ( 2224): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:354:18)
  E/flutter ( 2224):
  E/flutter ( 2224): #2      AudioWaveformsInterface.extractWaveformData (package:audio_waveforms/src/base/audio_waveforms_interface.dart:163:9)
  E/flutter ( 2224):
  E/flutter ( 2224): #3      PlayerController.extractWaveformData (package:audio_waveforms/src/controllers/player_controller.dart:169:20)
  E/flutter ( 2224):
  E/flutter ( 2224): #4      _AudioWaveformPlayerState.init.. (package:out_and_about/custom_code/widgets/voice_audio_loader_with_player.dart:356:68)
  E/flutter ( 2224):

The error pops up in this method which calls a function from the framework
  Future<List<double>> extractWaveformData({
    required String key,
    required String path,
    required int noOfSamples,
  }) async {
    final result =
        await _methodChannel.invokeMethod(Constants.extractWaveformData, {
      Constants.playerKey: key,
      Constants.path: path,
      Constants.noOfSamples: noOfSamples,
    });
    return List<double>.from(result ?? []);
  }

Looks like I've solved my problem.
The error was caused by the fact that the files that were loaded onto the device and played through this library with extract waves were loaded incorrectly.
I used Firebasse Storage as storage and, when loading recorded audio, saved it with the specified Metadata, which I had not done before. Apparently, the file was saved to the server incorrectly this way or had incorrect meta tags. Anyway, just removed the code that added Metadata on load.
And in the end, the file was loaded normally with the code that was there and the waves were successfully extracted.
Thus my problem was solved.

@yokawaiik I agree with you. I have been trying to solve this issue since 2 weeks.
Cause of Problem
When you record and upload audio to server or Firebase its not supported properly.
Here is what I did:

I uploaded a song to my server and loaded that audio.mp3 in cached directory on my IOS device.
Used the path of cached audio file to prepare player controller

It worked. It throws exception to unsupported types or corrupted audio files.


GEODE-7707: Tab completing '--url' on 'connect' gives two default values

this PR aligns the command help and documentation with the code, there is no default value for --url parameter.
Command help will look as follows:
gfsh>connect --url

optional --url: Indicates the base URL to the Manager's HTTP service.  For example: 'http://<host>:<port>/geode-mgmt/v1'; no default value

@moleske as you wrote the ticket, could you review this PR? I think it also needs @davebarnes97 review because documentation is impacted.

The ApiCheckTestOpenJDK11 is a new job that is failing on all PRs.  Merging this is as since there's open JIRA for fixing Api Check


Lack of support for vmaCopyMemoryToAllocation

Hey!
I see vmaCopyMemoryToAllocation in ffi.rs:
    pub fn vmaCopyMemoryToAllocation(

but not used at all in lib.rs and I can't find a way to use it in my program. This might be me being new at Rust, but if not is there a reason for the lack of support, and if not would you accept a PR to have it as a method on vk_mem::Allocator?
Thanks for the excellent lib. :)

Most likely it was just never added to the library.
Meanwhile, vmaCopyMemoryToAllocation isn't super useful - you can already map memory, memcpy, then flush memory ranges. This API just does these three steps together for you.
But sure, if this bothers you, feel free to open a PR to add it back in.


ItemOnItem handling

Need support for ItemOnItem actions for things such as combining items/skills(firemaking, herblore)

Added in https://github.com/Tomm0017/rsmod/commit/8eb1f86b7f3de5f867b6e7d8ffc0b8c3bdb130a0


Setting for change color

I don't want install Yggdroot/indentLine but use only this plugin, can you add option for change color the inden line.
Thanks

That option exists.
You can set g:indent_blankline_char_highlight to any highlight group you want.


can't open project annotation what happens is Error : "Unhandled exception java.lang.ArrayIndexOutOfBoundsException." Please help me

Basic information

My operating system: x64-bit Operating system' Windows 10 x64 proceessor
My MZmine version: MZmine_Windows_Installer_3.0.21-beta

What happened

can't open project annotation what happens is Error : "Unhandled exception java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 (ImmutableCollections.java:680)." Please help me this is the first time i use mzmine for college assignment

Hello Idrpermana,
please upload the log file and an example project so we can reproduce the error. For that, it's best to save the project as a standalone project for that, so we can open it.


toBeA() returns an error saying it is not a function or cannot read property of

I'm trying to check if the result of a function is a number, and it keeps returning an error that it cannot read property toBeOf undefined. Here is the code
it('should square a numbers', ()=>{
let res = utils.square(5);
expect(res).toBe(25).toBeA('number');
});

Which version of expect are you using? v21+ is managed by jest.


[todo-mvp-loaders] multiple background tasks for single presenter

Hello, folks!
Could you please extend example with TasksPresenter when it has multiple background tasks.
For example: in current version it supports clearing completed task, what if clear should call network request? In this case, you create a separate loader? What if they should be combined into a chain?

Closing as obsolete in the context of the current architecture guide.


chore: improve ci

This PR is mainly to improve the construction scope of ci, mainly for windows and mac. And I belive most of the people who use linux are developers, most of them are more professional than me.
There are also some reasons：

There are also compatibility issues with glibc.
There are many linux distributions.
cuda construction will consume a lot of time (I also lack experience in implementing CUDA on Linux).

Of course, if someone is willing, they can continue to improve in subsequent PRs. I have no objection.

Hi, @leejet , I have completed the upgrade to ci. It's waiting to be merged. But one thing I want to explain is that this build logic contains some if judgment logic. They are ignored in this PR, so there may be some problems merged into the master will be corrected. Of course I will follow up and make changes

Have you tested it in your master branch?

Yes, I've tried this on my main branch, and with some adjustments, the build product is now being generated normally.
here is the latest release on my main branch: https://github.com/Cyberhan123/stable-diffusion.cpp/releases/tag/master-bd56734

I think it's best to include the cudart dependency for Windows in the packaged build, just like what llama.cpp did, as shown in https://github.com/ggerganov/llama.cpp/releases.

There is another issue: stable-diffusion.h is a pure C header file, so it should not include anything C++. Therefore, the declarations of sd_basename and preprocess_canny need to be removed from this file. If your project relies on these two functions, I suggest implementing them separately.

The build products of ci are dynamic libraries and cli programs. If the dynamic library does not expose the two functions sd_basename and preprocess_canny, they need to be migrated to the cli program.

I think it's best to include the cudart dependency for Windows in the packaged build, just like what llama.cpp did, as shown in https://github.com/ggerganov/llama.cpp/releases.

There's certainly nothing wrong with that, I can make adjustments

The build products of CI are dynamic libraries and CLI programs. If the dynamic library does not expose the two functions sd_basename and preprocess_canny, they need to be migrated to the CLI program.

There is indeed an issue here. I merged the latest changes from the master branch and made some adjustments.

The ci build of cuda and hip runs very slowly.  ：）Let me get up tomorrow morning and see the effect of adding cudart.

https://github.com/Cyberhan123/stable-diffusion.cpp/releases/tag/master-346416b
cudart has in release now


Domain restriction

I should be able to restrict a component to only run on a certain url / url pattern.
Need to think about how to implement this, and if there's any reliable client side way to ensure I'm being rendered from a certain domain.

Closing this as pretty sure it's not possible.

We can at least add a flag to check if we're on the same domain or not.

We can also restrict post-robot to the domain we're expecting.

Done.


AKAudioFile enhancement

Hi,
I would like to change the file created format from .caf change to .m4a format. Hope in future can add more fileExtensionFormat parameter in AKAudioFile(writeIn: .Temp, name: fileName) become AKAudioFile(writeIn: .Temp, name: fileName, ext: .m4a). It will be easy for everyone.
Regards,
Ferrick Chan

Hi!
You're welcome to add any improvement to AKaudioFile.
About file formats, you must be aware of some consequences of changing convenience  write init.
As AKaudioFile inherits from avaudiofile, you can always create any format AKaudioFile if you wish, using standard inherited inits :
public override init(forWriting fileURL: NSURL,
settings: [String : AnyObject],
commonFormat format: AVAudioCommonFormat,
interleaved: Bool) throws {
But for example, creating a m4a as you suggest means you have to set compression settings at least, and may be sample rate. But at the end you may reinvent a wheel:
Except the directory setting, you would mimic the super class init.
Then, you should probably have to rewrite aknoderecorder, and most of AKaudioFile process convert and peripherals helpers would may be need to be rewritten as well. For example, you cannot export a m4a to wav using avexport (it won't work). And recording to a wav files seems to generate bad formatted files (wav files with a wrong header)
The reason I choosed .caf instead of wav, for example, is because there's an issue with .wav files that seem to be forced to be non float when you init then using avaudiofile init.
The idea behind AKaudioFile was to keep things as simple as they can be in most audiofile uses. Just use the default way ensures that it will work, with less code.
(It is the major benefit of using AKaudioFile instead of avaudiofile)
You can record a m4a file, but it will use some cpu to encode file, so it is a better option to use pcm encoded files to avoid some cpu hog with an heavy real time process chain.
Using m4a format for playing will slow player's responsiveness.
(Because audio decompression take some significant time with longer files)
Compressed files must be converted to pcm prior to any file processing.
So even if the data is compressed on disk, there's no real benefit.
M4a is only relevant for file distribution, but not working.
So, forcing to create .caf was a deliberate option.
The process I encourage is to create and record a pcm (uncompressed)  file set to match audioKit settings. Then make any process you want, and finally export to m4a if you need.
AKaudioFile does this automatically, behind the scene, so you don't have to take care of how it is done. It's easy and efficient.
You still have the choice to pick another path, using nsurl inits.
But in very most cases, the best choice will be to use the default behavior,
It will work and avoid multiple decode encode passes.
I just wanted to explain why AKaudioFile has been implemented like this. And I must say I really enjoy coding a working recorder or a sampler with a very few code lines number. It is easy and fast.
But I may be wrong.  And may be a m4a init is really needed.
For me. the init is not a priority for improvements.
It works fine.
But for example, the way normalize or extract methods has been coded is far to be optimized as it could be. And I thought about implementing offline processing using an audioKit signal chain that would be very cool. (Aurelius gave a clue to achieve this using aktest that computes a number of samples and is not real time)
Envoyé de mon iPhone

Le 3 août 2016 à 11:01, Ferrick Chan<EMAIL_ADDRESS>a écrit :
Hi,
I would like to change the file created format from .caf change to .m4a format. Hope in future can add more fileExtensionFormat parameter in AKAudioFile(writeIn: .Temp, name: fileName) become AKAudioFile(writeIn: .Temp, name: fileName, ext: .ma4). It will be easy for everyone.
Regards,
Ferrick Chan
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Sorry, my previous mail has been sent too early (I use my iPhone :-/
To conclude,
I just wanted to thank you for your interest on AKaudioFile. My goal is to avoid any waste of time and work (but may be I'm wrong, let's debate !), and suggest some other tracks for AKaudioFile improvements.
Best !
Laurent Veliscek.
Envoyé de mon iPhone

Le 3 août 2016 à 11:01, Ferrick Chan<EMAIL_ADDRESS>a écrit :
Hi,
I would like to change the file created format from .caf change to .m4a format. Hope in future can add more fileExtensionFormat parameter in AKAudioFile(writeIn: .Temp, name: fileName) become AKAudioFile(writeIn: .Temp, name: fileName, ext: .ma4). It will be easy for everyone.
Regards,
Ferrick Chan
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Hi Laurent,
I see. Thanks to explain to me. The reason why I need to create m4a instead of caf because Android couldn't support caf format. At the moment, I must convert the format before upload to server side. It duplicated the step for me.
Between, AudioKit is the most best library for audio. I used a lot of audio library or tried written by myself. AudioKit have provided full facilities. I like the features, coding style and structure.
In future, I will try to PR to enhance AudioKit become more flexible to let the developers to achieve them goals.
Thanks.
Regards,
Ferrick Chan


Nesting of list items when there is an html element in one of them

Initial checklist

[X] I read the support docs
[X] I read the contributing guide
[X] I agree to follow the code of conduct
[X] I searched issues and couldn’t find anything (or linked relevant results below)

Affected packages and versions
6.1.0
Link to runnable example
https://codesandbox.io/s/remark-rehype-debug-forked-4hivb?file=/src/index.js
Steps to reproduce
Given the following markdown string:
- a
 b
- c

rehype produce the following AST (with the allowDangerousHtml option) (position information stripped for clarity):
{
  "type": "root",
  "children": [
    {
      "type": "element",
      "tagName": "ul",
      "properties": {},
      "children": [
        {
          "type": "text",
          "value": "\n"
        },
        {
          "type": "element",
          "tagName": "li",
          "properties": {},
          "children": [
            {
              "type": "text",
              "value": "a "
            },
            {
              "type": "raw",
              "value": "
"
            },
            {
              "type": "text",
              "value": " b"
            }
          ]
        },
        {
          "type": "text",
          "value": "\n"
        },
        {
          "type": "element",
          "tagName": "li",
          "properties": {},
          "children": [
            {
              "type": "text",
              "value": "c"
            }
          ]
        },
        {
          "type": "text",
          "value": "\n"
        }
      ]
    }
  ]
}

Running rehype-raw on it gives the following AST:
{
  "type": "root",
  "children": [
    {
      "type": "element",
      "tagName": "ul",
      "properties": {},
      "children": [
        {
          "type": "text",
          "value": "\n"
        },
        {
          "type": "element",
          "tagName": "li",
          "properties": {},
          "children": [
            {
              "type": "text",
              "value": "a  b\n"
            },
            {
              "type": "element",
              "tagName": "li",
              "properties": {},
              "children": [
                {
                  "type": "text",
                  "value": "c"
                }
              ]
            },
            {
              "type": "text",
              "value": "\n"
            },
            {
              "type": "element",
              "tagName": "table",
              "properties": {},
              "children": []
            }
          ]
        }
      ]
    }
  ]
}

As you can see, the second list item is nested under the first one
Expected behavior
I would expect the list items to all be at the same level
Actual behavior
List items level are modified
Runtime
Node v16
Package manager
npm v7
OS
macOS
Build and bundle tools
No response

I believe this behavior is expected because HTML (browsers) do the same for such input:

a
 b

c

https://astexplorer.net/#/gist/74f889d718e49de2fd8bb6db9aed60cc/d52ee3598c1e6d0cbb2fb54a7c48b59b3e6a1b71


Add support for device code authentication on browserless systems

M Hickford thanks for your great work on git credentials.
This PR adds support for device code authentication on browserless systems.
I've also extended the README.md with text taken from git-credentials-azure.

Thanks very much! Merged in 8b1b1372fb8bc10efd95b27307f3ac736b607ce7
Happy this project is useful to you


Clean HF datasets cache

Every 3h for files older than 3h
Also contrary to the delete-duckdb-index job I simply scan the mtime of the directories instead of the mtime of every single file

Codecov Report
Attention: 7 lines in your changes are missing coverage. Please review.

Comparison is base (cf4846b) 90.83% compared to head (b7b3ed1) 95.72%.
Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1881      +/-   ##
==========================================
+ Coverage   90.83%   95.72%   +4.89%
==========================================
  Files         231       14     -217
  Lines       14318      515   -13803
==========================================
- Hits        13006      493   -12513
+ Misses       1312       22    -1290

Flag
Coverage Δ

jobs_cache_maintenance
95.72% <89.23%> (-0.94%)
:arrow_down:

jobs_mongodb_migration
?

libs_libcommon
?

services_admin
?

services_api
?

services_rows
?

services_search
?

services_sse-api
?

services_worker
?

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

Files
Coverage Δ

.../cache_maintenance/src/cache_maintenance/config.py
100.00% <100.00%> (ø)

..._maintenance/tests/test_clean_hf_datasets_cache.py
100.00% <100.00%> (ø)

...e/src/cache_maintenance/clean_hf_datasets_cache.py
79.41% <79.41%> (ø)

... and 219 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I just deleted the old cache files and there is <1TB left. I think we can enable this job now :)


Accept functions for the default_{headers,url} graphiql options

The motivation here is to be able to utilize data in conn to build up the default headers and default URL for GraphQL.
Use case examples:

Generate a JSON Web Token for authentication dynamically based on the currently logged in user and append to the default headers.

Dynamically generate the correct GraphQL endpoint based on current hostname. For example, when subdomains are used for routing, the fully-qualified GraphQL endpoint depends on the current subdomain:
http://user1.example.com/graphiql -> http://user1.example.com/graphql
http://user2.example.com/graphiql -> http://user2.example.com/graphql

Thanks for considering!
Implementation Notes

I realize there is a bit of duplication in tests now that there are a handful of similar test cases. Happy to do some refactoring, but wanted to propose this with "least invasive" changes to start.
It seems to me that the function capturing approach is more flexible than a tuple because it allows for easy pattern matching by arity. I didn't spot a clean way to accomplish the same behavior using tuples to denote which function to apply. That being said, I'm relatively new to Elixir so I could be missing something key here!

Hey team, any interest in this?

Hey all, let me know if I should continue resolving merge conflicts on this branch.

Apologies, I had written a review comment and then forgot to finalize the review!

@djreimer If you'd like to give this another peek and address @benwilson512's comment and the merge issue, I think we can get this into the next RC (or the stable release planned for later this week).

Great, will do! Thanks for the bump.
Derrick Reimer
Co-founder, Drip

From: Bruce Williams<EMAIL_ADDRESS>Sent: Wednesday, October 25, 2017 2:52:39 AM
To: absinthe-graphql/absinthe_plug
Cc: Derrick Reimer; Mention
Subject: Re: [absinthe-graphql/absinthe_plug] Accept functions for the default_{headers,url} graphiql options (#92)
@djreimerhttps://github.com/djreimer If you'd like to give this another peek and address @benwilson512https://github.com/benwilson512's comment and the merge issue, I think we can get this into the next RC (or the stable release planned for later this week).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/absinthe-graphql/absinthe_plug/pull/92#issuecomment-339245716, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAU1i0ah_H-SCirQt5UAsDdsiXwwxpYzks5svujHgaJpZM4OS5Q5.

Looks like #108 covered most it! This PR now just adds similar functionality for default_url, and increases test and documentation coverage a bit.

Thank you!


Add a section pointing to real world uses of CO2js

This would help with the CO2.js story, and in the case of open source projects it would also be another reference for developers.

This would be really helpful for someone like myself, just started looking into using this package for live projects, but as someone new to it, I'm still unclear as to what the final code should be running, at the moment, I've used it with the OneByte method, but I have run my site through the PingDom speed test to get the size of my website in bytes, whereas an example on how to get live data byte size of pages calculated at build time would be amazingly helpful (if this even exists).

@JayBox325 thanks for the feedback. We'll be looking to link to any open-source code that we can as part of this. Hopefully that can help people looking to build out solutions.

Thanks, I love the project and am going to start looking into how to integrate it with my Next.js projects so I can display a real dynamic estimate of emissions based on the real built size. Keen to do this because when I deliver it with the CMS content at launch, it could be Xmb, then 2 months later after some CMS additions, it could be Ymb.
Thanks

@JayBox325 spun this up quickly over the weekend https://github.com/fershad/carbon-budget
Something that could help you get started build out what mentioned above.

Actually, just remembered that there's also this branch of https://github.com/zachleat/performance-leaderboard where I've used CO2.js to introduced carbon emissions calculations to the results.
https://github.com/fershad/performance-leaderboard/tree/add-carbon-estimate-results


Unity how to avoid keywordrecognizer auto SessionStopped after recognized

I am using this to test.
https://github.com/Azure-Samples/cognitive-services-speech-sdk/tree/master/samples/csharp/unity/keywordrecognizer
I'm experiencing a problem where there is only a short interval to continue speaking after the keyword is detected.
My ideal situation is that user ask:
HeyBot, (Wait about 0.5s ~ 1s let UI shows it's allow to ask)   How to buy items in this game?
But the "recognizer.Recognized" oftens return:
"HeyBot, 。"
The empty space allowed after keyword detected is too short.
Is there has any parameter to set to increase empty detection time or other solutions?

@JackLiangTW Possible solution on how you can control when to start speech recognition in your scenario, is to use standalone KeywordRecognizer, see https://learn.microsoft.com/en-us/dotnet/api/microsoft.cognitiveservices.speech.keywordrecognizer?view=azure-dotnet to make keyword detection and once detected, start speech recognition with SpeechRecognizer when UI is ready for that.

Closed as answered, please open a new issue if more support is needed.


Remove release rule for chore prefix (#31)

This PR removes the specific semantic-release rule we had introduced to force a release on each release configuration change. This is not needed anymore.

:tada: This PR is included in version 1.4.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ipv6 and v4 channel switching or customized

When one channel times out or fails, try to obtain it from another channel.
Or add options for users to choose.  v4 or v6

@he852100 it looks like you're working directly against the API, this is probably more appropriate for the powershellgallery repository
https://github.com/PowerShell/PowerShellGallery

This looks more intuitive and I can't see anything using install-modlue.

@he852100 can you please clarify if you are still hitting an issue? thanks!
@JustinGrote made the right suggestion here to use the PowerShellGallery


You can use ".alignedSlice()" to allocate aligned ByteBuffer instead of manual alignment

Just a tip:
    private static void testWrite(Path p) throws Exception {
        try (FileChannel fc = FileChannel.open(p, StandardOpenOption.WRITE,
             ExtendedOpenOption.DIRECT)) {
            FileStore fs = Files.getFileStore(p);
            int alignment = (int)fs.getBlockSize();
            ByteBuffer src = ByteBuffer.allocateDirect(PAGE_SIZE + alignment - 1)
                                       .alignedSlice(alignment);
            for (int j = 0; j < SIZE; j++) {
                src.put((byte)0);
            }
            src.flip();
            fc.write(src);
        }
    }

    private static void testRead(Path p) throws Exception {
        try (FileChannel fc = FileChannel.open(p, ExtendedOpenOption.DIRECT)) {
            FileStore fs = Files.getFileStore(p);
            int alignment = (int)fs.getBlockSize();
            ByteBuffer dest = ByteBuffer.allocateDirect(PAGE_SIZE + alignment - 1)
                                        .alignedSlice(alignment);
            fc.read(dest);
        }
    }

@GavinRay97, I want to support Java 8, but this method was added in Java 9.
It might not make much sense to support Java 8 and I will switch to Java 11 and use this method.
Anyway thanks:)


Android Q Camera Image Capture not working

I was recently testing the project on Android Q (API 29) emulated device and found a particular feature to be not working for no good reason.
I haven't looked much into it though, if anybody found any solution, feel free to suggest it here.

Hey, not sure if this points you in the right direction but I changed the create_image into the following. My filechooser came back and I was able to capture and insert images.
I inserted a:
public String currentPhotoPath;
And then changed it to this
private File create_image() throws IOException {
	@SuppressLint("SimpleDateFormat")
	// Create an image file name
		String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
		String imageFileName = "JPEG_" + timeStamp + "_";
		File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
		File image = File.createTempFile(
			imageFileName, 		 /* prefix */
		".jpg",       	 /* suffix */
			storageDir  	     /* directory */
	);

	// Save a file: path for use with ACTION_VIEW intents
	currentPhotoPath = image.getAbsolutePath();
	return image;
}

hope this is what you meant atleast it fixed it for myself.

Good day. When I went to targetSdkVersion 29 loading images from the camera stopped working. SOLVES it by adding the following in AndroidManifest.xml, inside the tag
<Application
...
...
android: requestLegacyExternalStorage = "true"
tools: targetApi = "q">

I'll test the suggestions. Thanks!


IMAGE PREVIEWS

What's the Problem?
So, i dont know how to word this correctly.
The application works perfectly, just it doesn't show thumbnail previews for image files.
Would this be a feature that is part of the future planning of the software?
Amazing software though.
Solution/Idea
Create image thumbnails previews that work?
Alternatives
I dont know what alternative their would be, without this feature i need to revert to other software.
Priorities

Capability
Priority

This proposal will allow developers to accomplish W
Must

This proposal will allow end users to accomplish X
Should

This proposal will allow developers to accomplish Y
Could

This proposal will allow end users to accomplish Z
Won't

Files Version
Version: <IP_ADDRESS> OS Version: 10.0.22000.318
Windows Version
Edition	Windows 11 Pro Version	21H2 Installed on	2021/09/10 OS build	22000.318 Experience	Windows Feature Experience Pack 1000.22000.318.0
Additional comment
No response

Thanks for the kind feedback. Could you post a screenshot of Files VS windows explorer showing the missing thumbnails?

Thanks for the kind feedback. Could you post a screenshot of Files VS windows explorer showing the missing thumbnails?

I'm not the original poster, but I'm also having this issue with some but not all images. Here's a screenshot where most of the thumbnails are not being displayed.

These are all perfectly valid png and jpg image files that open fine if I double-click on them. Note that the preview pane itself does work:

Once I double-click on a file and view it in the Windows Photos app, I can then refresh the folder in FIles and the thumbnail will be visible for that file.
Interestingly, the files without thumbnails also don't have thumbnails when viewed in the Photos app:

Though if I view the folder in the regular Windows File Explorer, it does show the thumbnails for all the files. It can take a few seconds for it to load all the thumbnails, but once it does, I can then also see the thumbnails in Files.
Hope this helps!

@gave92 I can reproduce this issue as well, interestingly enough, refreshing the directory usually loads the missing thumbnails.

I get many thumbnails missing as too: jpg, png and pdf.
Larger thumbnails are not generated at all.

1366737-1c799d16-69d9-433c-b5e1-986ae5b634b6.png)

Version: <IP_ADDRESS>
Windows 11, OS Version: 10.0.22000.434

This issue should be fixed in the preview version.


Update topology-aware-hints.md

Noticed a couple small typos while reading through this document.

@divya-mohan0209 thanks for the reminder. I ran this page through Grammarly and gave it a read through myself and did find another small issue. I feel at this point it should be technically correct, let me know otherwise!

Thanks!
/lgtm


ANR on Android 4.x-5.x onCreate

AppIntro Version: 4.2.0
compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId = "com.myapp"
        minSdkVersion 11
        targetSdkVersion 25
        versionCode 100
        versionName "3.1.8"
    }

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }
dependencies {
    compile project(':aFileChooser')
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:support-v4:25.1.0'
    compile 'com.android.support:design:25.1.0'
    compile 'de.mindpipe.android:android-logging-log4j:1.0.3'
    compile 'com.github.apl-devs:appintro:v4.2.0'
    compile 'log4j:log4j:1.2.17'
}

Device/Android Version: 5.x

Issue details / Repro steps / Use case background: App is reported crashing on Android 4.x-5.x, really have no clue about that. Tried downgrading Google libs from 25.3.x to 25.01.0 as shown in some SO threads but issue was not solved. I suppose it's related to Proguard optimization of Appintro lib.

Your Code:
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;

import com.github.paolorotolo.appintro.AppIntro;

public class IntroActivity extends AppIntro {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addSlide(SampleSlide.newInstance(R.layout.slide1));
        addSlide(SampleSlide.newInstance(R.layout.slide2));
        addSlide(SampleSlide.newInstance(R.layout.slide3));
        addSlide(SampleSlide.newInstance(R.layout.slide4));
        setBarColor(getColor(R.color.colorPrimary));
    }

    @Override
    public void onSkipPressed(Fragment currentFragment) {
        finish();
    }

    @Override
    public void onDonePressed(Fragment currentFragment) {
        finish();
    }

}

Stack trace / LogCat:
java.lang.NoSuchMethodError:
  at com.nbeghin.lib.myapp.IntroActivity.onCreate(IntroActivity.java:0)
  at android.app.Activity.performCreate(Activity.java:6092)
  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2595)
  at android.app.ActivityThread.access$800(ActivityThread.java:178)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470)
  at android.os.Handler.dispatchMessage(Handler.java:111)
  at android.os.Looper.loop(Looper.java:194)
  at android.app.ActivityThread.main(ActivityThread.java:5631)
  at java.lang.reflect.Method.invoke(Method.java:0)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)

Proguard
-dontwarn org.apache.log4j.**
-keepnames public class com.ianhanniballake.localstorage.LocalStorageProvider
-keepclassmembers public class com.ianhanniballake.localstorage.LocalStorageProvider {
    public static final String AUTHORITY;
}

Are you able to reproduce the issue on your device? If yes, try to build an apk without ProGuard, and tell us if it's actually causing the issue.

I'll try to run through Android 5.x emulator and reproduce the issue. I hoped this was something already known, given it's a pretty vanilla implementation of the library. Do you have any specific recommentations related to Proguard when minimizing an app that includes your library?

I confirm, AppIntro makes the app crash on 4.4. I just reproduced the issue on the emulator. Could you provide the APK for a proguard-ed version of your example app?

@nicolabeghin Let's worry about one issue at a time -- what you are seeing with the example app has already been reported.
Also, are those all of your ProGuard rules? Do you have anything for your own classes defined?
If you can clarify what you said here:

I confirm, AppIntro makes the app crash on 4.4. I just reproduced the issue on the emulator. The example APK example-release-v1.apk for AppIntro crashes too:

Is this with ProGuard enabled or disabled?

@avluis, thanks for your reply.

yes those are all of my ProGuard rules
I just used the published APK on the repository, don't know if that has Proguard enabled or not https://github.com/apl-devs/AppIntro/blob/master/example/example-release-v1.apk
I compiled the example app straight from repository (master) and run on Android 4.4 + Android 6.0 and got no button shown - this could have helped me debug the whole thing, but being unable to get the example app working (no buttons) it didn't help

@nicolabeghin ProGuard is defined but not enabled for the example project -- since you got it to run and all that.
From your logs;
I can tell that ProGuard is cleaning up way too much out of your own classes -- you may need a few additional rules.
I would give you a few more pointers but I'm currently waiting on Android Studio to finish patching in all these updates... 🤦

@nicolabeghin Here is an example of what it can take to configure ProGuard for a project. (note that this is a personal project and not related to AppIntro)
I hope this helps! Let us know if you need additional pointers~

hi @avluis thanks for the pointers, I'll surely take a look (I used proguard rules repositories for other projects of mine, extremely useful). But I don't think this will fix the issue as you already saw my app proguard rules and they don't add anything specific, so if AppIntro proguard rules do work they should work in the app too.
-dontwarn org.apache.log4j.**
-keepnames public class com.ianhanniballake.localstorage.LocalStorageProvider
-keepclassmembers public class com.ianhanniballake.localstorage.LocalStorageProvider {
    public static final String AUTHORITY;
}

@nicolabeghin You can always add -keep class com.github.paolorotolo.** {*;} to your ProGuard file to do a quick test of the library against your app -- this should keep ProGuard from doing anything to AppIntro (which would then let us know if we are missing something) -- note that the example app is running on a different package namespace, so keep that in mind if you want to try running ProGuard against that.
If you get the same behavior as before (application crashing), then you can at least eliminate the library from your troubleshooting list~

I'll surely check that tonight, I have the dump.txt generated by ProGuard and this should shed some light on the whole thing (if AppIntro classes are obfuscated it means ProGuard rules are not taken into considerations, as I see from consumer-proguard-rules.pro https://github.com/apl-devs/AppIntro/blob/master/library/consumer-proguard-rules.pro)
-keep class com.github.paolorotolo.** {*;}

I think I narrowed it down. App crashes without ProGuard enabled too, but I was able to get more info from the logcat:
java.lang.NoSuchMethodError: com.nbeghin.myapp.IntroActivity.getColor
    at com.nbeghin.lib.myapp.IntroActivity.onCreate(IntroActivity.java:22)
    at android.app.Activity.performCreate(Activity.java:5231)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
    at android.app.ActivityThread.access$800(ActivityThread.java:135)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5001)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    at dalvik.system.NativeStart.main(Native Method)

It stopped crashing changing setBarColor(getColor(R.color.colorPrimary)) to
setBarColor(ContextCompat.getColor(this, R.color.colorPrimary))
I have no clue about this. I'm trying to understand why, of course getColor is defined in android.content.Context
@ColorInt
public final int getColor(@ColorRes int id) {
    return getResources().getColor(id, getTheme());
}

Ah~ I've seen this before on prior projects.
You definitely want to make use of ContextCompat whenever possible when using the newer tools.


Custom image background for canvas.  Very simple feature, need to man…

…ually set at each recipient

Testing looks good


[Quarkus 2.6.0.Final] Remove software.amazon.awssdk:apache-client dependency override

In Quarkus 2.6.0.CR1 there's an invalid dependency declaration in quarkus-bom for the AWS apache-client.
So for now, I've worked around it by specifying the dependency in our own BOM.
When 2.6.0.Final is available, we should be able to remove it.

The workaround evoked in the previous must be here.
I guess we would need to revert only the change in poms/bom/pom.xml.

Now I see what is going on: the exclusion of commons-logging in the removed apache-client management entry makes the difference. We actually need to ban commons-logging altogether.
Using mvn quarkus:dependency-tree instead of mvn dependency:tree helped me to figure out what's going on.


[discussion] Other namespace support

There are some CloudFormation resources that do not conform to the AWS::Service::Resource pattern. According to the CloudFormation FAQ, there could be resources that look like this: Alexa::*. In fact, there's an Alexa::ASK::Skill resource, that I don't believe former would be able to stub out for you, since it expects only the second two parts of the resource type and fills in the AWS for you
My first thoughts are:

to allow defining the full resource name as a parameter (i.e. former Alexa::ASK::Skill or former AWS::S3::Bucket)
to look for each special case as the first argument (currently only alexa I believe, so former alexa ask skill would function just like former aws s3 bucket or former s3 bucket)
whatever you decide is best for user experience

I came across this issue because I would like to implement autocomplete/tab-completion for the former cli. However if there will be another way to use former, such as the above suggestions, I would like to know what that is before I begin work implementing autocomplete
So this issue is to flesh out what the user experience should be for resources that are not under the AWS::* namespace
Thoughts @flomotlik?

How about we do it with 2 or 3 arguments, so if you enter only 2 AWS is used, if you enter 3 the first one is the namespace?
Autocomplete would be amazing. Been on the list for a while but haven't had time to get around to it yet.

The current implementation supports 3 arguments, for sub properties:
former iam user loginprofile

Hmm, you're right. How about we do a two step lookup, first we see if we can find the resource with the AWS prefix and if that doesn't exist we look it up without the AWS Namespace and use the first argument as namespace? Its pretty unlikely to happen as its only so few resources.
If you have another proposal open to any other ideas.


fixing shuffle on a Set

This fixes SPARKC-496
I'd normally include a test case, but for the life of me can't figure out an efficient way to do so

signed

Added this fix into the 1.6 branch and merged it forward to master


[DEMO] replace port-forwarding with Service

Right now when we want to send request to save-demo-agent we initialize port-forwarding (and stop it on request completion) which is extremely slow. We either need to create a Service for each save-demo-agent (inside save-demo namespace using Kubernetes Client for example) or come up with an idea of creating one unified Service, probably some kind of LoadBalancer. Maybe @petertrr has an idea on this?🥺

If you already have full info about pod, as I can see here
https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pods

If you already have full info about pod, as I can see here
https://github.com/saveourtool/save-cloud/blob/28f221b4ac0831a35c213cb8c5024fb7ee64f3df/save-demo/src/main/kotlin/com/saveourtool/save/demo/utils/HttpUtils.kt#L58
Then, if you also have access to Pod IP, you can use DNS record as described at https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pods
Otherwise, yes, you can create a Service that will have matching selectors with save-demo-agent pods and use it as a load balancer. If you still need to access specific pods, quoting from the same section of documentation:

If there exists a headless Service in the same namespace as the Pod, with the same name as the subdomain, the cluster's DNS Server also returns A and/or AAAA records for the Pod's fully qualified hostname.


ui dependencies in package-lock.json missing resolved/integrity fields

Wave SDK Version, OS
Im attempting to package up waved and components from v1.1.1 tag. My system is using the following versions:
$ node --version
v18.19.1
$ npm --version
10.2.4
$ nixos-version
23.11.20240117.8bf65f1 (Tapir)

Actual behavior
serveral ui dependencies are missing integrity and resolved fields. Some examples https://github.com/h2oai/wave/blob/5fd6aa5447859e9266ed42a6f9b0583281e62c63/ui/package-lock.json#L17944-L17946 and https://github.com/h2oai/wave/blob/5fd6aa5447859e9266ed42a6f9b0583281e62c63/ui/package-lock.json#L17994-L17997
These missing fields causes the nix build process to fail since it prefetchs and verifies each of the dependencies then performs a npm build offline in a sandbox to ensure reproducibility. This is the result of nix-build against v1.1.1 for the ui:
$ nix-build
this derivation will be built:
  /nix/store/0hj7a05h8kvj8h5zhmac393242nn4pf6-waved-ui.drv
building '/nix/store/0hj7a05h8kvj8h5zhmac393242nn4pf6-waved-ui.drv'...
Running phase: unpackPhase
unpacking source archive /nix/store/fm6brwgw7sq4dx1hafdl67ra9najqcq0-source
source root is source/ui
Running phase: patchPhase
Executing npmConfigHook
Configuring npm
Validating consistency between /build/source/ui/package-lock.json and /nix/store/2mq0dhwczf70pw9iz356ffdk6wmvi3xm-waved-ui-npm-deps/package-lock.json
Installing dependencies
npm ERR! code ENOTCACHED
npm ERR! request to https://registry.npmjs.org/wrappy failed: cache mode is 'only-if-cached' but no cached response is available.

npm ERR! Log files were not written due to an error writing to the directory: /nix/store/2mq0dhwczf70pw9iz356ffdk6wmvi3xm-waved-ui-npm-deps/_logs
npm ERR! You can rerun the command with `--loglevel=verbose` to see the logs in your terminal

ERROR: npm failed to install dependencies

Here are a few things you can try, depending on the error:
1. Set `makeCacheWritable = true`
  Note that this won't help if npm is complaining about not being able to write to the logs directory -- look above that for the actual error.
2. Set `npmFlags = [ "--legacy-peer-deps" ]`

error: builder for '/nix/store/0hj7a05h8kvj8h5zhmac393242nn4pf6-waved-ui.drv' failed with exit code 1;
       last 10 log lines:
       > npm ERR! Log files were not written due to an error writing to the directory: /nix/store/2mq0dhwczf70pw9iz356ffdk6wmvi3xm-waved-ui-npm-deps/_logs
       > npm ERR! You can rerun the command with `--loglevel=verbose` to see the logs in your terminal
       >
       > ERROR: npm failed to install dependencies
       >
       > Here are a few things you can try, depending on the error:
       > 1. Set `makeCacheWritable = true`
       >   Note that this won't help if npm is complaining about not being able to write to the logs directory -- look above that for the actual error.
       > 2. Set `npmFlags = [ "--legacy-peer-deps" ]`
       >
       For full logs, run 'nix log /nix/store/0hj7a05h8kvj8h5zhmac393242nn4pf6-waved-ui.drv'.

This seems to be an outstanding issue within npm if the packages are already cached locally and npm install is used to generate the package-lock.json : https://github.com/npm/cli/issues/4460 and https://github.com/npm/cli/issues/6301
Expected behavior
In order to assure reproducible installations, every package listed in a package-lock.json should contain a resolved and integrity field so it can be fetched from a registry.
Steps To Reproduce
Unsure how to reproduce this within npm, it seems to happily proceed without caring about the missing resolved and integrity fields. Here is a simple version to verify using nix

Install nix: https://nixos.org/download/
Copy the following into default.nix:

{ pkgs ? import
    (fetchTarball {
      url = "https://github.com/NixOS/nixpkgs/archive/d3f8923899a36a1985b58804de2b0cb0862015cd.tar.gz";
      sha256 = "sha256:0m2jf3chas1dls1gk6q2dg8q9ciq8mmbxbbmpfi5hjj8wd09a5kx";
    })
    { }
}:
let
  version = "1.1.1";
  src = pkgs.fetchFromGitHub {
    owner = "h2oai";
    repo = "wave";
    rev = "v${version}";
    sha256 = "sha256-fINuoJx7dPN613wLLzcC2aar5vz6L6qzAWm/bWgj9bo=";
  };
in
pkgs.buildNpmPackage {
  inherit version src;
  name = "waved-ui";

  sourceRoot = "${src.name}/ui";

  npmDepsHash = "sha256-eKBhQsqBzdC7znOiFeEAFNVKnbDXgVbBS23ZRPjpuuo=";

  nodejs = pkgs.nodejs_18;

  npmFlags = [ "--ignore-scripts" ];
}

nix-build from the same directory where default.nix exists
Result will be the aforementioned error

I'm happy to help troubleshoot or provide more info.

Thanks for bringing this up @sarcasticadmin! I always assumed npm takes care of all the integrity stuff for us, but seems like it's not always the case.
Based on the npm issues you linked above, it seems like rm -rf node_modules package-lock.json should be enough to fill in the missing hashes. The unfortunate part is we will lose our lock file and dependencies will be upgraded. If you could find a way to add the hashes while keeping the existing package-lock, that would be awesome.
If not, once you confirm the issue on your side is resolved, feel free to make a PR (or just let me know here and I can make the PR myself).

Let me give that a go and Ill raise a PR shortly


docs(readme): update ng --help to ng help in readme

As you can see above, ng --help doesn't work, we have to use ng help instead, and the command specified in the readme is the wrong one

Can you please look at the CLA problem in the above comment https://github.com/angular/angular-cli/pull/3159#issuecomment-260938775 ?
Thanks a lot.
Cheers,

Done ! Should I rebase it to master ?

That would be nice of you, although possibly not mandatory. Usually the project team merge PRs that are in sync with master, or (apparently) cherry pick commits if the PR is not up date with master.

Done, just hoping that there won't by new commits in master for CI build time :)

I closed the dupes (thanks @grizzm0!) and we'll get this one merged soon. Thanks all!

They generated README.md file should be changed too: #3286

@kevcha Like here: https://github.com/angular/angular-cli/pull/3286/files#diff-47671671e7f3a5bbd35326f4efc1b03eR31

Ah ok, sorry I didn't see that.
So, maybe we can close this PR since #3352 has been merged ?

It has not been merged.


Usage listed as compliant in documentation for UnnecessaryLet not working as expected.

I have a usage of let that looks to me like it takes the a form similar to a?.let { print(it) }, which is listed as compliant in the docs but it is flagged as an error so I'm wondering if I'm missing a subtle part of the rule here.
I have a data class with a few nullable properties, for the sake of example say it's something like:
data class foo(val title: String?)

I also have an interface that defines a function setTitle that looks something like:
interface bar {
  fun setTitle(title:String)
}

The code block in my code essentially looks like the following:
val a : foo = ...
with(a) {
  title?.let { bar.setTitle(it) }
}

Is this a valid use case for let or am I not understanding the docs correctly? Also I wasn't sure if this was an improper usage of with, but if it is, I'd expect a different error to be reported by detekt

Seems like something weird was happening with the detekt output. There was another detekt issue in a different file and it flagged the lets in my file, but fixing the detekt error in the other file resolved this problem. Will close


matano init fails when there is not default VPC in the region

Error message is clear but if no longer needed, consider removing....

Closed by https://github.com/matanolabs/matano/commit/c29c8b2bba7adddefda1b34f789b73ced4dafbfd which doesn't require the VPC anymore.


TypeError: Cannot read property 'json' of undefined

error in server after signing up a new account:
$ nodejs .
Express server started on *:3000
::ffff:<IP_ADDRESS> - - [25/Jan/2017:22:53:29 +0000] "POST /session HTTP/1.1" 403 65 "http://<IP_ADDRESS>:3000/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"
::ffff:<IP_ADDRESS> - - [25/Jan/2017:22:53:41 +0000] "POST /session HTTP/1.1" 403 65 "http://<IP_ADDRESS>:3000/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"
::ffff:<IP_ADDRESS> - - [25/Jan/2017:22:54:31 +0000] "POST /user HTTP/1.1" 200 48 "http://<IP_ADDRESS>:3000/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"
::ffff:<IP_ADDRESS> - - [25/Jan/2017:22:54:31 +0000] "GET /user HTTP/1.1" 200 74 "http://<IP_ADDRESS>:3000/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"
/var/appdata/authy2fa-node/models/User.js:68
response.json(err);
^
TypeError: Cannot read property 'json' of undefined
at /var/appdata/authy2fa-node/models/User.js:68:25
at Request.callback_check [as _callback] (/var/appdata/authy2fa-node/node_modules/authy/index.js:141:17)
at Request.self.callback (/var/appdata/authy2fa-node/node_modules/request/request.js:236:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request. (/var/appdata/authy2fa-node/node_modules/request/request.js:1142:14)
at emitOne (events.js:101:20)
at Request.emit (events.js:188:7)
at IncomingMessage. (/var/appdata/authy2fa-node/node_modules/request/request.js:1096:12)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)

This is likely due to not having set the AUTHY_API_KEY environment variable to a valid Authy API Key. It could be something else, however, so I've checked in a fix to the error handling code so it will give you the precise error code and message.


Running the Windows Powershell ISE Command

I am running the following command
install-module navcontainerhelper -force
set accept_eula to $true to accept the eula found here: https://go.microsoft.com/fwlink/?linkid=861843
$accept_eula = $true
$containername = 'MyBizCentralApp'
$navdockerimage = 'microsoft/bcsandbox:12.0.22269.0-us'
$appbacpacuri = ''
$tenantbacpacuri = ''
$additionalParameters = @()
if ($appbacpacuri -ne '' -and $tenantbacpacuri -ne '') {
$additionalParameters = @("--env appbacpac=""$appbacpacuri""","--env tenantBacpac=""$tenantbacpacuri""")
}
$credential = get-credential -UserName $env:USERNAME -Message "Using Windows Authentication. Please enter your Windows credentials."
New-NavContainer -accept_eula:$accept_eula                  -containername $containername
-auth Windows                  -Credential $credential
-includeCSide                  -alwaysPull
-doNotExportObjectsToText                  -usessl:$false
-updateHosts 				 -assignPremiumPlan
-shortcuts Desktop                  -imageName $navdockerimage
-additionalParameters $additionalParameters
Setup-NavContainerTestUsers -containerName $containername -password $credential.Password
and getting following error. Any ideas ???
9c2638817a57: Waiting
cd9ca9ec3996: Waiting
docker : image operating system "windows" cannot be used on this platform
At C:\Program Files\WindowsPowerShell\Modules\navcontainerhelper\<IP_ADDRESS>\ContainerHandling\New-NavContainer.ps1:157 char:9

    docker pull $imageName

    ~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (image operating...n this platform:String) [], RemoteException
FullyQualifiedErrorId : NativeCommandError

PS C:\Windows\system32>

Sounds like you are running into item no 1 in the troubleshooting list:
https://blogs.msdn.microsoft.com/freddyk/2017/10/29/troubleshooting-nav-on-docker/

Thank you for all the info.
That helped.
Now I am running into another issue and I am hoping you can help.
So I was able to run the NAV on Docker and all the shortcuts created on the desktop.
Now I am the following website with instructions
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-get-started-container-sandbox
and I am at the part of setting up visual studio code.
I ran through the steps but there seems to be an error with the Launch.json.
I looks like this
{
"version": "0.2.0",
"configurations": [
{
"name": "Your own server",
"type": "al",
"request": "launch",
"server": "http://MyBizCentralApp",
"serverInstance": "nav",
"authentication": "UserPassword",
"startupObjectId": 22
},
{
"type": "al",
"request": "launch",
"name": "Your own server",
"server": "http://MyBizCentralApp",
"serverInstance": "NAV"
"authentication": "UserPassword",
"startupObjectId": 22,
"startupObjectType": "Page"
}
]
}
This can’t connect to the new database I just loaded via docker.
Any ideas ?
Armela Kamenica
Direct:<PHONE_NUMBER>   | Fax:<PHONE_NUMBER>
Cell –<PHONE_NUMBER>
armela<EMAIL_ADDRESS>| www.solsyst.comhttp://www.solsyst.com/
[solsystemailfooter]
From: Freddy Kristiansen<EMAIL_ADDRESS>Sent: Sunday, May 27, 2018 12:57 AM
To: Microsoft/navcontainerhelper<EMAIL_ADDRESS>Cc: Armela Kamenica<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/navcontainerhelper] Running the Windows Powershell ISE Command (#141)
Sounds like you are running into item no 1 in the troubleshooting list:
https://blogs.msdn.microsoft.com/freddyk/2017/10/29/troubleshooting-nav-on-docker/
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/navcontainerhelper/issues/141#issuecomment-392307265, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Al0zxe8sG_OVlCMrQ_7eimOvgVOcpcWBks5t2kBFgaJpZM4UPICa.

Why do you have two configurations in your launch.json with the same data?
Please try to remove one of the configurations.

Not sure how I did that.
Started a new project  and here is what I have now
{
"version": "0.2.0",
"configurations": [
{
"name": "Your own server",
"type": "al",
"request": "launch",
"server": "http://MyBizCentralApp",
"serverInstance": "nav",
"authentication": "UserPassword",
"startupObjectId": 22
}
]
}
I think I am having an issue connection AL to the BC database I created vis Shell ISE and Docker.
When I am in Visual studio and select AL GO, I get a message to select my own database on the local server and asks me for user name and password.
I am using the one I got from the Microsoft  subscription but that does not work.
Any ideas ???
Armela Kamenica
Direct:<PHONE_NUMBER>   | Fax:<PHONE_NUMBER>
Cell –<PHONE_NUMBER>
armela<EMAIL_ADDRESS>| www.solsyst.comhttp://www.solsyst.com/
[solsystemailfooter]
From: richardrobberse<EMAIL_ADDRESS>Sent: Monday, May 28, 2018 1:30 AM
To: Microsoft/navcontainerhelper<EMAIL_ADDRESS>Cc: Armela Kamenica<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/navcontainerhelper] Running the Windows Powershell ISE Command (#141)
Why do you have two configurations in your launch.json with the same data?
Please try to remove one of the configurations.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/navcontainerhelper/issues/141#issuecomment-392431937, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Al0zxZQesO1BSJvUrg_d6OYa5WIh6dhEks5t25lrgaJpZM4UPICa.

I have another question for you guys.
So  I Used Powershell ISE  to run the PS1 file and It created shortcuts on my desktop for NAV Cside and all.
When trying to  open MyBizCentral Cside I get the following . What do I enter at this point ? Selecting OK gives me an error.  I think that may be related to my auth error when using Visual Studio.
Thanks
<EMAIL_ADDRESS>Armela Kamenica
Direct:<PHONE_NUMBER>   | Fax:<PHONE_NUMBER>
Cell –<PHONE_NUMBER>
armela<EMAIL_ADDRESS>| www.solsyst.comhttp://www.solsyst.com/
[solsystemailfooter]
From: richardrobberse<EMAIL_ADDRESS>Sent: Monday, May 28, 2018 1:30 AM
To: Microsoft/navcontainerhelper<EMAIL_ADDRESS>Cc: Armela Kamenica<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/navcontainerhelper] Running the Windows Powershell ISE Command (#141)
Why do you have two configurations in your launch.json with the same data?
Please try to remove one of the configurations.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/navcontainerhelper/issues/141#issuecomment-392431937, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Al0zxZQesO1BSJvUrg_d6OYa5WIh6dhEks5t25lrgaJpZM4UPICa.

I can't see the screenshot you've provided, probably because you've replied by email.
When using NavUserPassword authentication you're responsible for providing the username and pw, so when you created the container you were prompted to enter a username and a password.
To me, it sounds like you don't remember the username and password so please recreate the container.

Ok,
I tried to recreate.
Here is the error I get now on the Powershell ISE  . What am I doing wrong ?? SO sorry to bother you with all these questions.
Creating container MyBizCentralApp from image microsoft/bcsandbox:12.0.22269.0-us
adf24062488cf74367033c5590da71f190b2f0c86073b409abbe976a4a2fa7e5
docker.exe: Error response from daemon: container adf24062488cf74367033c5590da71f190b2f0c86073b409abbe976a4a2fa7e5 encountered an erro
r during Start: failure in a Windows system call: The operation timed out because a response was not received from the Virtual Machine
hosting the Container. (0xc0370109).
Commandline: docker run --name MyBizCentralApp --hostname MyBizCentralApp --env auth=Windows --env username="armela" --env ExitOnError
=N --env locale=en-US --env licenseFile="" --env databaseServer="" --env databaseInstance="" --volume "C:\ProgramData\NavContainerHelp
er:C:\ProgramData\NavContainerHelper" --volume "C:\ProgramData\NavContainerHelper\Extensions\MyBizCentralApp\my:C:\Run\my" --restart u
nless-stopped --memory 4G --env useSSL=N --volume "C:\ProgramData\NavContainerHelper\Extensions\MyBizCentralApp\Program Files:C:\navpf
iles" --volume "c:\windows\system32\drivers\etc:C:\driversetc" --env securePassword=76492d1116743f0423413b16050a5345MgB8AHQAagA1AFYAcA
BrAEoAawAxAHkAZgBSAFYARQAvAE4AagB4AEkAQwB1AEEAPQA9AHwAYwAwADEAYgBkAGUAYgA4ADcANgAwAGEAYgBkADkAZQAwADAAMQAyADAAMgBlADUAMQA4ADYANwA1AGUA
YQA3ADkAZgAzADAAMgBjAGYAMgAwADkAOQAxADIANABjADkAMQA1ADEAYgA2AGEAYwAyADEAMwBiAGYAMgA2AGEAYgA= --env passwordKeyFile="c:\run\my\aes.key"
--env removePasswordKeyFile=Y --env accept_eula=Y --detach microsoft/bcsandbox:12.0.22269.0-us
Downloading C:\Users\armela\AppData\Local\Temp\CreateTestUsers.fob
New-PSSession : The input ContainerId adf24062488cf74367033c5590da71f190b2f0c86073b409abbe976a4a2fa7e5 does not exist, or the
corresponding container is not running.
At C:\Program Files\WindowsPowerShell\Modules\navcontainerhelper\<IP_ADDRESS>\ContainerHandling\Get-NavContainerSession.ps1:37 char:24

...  $session = New-PSSession -ContainerId $containerId -RunAsAdministrat ...

            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [New-PSSession], PSInvalidOperationException
FullyQualifiedErrorId : CreateRemoteRunspaceForContainerFailed,Microsoft.PowerShell.Commands.NewPSSessionCommand

PS C:\Windows\system32>
Armela Kamenica
Direct:<PHONE_NUMBER>   | Fax:<PHONE_NUMBER>
Cell –<PHONE_NUMBER>
armela<EMAIL_ADDRESS>| www.solsyst.comhttp://www.solsyst.com/
[solsystemailfooter]
From: richardrobberse<EMAIL_ADDRESS>Sent: Monday, May 28, 2018 12:19 PM
To: Microsoft/navcontainerhelper<EMAIL_ADDRESS>Cc: Armela Kamenica<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/navcontainerhelper] Running the Windows Powershell ISE Command (#141)
I can't see the screenshot you've provided, probably because you've replied by email.
When using NavUserPassword authentication you're responsible for providing the username and pw, so when you created the container you were prompted to enter a username and a password.
To me, it sounds like you don't remember the username and password so please recreate the container.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/navcontainerhelper/issues/141#issuecomment-392573568, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Al0zxfXVcKCxFBCQDAfDKlFAFdyHHAqSks5t3DGggaJpZM4UPICa.

Ok, I was able to re-run the “Create Container “.
I had a certificate issue.
I still can’t access the newly created databases on my desktop via just clicking on them (RTC or DEV) or via Visual Studio.
Any ideas ?
Armela Kamenica
Direct:<PHONE_NUMBER>   | Fax:<PHONE_NUMBER>
Cell –<PHONE_NUMBER>
armela<EMAIL_ADDRESS>| www.solsyst.comhttp://www.solsyst.com/
[solsystemailfooter]
From: richardrobberse<EMAIL_ADDRESS>Sent: Monday, May 28, 2018 12:19 PM
To: Microsoft/navcontainerhelper<EMAIL_ADDRESS>Cc: Armela Kamenica<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/navcontainerhelper] Running the Windows Powershell ISE Command (#141)
I can't see the screenshot you've provided, probably because you've replied by email.
When using NavUserPassword authentication you're responsible for providing the username and pw, so when you created the container you were prompted to enter a username and a password.
To me, it sounds like you don't remember the username and password so please recreate the container.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/navcontainerhelper/issues/141#issuecomment-392573568, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Al0zxfXVcKCxFBCQDAfDKlFAFdyHHAqSks5t3DGggaJpZM4UPICa.


fix: request review

:tada: This PR is included in version 1.5.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: