Master pr nxstyle improvments

@patacongo -
This will get us off the ground on the formatting tool we can get in to the workfow.
We are going to need your expertise on the the makefile side.  (be nice i got it to work ;)
There should be no formatting check changes - it just get us a tool that will work with compiler aware ide/editors.
make check_format - will check all the files that differ from master

tools/check_code_style.sh  file name will check a file

I added Xiao Xiang to the reviewers.  We need to have a lot of concurrence here since this PR implements a portion of the workflow while there no workflow requirements in place.  I think this piece of the workflow is not so controversial, I would like to have Xiang provide his input as well.  Xiang is the most authorative person on the build system.

What is this? How did I do this?  What does closed mean?  What was closed?

Yes close without merging is like decline.
It's still closed btw.

@Ouss4 Thanks!  It said it was open in my page.  I must have hit close again?  It is kind of goosey but I attribute that to the fact the I am a github noob.

I must have hit close again?

I don't know, it never said re-opened, eventhough it should re-open the moment you comment.

@xiaoxiang781216 You can create a script that you recommend is run as pre-commit, but the actual hooks are outside of the git working directory, so it will never be configured on a fresh clone.
Usually if I want to support this I provide a little script or instructions for people to symlink to the script in the git working directory.

@btashton @davids5 What I mean here is that we don't need modify Makefile, is engouh to add a script invoke nxstyle(maybe build it too) to check the style for specific file/files or commit/commits.
Then we instruct people integrate this script into pre-commit hook to enable the check automatically. Like:
https://github.com/torvalds/linux/blob/master/scripts/checkpatch.pl
Nobody try to integrate checkpatch.pl into Linux build system, since developer can run checkpatch.pl directly to:
1.The bunch of specified files
2.The bunch of specified commits
3.The current living change
4.Integrate to pre-commit hook
It's much flexible than make check_format since we can pass the different argument to script form command line, but the same thing is hard to do for Makefile.

I added Xiao Xiang to the reviewers. We need to have a lot of concurrence here since this PR implements a portion of the workflow while there no workflow requirements in place. I think this piece of the workflow is not so controversial, but I would like to have Xiang provide his input as well. Xiang is the most authorative person on the build system and must be in the loop on build system changes.

@patacongo Thank you!
@xiaoxiang781216  I will add you this organization if you like. Then you can free to push commit here.  Or pull this it to upsteam as a branch and we can all collaborate on it there. What ever get this in.

Maybe we can use git pre-commit hook to ensure anyone run nxsytle before commit to his/her local working branch:
https://eing.github.io/technology/2016/01/28/Git-Pre-Commit-Hooks-Part1/
And we even can run make in pre-commit.sh to generate the nxsytle.

Yes. I had sent it on the list at one point, Not sure what list....
@xiaoxiang781216 - please consider this issue and How it will effect us.
.git/hooks/pre-commit
#!/bin/sh
#
# Copyright (c) 2012 - 2019, PX4 Development Team
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
#  list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright notice,
#  this list of conditions and the following disclaimer in the documentation
#   and/or other materials provided with the distribution.
#
# * Neither the name of the copyright holder nor the names of its
#   contributors may be used to endorse or promote products derived from
#  this software without specific prior written permission.
 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments.  The hook should
# # exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".

if git rev-parse --verify HEAD >/dev/null 2>&1
then
	against=HEAD
else
	# Initial commit: diff against an empty tree object
	against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi

# If you want to allow non-ascii filenames set this variable to true.
allownonascii=$(git config hooks.allownonascii)

# Redirect output to stderr.
exec 1>&2

# Cross platform projects tend to avoid non-ascii filenames; prevent
# them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde.
if [ "$allownonascii" != "true" ] &&
	# Note that the use of brackets around a tr range is ok here, (it's
	# even required, for portability to Solaris 10's /usr/bin/tr), since
	# the square bracket bytes happen to fall in the designated range.
	test $(git diff --cached --name-only --diff-filter=A -z $against |
	  LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
	echo "Error: Attempt to add a non-ascii file name."
	echo
	echo "This can cause problems if you want to work"
	echo "with people on other platforms."
	echo
	echo "To be portable it is advisable to rename the file ..."
	echo
	echo "If you know what you are doing you can disable this"
	echo "check using:"
	echo
	echo "  git config hooks.allownonascii true"
	echo
	exit 1
fi

# If there are whitespace errors, print the offending file names and fail.
git diff-index --check --cached $against --
if [ $? -ne 0 ]
then
        exit 1
fi

# Check for code style, only in changed files
for i in `git diff --cached --name-only --diff-filter=ACM`
do
	echo $i:
        FILENAME=$(basename $i)
        FILE_EXT="${FILENAME#*.}"
	echo FILENAME=$FILENAME
	echo FILE_EXT=$FILE_EXT
        if [ "$FILE_EXT" = "c" ] || [ "$FILE_EXT" = "h" ]; then
		./tools/nxstyle -m 80 $i
	fi
	echo
done
exec < /dev/tty
while true; do
	read -p "[post-commit hook] Commit? (Y/n) " yn
	if [ "$yn" = "" ]; then
	   yn='Y'
	fi
	case $yn in
	      [Yy] ) exit 0; break;;
	      [Nn] ) exit 1;;
	      * ) echo "Please answer y or n for yes or no.";;
	  esac
	done

Oh I should also mention that the this was from before I added the class of error and treated long lines as warnings in H files.
exec < /dev/tty
while true; do
	read -p "[post-commit hook] Commit? (Y/n) " yn
	if [ "$yn" = "" ]; then
	   yn='Y'
	fi
	case $yn in
	      [Yy] ) exit 0; break;;
	      [Nn] ) exit 1;;
	      * ) echo "Please answer y or n for yes or no.";;
	  esac
	done

Is not the way this should work it is Just that nxstyle is not mature enough to trust.

@btashton @davids5 What I mean here is that we don't need modify Makefile, is engouh to add a script invoke nxstyle(maybe build it too) to check the style for specific file/files or commit/commits.
Then we instruct people integrate this script into pre-commit hook to enable the check automatically. Like:
https://github.com/torvalds/linux/blob/master/scripts/checkpatch.pl
Nobody try to integrate checkpatch.pl into Linux build system, since developer can run checkpatch.pl directly to:
1.The bunch of specified files
2.The bunch of specified commits
3.The current living change
4.Integrate to pre-commit hook

nxstyle(maybe build it too)

That is make's job.

It's much flexible than make check_format since we can pass the different argument to script form command line, but the same thing is hard to do for Makefile.

I agree - but adding it to the make file has some benefits and it does not prevent any entity (user, ci, tools) from running the script directly.
There are a few subtle points here from a non-power users and system POV.
We want to grow the community it is make for easy of use fot N00Bs

Most editors and ide's have make integration.
First normal form and abstraction.

If we add the formatting targets to the MakeFile it is top down and use-able by the users, CI and other tools.
make check_format
make check _format_all
and for the user (When, we have a decent tool)
make format - that fixes the issues
As of today nxstyle lives in tools and in tree.  It may need to be moved. Think about the best practices with git when the release branch's nxstyle != master's nxstyle and master is correct nxstye (or a conf file for a real tool).
It will level room for a whole class of errors we can avoid with a simple Workflow.
Also consider the change to tools like when nxstyle++ is written or we use clang-format. Do you want to update the location and process everywhere: in the CI repos, containers and  ./tools or do you want to update the makefile?
@btashton , @xiaoxiang781216  Please set me straight if I am off course or too myopic.
The things we get wrong now will become technical-debt. Granted at this point it in time it is small but when there are 300 committers on nuttx it will be a problem 300 times lager.

@davids5 I would prefer we work on check_code_style.sh first, and forget Makefile.unix at all.
Why? this avoid we couple the script logic with Makefle, for example:
1.The above implementation make the standalone script can't colorize the output.
2.The dependence rule can't work if user invoke the script from shell directly.
The best aproach is that we focus on the script development and make it work from command line as we want, then we can integrate the script either as the make target or precommit hook. Otherwise, the script will do a major rework for the standalone case.
Invoking the script from command line is the key feature for this tool, becasue we need integrate this tool the various workflow(e.g. Makefile, precommit hook, jenkins job).

@xiaoxiang781216 - This is now 2 simple so you can separate them and do as you think best.
Please just release something that can be used with eclipse and VSCODE - The old tool wasted way too much time.  In the mean time I will backport this to PX4 as [REJECTED]  to keep our users productive.

@btashton @davids5 What I mean here is that we don't need modify Makefile, is engouh to add a script invoke nxstyle(maybe build it too) to check the style for specific file/files or commit/commits.
Then we instruct people integrate this script into pre-commit hook to enable the check automatically. Like:
https://github.com/torvalds/linux/blob/master/scripts/checkpatch.pl
Nobody try to integrate checkpatch.pl into Linux build system, since developer can run checkpatch.pl directly to:
1.The bunch of specified files
2.The bunch of specified commits
3.The current living change
4.Integrate to pre-commit hook

nxstyle(maybe build it too)

That is make's job.

Yes, but we already have the rule in tools/Makefile.host for generating nxstyle binary, the question is where should we trigger the target. It's better to let the script trigger the buildotherwise user can't invoke the tool outside the make environment(e.g. from jenkins job, precommit hook or command line).

It's much flexible than make check_format since we can pass the different argument to script form command line, but the same thing is hard to do for Makefile.

I agree - but adding it to the make file has some benefits and it does not prevent any entity (user, ci, tools) from running the script directly.
There are a few subtle points here from a non-power users and system POV.
We want to grow the community it is make for easy of use fot N00Bs

Most editors and ide's have make integration.
First normal form and abstraction.

If we add the formatting targets to the MakeFile it is top down and use-able by the users, CI and other tools.
make check_format
make check _format_all
and for the user (When, we have a decent tool)
make format - that fixes the issues

Sorry, I make some confusion here. The build target to check/fix the style issuse is good idea, but we need also consider other use case too(e.g. command line, precommit hook and jenkins job). So it's better to develop the script first and keep all invoking environment in mind and equally(don't bias on make too earily). Once the script is ready, the integrattion is a very simple task.

As of today nxstyle lives in tools and in tree. It may need to be moved. Think about the best practices with git when the release branch's nxstyle != master's nxstyle and master is correct nxstye (or a conf file for a real tool).
It will level room for a whole class of errors we can avoid with a simple Workflow.
Also consider the change to tools like when nxstyle++ is written or we use clang-format. Do you want to update the location and process everywhere: in the CI repos, containers and ./tools or do you want to update the makefile?

Yes, I agree we need a shell script here, so we can change the implentation without influencing any user. But we shouldn't move the script to any other location: tools/ is a good place.

@btashton , @xiaoxiang781216 Please set me straight if I am off course or too myopic.
The things we get wrong now will become technical-debt. Granted at this point it in time it is small but when there are 300 committers on nuttx it will be a problem 300 times lager.

Yes, but we already have the rule in tools/Makefile.host for generating nxstyle binary, the question is where should we trigger the target. It's better to let the script trigger the buildotherwise user can't invoke the tool outside the make environment(e.g. from jenkins job, precommit hook or command line).

Why is the building of the host tools not part of the top level make process? Shouldn't the host tools be built  So that there is a sane environment prior to building the config target?

Because most of them are not needed for the build.  And it just wastes build cycles building tools that are not used.  You ran into this with nxstyle.exe only because it was not on used in the build before your change.  The build target in the Makefile is nice because it only builds the executable if it will be needed.

This will build all of the tools including a dozen or so that you don't need and probably will never need:
$(MAKE) -C tools -f Makefile.host

Yes, but we already have the rule in tools/Makefile.host for generating nxstyle binary, the question is where should we trigger the target. It's better to let the script trigger the buildotherwise user can't invoke the tool outside the make environment(e.g. from jenkins job, precommit hook or command line).

Why is the building of the host tools not part of the top level make process? Shouldn't the host tools be built So that there is a sane environment prior to building the config target?

Because user may run the script without issue any make command first, for example:
The jenkins job could run the script check the style before build to save the time.
As Greg indicate, we can build nxstyle with one line command:
make -C tools -f Makefile.host nxstyle
But it's very helpful to issue the above command in the script, because many user even expert don't know this trick.

But it's very helpful to issue the above command in the script, because many user even expert don't know this trick.

There are also lots of cases where scripts in tools/ build the binaries that the scipt needs.  This makes the scripts nicely self-contained.
Examples...  Logic assocated with:
tools/mkconfigvars.sh:KCONFIG2MAKEFILE=Makefile.host
tools/refresh.sh:CMPCONFIGMAKEFILE=Makefile.host

Sorry about the Open/Close/Open/Close.  Not exactly sure what I am doing.  I suspect that it is the "Close and Comment" button next to the "Comment" button.  I am used to hitting a "Cancel" button at that position.

Is it that you both are too close to the solution space that you cannot see
this from a N00B perspective?
Do you have tab completion on make installed?
Assume want to grow the NuttX community.
Assume the first question is "What is make?"
One interface in a dev environment is the "user" interface at any skill
level will further the effort and it does not hinder the "pros"
From: patacongo<EMAIL_ADDRESS>Sent: Monday, December 23, 2019 9:07 AM
To: apache/incubator-nuttx
Cc: David Sidrane; Mention
Subject: Re: [apache/incubator-nuttx] Master pr nxstyle improvments (#2)
This will build all of the tools including a dozen or so that you don't
need and probably will never need:
$(MAKE) -C tools -f Makefile.host
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-nuttx/pull/2?email_source=notifications&email_token=AAO3BXJGBRNMQLGIMAEH5ZTQ2DV4ZA5CNFSM4J6NHFG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHRQ5OI#issuecomment-568528569,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAO3BXM6LVG73WOULJ6ODXTQ2DV4ZANCNFSM4J6NHFGQ
.

LOL - RTM,  If we had CI you would have swapped it.
From: patacongo<EMAIL_ADDRESS>Sent: Monday, December 23, 2019 9:46 AM
To: apache/incubator-nuttx
Cc: David Sidrane; Mention
Subject: Re: [apache/incubator-nuttx] Master pr nxstyle improvments (#2)
Sorry about the Open/Close/Open/Close. Not exactly sure what I am doing. I
suspect that it is the "Close and Comment" button next to the "Comment"
button. I am used to hitting a "Cancel" button at that position.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-nuttx/pull/2?email_source=notifications&email_token=AAO3BXLEKXJFIQS4QWWO6KLQ2D2NDA5CNFSM4J6NHFG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHRTF7Y#issuecomment-568537855,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAO3BXIINFMHSR22EJODGJLQ2D2NDANCNFSM4J6NHFGQ
.

I don't think Xaio Xiang's proposal and your implementation are mutually exclusive.

I would like to close this now.  I do not think it should be incorporated into the NuttX repositories now.  It deals with specific logic for the NuttX workflow.  We need to have a defintiion for the workflow before we can consider including it.
Then we need to bring all of the other people on board who are tasked with working with the NuttX: Haitao Liu and Anthony Merlino.  A slam dunk of PX4 workflow is not acceptable.


Queue message getting lost

Hey! I'm going through a problem and I'm putting it out to see if someone can help me.
Before anything, the sst's version on this project is 0.1.21. I'll show you some logs down below, and I've switched sensitive data to dummy data.
So I have a cron job called NotifyComingUpBills.
const {
        AWS_ACCESS_KEY_ID,
        AWS_SECRET_ACCESS_KEY,
        AWS_DEFAULT_REGION,
        ...environment
      } = env

      new sst.aws.Cron('NotifyComingUpBills', {
        job: {
          handler: 'infra/crons/notify-coming-up-bills/cron.handler',
          environment,
          link: [queues.SendWhatsAppMessageRequested],
          timeout: `${5} minute`,
        },
        schedule: 'cron(0 13 * * ? *)',
      })

Here's a piece of the code inside this cron job, it basically fetches users with bills expiring on the determined day and sends a message to them.
  async function notifyComingUpTransactions(upToDays: number) {
    let startAt = 0
    const limit = 100
    let hasMore = true

    while (hasMore) {
      const today = dayjs()
      const paydayDate = today.add(upToDays, 'day').format('YYYY-MM-DD')

      const response = await api.get<CelcashResponse>(
        `/transactions?status=pendingBoleto&payDayFrom=${paydayDate}&payDayTo=${paydayDate}&startAt=${startAt}&limit=${limit}`,
        { headers }
      )

      if (response.data.Transactions.length > 0) {
        for (const transaction of response.data.Transactions) {
          const invalidStatus: Transaction['Subscription']['status'][] = [
            'canceled',
            'closed',
            'inactive',
          ]

          if (
            !transaction.Subscription ||
            invalidStatus.includes(transaction.Subscription.status)
          )
            continue

          console.info('Transaction:', transaction)

          await sqs.send(
            makeSendWhatAppMessageRequestedCommand({
              url: env.BOTCONVERSA_NOTIFY_ON_BILL_DUE_DATE_COMING_UP_WEBHOOK_URL,
              body: {
                'nome-completo': transaction.Subscription.Customer.name,
                telefone:
                  transaction.Subscription.Customer.phones[0].toString(),
                'boleto-vencimento': transaction.payday
                  .split('-')
                  .reverse()
                  .join('/'),
                'boleto-valor': formatCurrency(transaction.value / 100),
                'boleto-link': transaction.Boleto.pdf,
                'boleto-qrcode-pix': transaction.Pix.qrCode,
                'dias-para-vencimento': upToDays,
              },
            })
          )

          console.info(
            `Notified ${transaction.Subscription.Customer.name} through WhatsApp on phone ${transaction.Subscription.Customer.phones[0]} about pending bill expiring within ${upToDays} days.`
          )
        }

        startAt += limit
      } else {
        hasMore = false
      }
    }
  }

  await Promise.allSettled([
    notifyExpiredTransactions(3),
    notifyComingUpTransactions(1),
    notifyComingUpTransactions(5),
  ])

console.info('All pending bills coming up have been notified.')

notifyExpiredTransactions is just a slight variation of notifyComingUpTransactions. I'll show you the queue I'm calling inside the cron job. This queue just sends a message to someone through WhatsApp.
import { SendMessageCommand } from '@aws-sdk/client-sqs'
import { Resource } from 'sst'

import {
  SendWhatsAppMessageRequestedSchema,
  sendWhatsAppMessageRequestedSchema,
} from './schema'

export const makeSendWhatAppMessageRequestedCommand = (
  message: SendWhatsAppMessageRequestedSchema
) => {
  sendWhatsAppMessageRequestedSchema.parse(message)
  return new SendMessageCommand({
    QueueUrl: Resource.SendWhatsAppMessageRequested.url,
    MessageBody: JSON.stringify(message),
  })
}

import { SQSHandler } from 'aws-lambda'
import axios from 'axios'

import {
  SendWhatsAppMessageRequestedSchema,
  sendWhatsAppMessageRequestedSchema,
} from './schema'

export const handler: SQSHandler = async (event) => {
  const message: SendWhatsAppMessageRequestedSchema = JSON.parse(
    event.Records[0].body
  )

  console.info('Send WhatsApp Message Requested:', message)

  sendWhatsAppMessageRequestedSchema.parse(message)

  await axios.post(message.url, {
    ...message.body,
  })

  console.info('WhatsApp message sent to:', message.body.telefone)
}

Here are the logs from the cron job execution on 09/04.

So you can see that it logs the notified info, which means it sends to the WhatsApp queue, here's the logs from WhatsApp queue between 09/03 and 09/05 (Notice that there are only 2 executions from 09/04).

Here are both SendWhatsAppMessageRequested executions from 09/04

I called it SendWhatsAppMessageRequested 5 times inside my cron job on 09/04, but only 2 messages have arrived on the actual queue, and there are no error logs or anything, it has just disappeared.
To finish it, I'll let you know how the queue is being created (I've omitted all queues but SendWhatsAppMessageRequested just to demonstrate it).
export type QueueName =
  | 'AdmissionFormSendingRequested'
  | 'CreditAnalysisRequested'
  | 'CreditAnalysisSent'
  | 'AdmissionJourneyEventCreated'
  | 'CreditAnalysisResultReceived'
  | 'GuarantorCreditAnalysisRequested'
  | 'GuarantorCreditAnalysisSent'
  | 'UpsertPatientOnCelcoinRequested'
  | 'UpsertPatientOnCelcashRequested'
  | 'UpsertGuarantorOnCelcashRequested'
  | 'UpsertGuarantorOnCelcoinRequested'
  | 'SendWhatsAppMessageRequested'
  | 'UploadPaymentReceipt'

export type Queues = {
  [key in QueueName]: sst.aws.Queue
}

const createQueue = ({
  queueName,
  queueArgs,
}: {
  queueName: QueueName
  queueArgs?: QueueArgs
}): sst.aws.Queue => {
  const dlq = new sst.aws.Queue(`${queueName}Dlq`)
  const queue = new sst.aws.Queue(queueName, {
    transform: {
      queue: {
        name: queueName,
        redrivePolicy: pulumi.jsonStringify({
          deadLetterTargetArn: dlq.arn,
          maxReceiveCount: 5,
        }),
        ...queueArgs,
      },
    },
  })
  new aws.sqs.RedriveAllowPolicy(`${queueName}RedriveAllowPolicy`, {
    queueUrl: dlq.url,
    redriveAllowPolicy: pulumi.jsonStringify({
      redrivePermission: 'byQueue',
      sourceQueueArns: [queue.arn],
    }),
  })
  return queue
}

export const createQueues = (): Queues => {
  const visibilityTimeoutSeconds = 60

  const queueArgs: QueueArgs = {
    visibilityTimeoutSeconds,
  }

  return {
    SendWhatsAppMessageRequested: createQueue({
      queueName: 'SendWhatsAppMessageRequested',
      queueArgs,
    }),
  }
}

If you need further information, let me know! This issue is happening in production and I would appreciate your help!

if i'm understanding right it looks like you're doing Records[0] - the messages are sometimes batched you have to iterate over all of them

if i'm understanding right it looks like you're doing Records[0] - the messages are sometimes batched you have to iterate over all of them

Thank you for your answer (and fast answer, hahaha)! It actually makes sense, I'll try it and I'll come back here to let you know if it works

@thdxr Hey, it seems like that's what was happening to me, I'll leave a pic down below.
I don't know why, but apparently, when I send many messages, sometimes it puts them all together into one single array instead of one message per time, some of them were send into a single array, though.
I didn't know that, is it a default AWS behavior? I mean batch them into one single array when it comes to many messages being sent? Do you know where I can read more about it?
Anyway, it seems like it'll solve my problem, I'll let you know if something goes wrong, but I don't think it will.
Once again, thank you!

Here's my final code for the queue:
import { SQSHandler } from 'aws-lambda'
import axios from 'axios'

import {
  SendWhatsAppMessageRequestedSchema,
  sendWhatsAppMessageRequestedSchema,
} from './schema'

export const handler: SQSHandler = async (event) => {
  const messages: SendWhatsAppMessageRequestedSchema[] = event.Records.map(
    (record) => JSON.parse(record.body)
  )

  console.info('Send WhatsApp Message Requested:', messages)

  for (const message of messages) {
    try {
      sendWhatsAppMessageRequestedSchema.parse(message)
      await axios.post(message.url, {
        ...message.body,
      })
      console.info('WhatsApp message sent to:', message.body.telefone)
    } catch (error) {
      console.error('Error processing message:', message, error)
    }
  }
}


Is pip possible in flutter

Is possible to make like this in flutter

https://stackoverflow.com/questions/52980478/how-to-create-a-floating-window-like-clipboard-pro-app

Hi @alhlal209
Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow.
Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
Thank you


Added my name

What changes does this PR do?
It adds my name to the README
Screenshots (If any)
Questions

I will create a new one since I merged main in my fork and therefore this pull request is obsolete


feat: ChannelSuspiciousUserMessage, ChannelSuspiciousUserUpdate

Adds ChannelSuspiciousUserMessage and ChannelSuspiciousUserUpdate. Both tested.
Merge https://github.com/TwitchLib/TwitchLib.EventSub.Core/pull/29 BEFORE merging this.

Note build status has only failed because of the required PR on core
https://github.com/TwitchLib/TwitchLib.EventSub.Core/pull/29


Delete INSTALL

The file is totally outdated and we have (various) docs to describe installation (best one for 2.x probably https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/develop/docs/INSTALL-COMPLETE-GUIDE.md) so I would propose to delete it.
@MiczFlor

Done by #1949


Issue on history.com (post url)

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I'm running yt-dlp version 2023.03.04 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
United States
Provide a description that is worded well enough to be understood
Tried downloading the video from this URL : https://play.history.com/shows/the-secret-of-skinwalker-ranch/season-4/episode-8
All that happens is this :ERROR: [aenetworks] shows/the-secret-of-skinwalker-ranch/season-4/episode-8: Unable to extract post url; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
-vU output is below
I am Able to download the video If I stop the video , right click on it , click inspect , then click Network , search for .M3U8  then start the video and copy the link address. that will work
looking at the yt_dlp\extractor\aenetworks.py  there doesn't seem to be a PLAY.history.com in the list , there is history.com and a play.aetv.com in there.
I did see a #3574 in the issues, with this same error but it went back to an auth issue (#517), and I am not having that, as I said before if I grab the m3u8 mself , It will download it  I.E:
--ap-mso hin020-02 --ap-username PRIVATE --ap-password 'PRIVATE' "https://sundriesvds-video.akamaized.net/bitmovin/AETN-History_VMS/THC_SKIN_277618_GLB_448972_2398_60_20230605_01_AETN-History_VMS_,18,13,10,7,4,2,1,00.mp4.csmil/master.m3u8?audio=en,en_commentary&origin=credentials-prod&hdnts=st=1686839800~exp=1686850630~acl=/bitmovin/AETN-History_VMS/THC_SKIN_277618_GLB_448972_2398_60_20230605_01_AETN-History_VMS_*~hmac=868020a9ba14905c55b45c937c9fed68147b459b78fac663cc2f3bd6f0ae7fb7"
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['--ap-mso', 'hin020-02', '--ap-username', 'PRIVATE', '--ap-password', 'PRIVATE', 'https://play.history.com/shows/the-secret-of-skinwalker-ranch/season-4/episode-8', '-vU']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[392389b7d] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 6.0-full_build-www.gyan.dev (setts), ffprobe 6.0-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: 5590c57bd0433ed239a2deaaf92e2ad6f37fe50f53664c821575cafe106a9421
yt-dlp is up to date<EMAIL_ADDRESS>[aenetworks] Extracting URL: https://play.history.com/shows/the-secret-of-skinwalker-ranch/season-4/episode-8
[aenetworks] /shows/the-secret-of-skinwalker-ranch/season-4/episode-8: Downloading JSON metadata
[aenetworks]<PHONE_NUMBER>704: Downloading JSON metadata
[aenetworks]<PHONE_NUMBER>704: Downloading Provider Redirect Page
ERROR: [aenetworks] shows/the-secret-of-skinwalker-ranch/season-4/episode-8: Unable to extract post url; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 694, in extract
  File "yt_dlp\extractor\aenetworks.py", line 171, in _real_extract
  File "yt_dlp\extractor\aenetworks.py", line 88, in _extract_aetn_info
  File "yt_dlp\extractor\adobepass.py", line 1707, in _extract_mvpd_auth
  File "yt_dlp\extractor\adobepass.py", line 1395, in post_form
  File "yt_dlp\extractor\common.py", line 1278, in _html_search_regex
  File "yt_dlp\extractor\common.py", line 1242, in _search_regex

This looks like an issue with adobepass and your MSO rather than history/aenetworks itself
e.g. see #4047 (which was a duplicate of #2188)
except yours is a different MSO


New Line in interactive mode

Love this tool! Is there a way though to write the prompts across multiple lines into the interactive mode. I tried Shift-Enter Ctrl-Enter but all of them submit the prompt....

@mandulaj This is a good point! It's not supported. I will look into it.

I played around with the current library: github.com/chzyer/readline
But unfortunately it cannot detect SHIFT. I would have to write my own low level input handling which would not be portable across platforms or even shells within the same platform (eg zsh vs bash on a Mac).
Will try to come up with something. I really like the idea, but I am sceptic that I can come up with a solution anytime soon.


Upstream changes in .pre-commit-config.yaml

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index a85e54d05..b9bdc944c 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -61,6 +61,82 @@ repos:
       files: ^.github/workflows/integration-tests.yml.*
       pass_filenames: false

+  - repo: https://github.com/PyCQA/bandit
+    rev: '1.7.9'
+    hooks:
+    - id: bandit
+      files: '^(benchmarks|scripts|third_party/intel)/.*\.py$'
+      args: ["-c", "bandit.yaml", "-s", "B404,B603,B607"]
+      stages: [pre-commit, pre-push, manual]
+
+  - repo: https://github.com/pycqa/pylint
+    rev: v3.2.6
+    hooks:
+      - id: pylint
+        name: pylint for scripts
+        files: '^scripts/.*\.py$'
+        # FIXME: will be deleted soon
+        exclude: '^scripts/create-noop-ipex\.py$'
+        args:
+          - --check-quote-consistency=true
+          # Max line length 120 is consistent with ruff's one in upstream
+          - --max-line-length=120
+          # Disable line-too-long: rely on ruff's check for line length
+          - --disable=line-too-long
+          # Disable import-error: not everything can be imported when pre-commit runs
+          - --disable=import-error
+          # Disable unused-import: ruff has a corresponding check and supports "noqa: F401"
+          - --disable=unused-import
+          # FIXME: revisit these checks later
+          - --disable=missing-module-docstring
+          - --disable=missing-function-docstring
+          - --disable=missing-class-docstring
+          - --disable=duplicate-code
+          - --disable=too-many-locals
+          - --disable=too-many-statements
+          - --disable=too-many-arguments
+        stages: [pre-commit, pre-push, manual]
+
+      - id: pylint
+        name: pylint for benchmarks
+        files: '^benchmarks/.*\.py$'
+        args:
+          - --check-quote-consistency=true
+          # Max line length 120 is consistent with ruff's one in upstream
+          - --max-line-length=120
+          # Disable line-too-long: rely on ruff's check for line length
+          - --disable=line-too-long
+          # Disable import-error: not everything can be imported when pre-commit runs
+          - --disable=import-error
+          - --disable=no-name-in-module
+          # Disable unused-import: ruff has a corresponding check and supports "noqa: F401"
+          - --disable=unused-import
+          # Disable invalid_name: benchmarks use a lot of UPPER_SNAKE arguments
+          - --disable=invalid-name
+          # Disable unnecessary-lambda-assignment: benchmark use a lot of lambda assignments
+          - --disable=unnecessary-lambda-assignment
+          # FIXME: revisit these checks later
+          - --disable=import-outside-toplevel
+          - --disable=too-few-public-methods
+          - --disable=consider-using-generator
+          - --disable=missing-module-docstring
+          - --disable=missing-function-docstring
+          - --disable=missing-class-docstring
+          - --disable=duplicate-code
+          - --disable=too-many-locals
+          - --disable=too-many-statements
+          - --disable=too-many-arguments
+          - --disable=fixme
+        stages: [pre-commit, pre-push, manual]
+
+  - repo: https://github.com/pre-commit/mirrors-mypy
+    rev: v1.13.0
+    hooks:
+      - id: mypy
+        name: mypy for scripts
+        stages: [pre-commit, pre-push, manual]
+        files: '^scripts/.*'
+
 exclude: |
   (?x)(
     ^include/triton/external/|

Bandit - rejected: https://github.com/intel/intel-xpu-backend-for-triton/issues/2844

Bandit - rejected: #2844

Can we remove it downstream?

Bandit - rejected: #2844

Can we remove it downstream?

No, but we can try to move our additions to a separate file.

https://github.com/intel/intel-xpu-backend-for-triton/issues/2844#issuecomment-2517674662
@alexbaden let's continue here
@whitneywhtsang
I don't think it's worth removing it completely, as it increases code security. We have a separate workflow that runs on a schedule, it can be redesigned so that it also runs on pull requests (need to parameterize the launch parameters, as they vary depending on the launch context). However, it will still be a little less convenient, as in case of problems, because you'll have to manually install it and know the launch command.

increases code security

What specific security concerns does this address? When it comes to assert, I think code security is a stretch:
B101: Test for use of assert
This plugin test checks for the use of the Python assert keyword. It was discovered that some projects used assert to enforce interface constraints. However, assert is removed with compiling to optimised byte code (python -O producing *.opt-1.pyc files). This caused various protections to be removed. Consider raising a semantically meaningful error or AssertionError instead.
Yes, you could argue assert was used to enforce interface constraints e.g. in the Inductor <-> Triton interface when passing kernel parameters. Is that a security concern? What is the attack surface and what information from the Triton compile interface could leak that the user does not already have?
Also note that asserts are used in PyTorch Inductor which is currently our only user.
I agree with Thomas' point here: https://github.com/triton-lang/triton/pull/5267#pullrequestreview-2465619989
There are performance implications with changing asserts to exceptions and we never measured those (https://github.com/intel/intel-xpu-backend-for-triton/pull/1962#issuecomment-2302376645).
Finally - even if we are able to separate our additions to a separate file, we still have to maintain differences in common code that uses asserts and fails the bandit checks.  IMHO if upstream won't adopt these changes we have to live with that inherited security posture or convince them that there really is a clear and present danger to leaving the interfaces open to this possible attack.

First of all, I would like to point out that Bandit checks for many potential security issues. The full list can be found here: https://github.com/intel/intel-xpu-backend-for-triton/blob/main/bandit.yaml.
The fact that it found mostly asserts (on the subset of files) in my pull request to Triton is rather my omission that I showed the use of the tool in a bad light, and also that their code is very well written. However, this tool can help to avoid adding security issues throughout the development process.
Well, taking into account your arguments, we can simply disable this particular check: B101, but leave the rest. For the rest of the errors, I believe we don't have a clear opinion from the Triton developers.

The context is important - we are building a compiler not e.g. a web service, and the security posture is different. I don't think we need bandit to ensure our code is acceptable for use by PyTorch or other calling libraries. But I think it is reasonable to use bandit as a background tool to help improve code where necessary so long as we do not gate PRs on passing the bandit scan.


fix: move-from-fileshare with windows style urls

@nschonni Thank you for your contribution, I'm merging this and it should be live shortly.


Allow array concat to concat arrays of different types

TypeScript Version:  3.5.0-dev.20190511
Code
[0].concat('')
// Argument of type '""' is not assignable to parameter of type 'number | ConcatArray<number>'.

Expected behavior:
The concated array has type (number|string)[].
Actual behavior:
Error.
Possible fix:
In https://github.com/microsoft/TypeScript/blob/b7fe99a88c59bd652029bdfe5b6ba8709a677838/lib/lib.es5.d.ts#L1231
interface Array<T> {
- concat(...items: ConcatArray<T>[]): T[];
+ concat<U>(...items: ConcatArray<U>[]): (T|U)[];

Playground Link:
https://www.typescriptlang.org/play/#src=[0].concat([''])
Related Issues:
#29604
Search Terms:
array concat

You can always use declaration merging to add a generic overload to Array.concat() if you find it useful in your own code:
// declaration merge
interface Array<T> {
    concat<U>(...items: (U | ConcatArray<U>)[]): (T | U)[]
}

const okay = [0].concat("");  // Array<string | number>

Playground link
Or, you can widen the array element type yourself before concating to it:
const okay = [0 as string | number].concat(''); // Array<string | number>

Playground link
Before the standard library is modified for everyone, though, you'd want to establish that this use case is common enough in real-world code to warrant it.   The compiler tries to catch potential bugs.  For real uses of concat() in the wild, what is the false-positive (the compiler thinks good code is a bug) rate of the current typings, and how does that compare to the false-negative (the compiler doesn't catch a bug) rate of the proposed typings?

Duplicate #26378

I have hit this issue while developing a Vue.js component that accepts a value property which can be of type string | string[] | number | number[].
It is an option-list type component that allows a user to select either a single or multiple options from a given list, the options being indexed by string or number ids. The reason I'm not only accepting arrays as the value prop is that the component is bound directly to my form model, which is in turn created automatically from the view model, so keeping proper value type was a requirement.
Within the component however, it is handy to always work with the prop as an array, so I created a simple getter using the `[].concat()' trick. No biggie in vanilla JS but turned out to be an issue with TS. I have dealt with it like so:
get valueArray(): string[] | number[] {
    return ([] as (string | number)[]).concat(this.value || []) as string[] | number[];
}


resolves #1656 don't mangle URL inside tag

I'm not sure if this is the best way to exclude this type of match. Frankly, the way URLs is currently being detected is very dangerous in my mind, so we're just whacking moles here. I'd much prefer to move to a much more strict set of known match locations and perhaps require the regex to be configured externally.

Can you rebase please?

Certainly! Stay tuned.

Rebase completed @tdreyno.


Guidelines using socketcluster with pm2 monitoring?

So I'm almost ready for production! :D
I've been using pm2 during development with one broker, one worker and pm2 on single node fork mode.
Does anyone have experience using pm2 with socketcluster?
I image I would need to leave pm2 in fork mode and let socketcluster organize the clusters on it's own? I'm going to play around with it later on tonight and let everyone know incase they want to use pm2 as well.

Hey @roblav96 !
Glad to hear that you are almost ready. In order to help you, I will take excerpts from my own source code. Because, believe it or not, I am doing exactly that already within development in order to make sure that things actually work.
Since I didn't want ot use pm2 for my project, but a simpler project, I coded PowerHouse. In it, I can declare two kinds of workers; a child process and a forked process. They do sound similar, don't they?
And that is exactly where I ran against with SocketCluster.
Inside Node, you have two API's to create a new node instance:

child_process.fork(script): Spawn a new process using the specified script.
cluster.fork(): Create a copy of the current process and assign it as a child to this one.

This second one is SUPER important. Because if you use the ChildProcess method, cluster.isMaster() will return true in both processes. Also, within a ChildProcess forked process, the supplied script is the main one. So if it forkes inside there again, that script is always the main entry point.
Now that this is sorted, here are some things that you might want to know:

SocketCluster uses child_process.fork to spawn the worker process manager: https://github.com/SocketCluster/socketcluster/blob/master/lib/workercluster.js#L48
cluster.fork is used inside the manager to spawn the real workers.
child_process.fork is used to spawn the broker process, which ACTUALLY is an nData instance: https://github.com/SocketCluster/ndata/blob/master/index.js#L33

Yeah, that was one dive, right? And the answer?
Launch your SC server as a child_process.fork instance.

The process will think it is it's own, but it is not.
SocketCluster will work just as expected.
You can talk to the child using events, just like usual.

You can use the process' message event to communicate via JSON. You could also use some kind of RPC library like hprose to share functions, or to control the child process via remotely called functions. Your beer. :)
I never worked with pm2, but what I would suggest you is to make sure that your SC server runs as an isolated process through a ChildProcess fork. You can still use the sc-client or redis events to talk to the cluster - but, that is what I would recommend. In fact, that is exactly what I am doing myself!
To demonstrate:

Starting:

https://github.com/DragonsInn/BIRD3/blob/yii1_to_laravel5/app/bootstrap/nodejs/app.js#L51-L57
https://github.com/DragonsInn/BIRD3/blob/yii1_to_laravel5/app/Backend/Service/SocketCluster.js

Communicating: https://github.com/DragonsInn/BIRD3/blob/yii1_to_laravel5/app/Backend/Communicator.js

Redis acts as a global eventer. SC's broker process is aware of that using the sc-redis stuff. The web server process doesn't really care, since most communication is for backend stuff.
I hope this could give you an idea on hwo to setup your pm2 to properly run SC! :)

woah! Thanks for this amazing batch of help! I'll play around with this and let you know how I make out.

Hello - is it ok to to use this method for production? According to babel , the module isnt meant for production
https://github.com/babel/example-node-server/issues/13
Is there any other way possible though?


Feat: Tazama Relay Service

Tazama Relay Service for enabling TMS to relay messages to the desired destination (NATS, RabbitMQ, REST API).
The service needs a .env file for configuration and setting the desired destination. Please use the .env.template provided for reference. For deployment the Dockerfile will also require updates accordingly.
Further details are mentioned in the README.md, otherwise please feel free to reach out.

@UsamaAbdulMannan
Use logging library (contributing guide updated https://github.com/tazama-lf/.github/blob/main/CONTRIBUTING.md)
https://github.com/tazama-lf/frms-coe-lib/blob/dev/README.md
"@tazama-lf/frms-coe-lib": "5.0.0-rc.4"
a. For logging, the deserialization and logging part should happen asynchronously (so as not to affect performance)
b. Log with proper level - Error and Exceptions separate and Verbose logging separate including msgId (from deserialised message)


getAddressFromHex method parameter problem

How the hexAddress address is generated？

for generating address https://docs.strica.io/lib/typhonjs/classes/address.BaseAddress.html
for key derivation https://github.com/StricaHQ/bip32ed25519
also have a look at the tests for examples

I checked the test case and its parameters are hardcoded

do have a look at the links above for generating your keys, and let me know what exactly is your doubts/question

I have generated public and private keys and need to use public keys to generate addresses, but my public key is of type Uint8Array, I would like to know what type of parameter is the getAddressFromHex method

https://github.com/StricaHQ/bip32ed25519

ok thanks

I will close this issue, please feel free to create another issue if you have any doubts regarding typhonjs

Ok


homework11

https://github.com/anna-aleksandrova/programming_course2/pull/26/commits/69b57a4fb389440db97a20b3471d4b84fda2114b
There are commits there
нд, 3 лист. 2024 р. о 17:43 mecchmatProjects @.***>
пише:

@.**** requested changes on this pull request.
no files here
—
Reply to this email directly, view it on GitHub
https://github.com/anna-aleksandrova/programming_course2/pull/26#pullrequestreview-2411900713,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZYGQE4RHG5MQDKGE4VP5NDZ6ZOD5AVCNFSM6AAAAABRCSJN32VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDIMJRHEYDANZRGM
.
You are receiving this because you authored the thread.Message ID:
@.***
com>


The tooltip over relative time is ahead by 14 hours.

Gitea version (or commit ref): 1.9.0-rc2
Git version: git 2.20.1
Operating system: windows 2012r2
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No
[ ] Not relevant

Log gist:

Description
Please compare the tooltip and the win10 taskbar clock.
...
Screenshots

should be fixed by #7792


fails on example swagger document

https://apis-guru.github.io/api-models/github.com/v3/swagger.yaml

Please make sure your swagger file follows the Open API specifications: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#itemsObject
I see several instances where items objects in this file that interpolate between being a nested object and being a nested array. This is preventing the tool from being able to unmarshal the yaml into the Items struct and causing the tool to error.


Issue with Bootstrap 4 Flexbox Layout and Intervening Tags Between .row and .col-*

HTML frameworks (e.g. Angular 2) often generate their own custom tags which get injected into the HTML. Depending on how components are structured, that HTML can sometimes be injected in between the elements which define .row and .col-* settings. This actually works fine in the old-style bootstrap grid system. However, with the new Flexbox grid system in Bootstrap4, it causes the columns to stack rather than to display as expected.
It appears that any tag injected between a .row and .col- definition will cause this adverse column stacking behavior.
Following is a sample snippet which demonstrates the issue.
<!doctype html>

    <title>Bootstrap 4 Container Test</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="bootstrap-flex.css">

Way Back When

Theming with pure CSS in the old days was very challenging.

Recently

Bootstrap 1-3 made things a bit easier.

Moving Forward

Bootstrap 4 finally makes theming enjoyable.

Note: This was tested using<EMAIL_ADDRESS>

Given how CSS works, it's difficult, and often infeasible in the general case, to be robust to inserting arbitrary elements at arbitrary places in the DOM. So there might be no way around this besides tweaking your Angular code.

Well, Bootstrap 3 works fine, and Bootstrap 4 (non Flexbox version) works fine too. I am relatively hopeful that there is a workable solution here. This is particularly important given that Angular 2 is a major SPA framework and will only grow in popularity now that it is out of beta. I am sure a very high number of Angular developers would prefer to use Bootstrap. If this issue cannot be resolved, it might discourage them. I should point out that Angular is not the only framework that inserts its own tags or even div tags at odd places. Failure to fix this issue could have implications with a variety of frameworks.

There are likely no issues with the default grid systems because they are all block level and use floats. With flexbox, you'll need to appropriately set the display or flex on those in-between elements. This has to be done on your end selectively, otherwise we risk restyling far too many things for folks.


Scripts - Fix postinstall

We're running node scripts/* in post-install, but scripts folder is ignored from npm, this generate an error at install from NPM.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #4600   +/-   ##
=======================================
  Coverage   99.42%   99.42%
=======================================
  Files          74       74
  Lines        1745     1745
=======================================
  Hits         1735     1735
  Misses         10       10

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 12ad4ec...a0d9deb. Read the comment docs.


refactor: refactor sync providers

This PR
Revisits sync providers and refactor them.

unify event handling
packaging improvements
removal of unused codes (cleanup)
clean contracts between Runtime and Sync implementations

With this change, we get a clear isolation between runtime and sync providers (ex:- file, k8s, ....). For example, the runtime is not aware of any sync implementation details such as events. It simply coordinates sync impls, store (evaluator) and notifications. This should bring more extensibility when adding future extensions.
Below is the overview of the internals and interactions,

This looks like a great improvement to the current sync / eval implementation.
Ill test this properly once it is ready for review

go mod tidy leaves some deltas for me.


Install from VSIX then reload doesn't always complete installation

Azure Data Studio Version: 1.0
This has been reported by a number of PMs testing the SQL Server 2019 Preview extension

Steps to Reproduce:

Download the extension and Install from VSIX
Wait until prompted to reload Azure Data Studio
On reload go to the Extensions view and see it still shows "Reload" as required

Workaround: fully quit and reopen Azure Data Studio fixes the issue.

@kevcunnane I am not able to reproduce this issue either, are you still seeing this in the latest insider build?


CDC state events

Introduce state events by replacing action events related triggers and Kafka message model.
This PR relates to https://github.com/codebgp/bgp-data/issues/35
A separate PR for bgp-data will be created to use the docker image and DB scripts produced by this PR.

Btw short question: are the unit tests you wrote running at container build time? Or are they executed on-demand via the Makefile?

Btw short question: are the unit tests you wrote running at container build time? Or are they executed on-demand via the Makefile?

I split tests into unit and integration tests by making use of go build tags, which makes it possible to group tests and execute a group based on go test command argument -tags ....
Both groups of tests are executable via make.
For integration tests a script was added to setup postgres before running the tests.


Grobid allenai/ml CRF option

This PR adds the ability to train/tag with the allenai/ml library (jar included in this PR). The configuration isn't changed so merging this PR does not actually change the executing code path for Grobid. To use the new CRF stuff, you need to change to ai2 instead of wapiti in the Grobid config.
The model files for all tasks are also committed. They're comparable or smaller in size than Wapiti and MUCH smaller than the CRF++ ones.

LGTM.


Add 'isNamedDeclaration' helper to reduce casts

Especially helps with #22088 because testing (node as NamedDeclaration).name doesn't make (node as NamedDeclaration).name defined in future uses.

Hi. is this new Type Guard not exposed externally as all of the other Type Guards?
I'm using Typescript 2.8.3 and it's not listed inside of lib/typescript.d.ts so I get a compiler error when I try to use it in my code.
Thanks.

You can send us a PR to remove the /** @internal */ comment


Include all sub{resource,collection} identifiers in API config test

Updates this test to include typed subresource actions, and generic subresource/subcollection actions
@miq-bot add-label api, test
@miq-bot assign @abellotti

:musical_score:  catch'em all.  :+1:


Mechanaar respawn outaide

In Mechanaar dying causes a respawn at the graveyard instead of at the dungeon entrance.

This is a known issue with the respawn logic, it is poorly written and I do not have the time to update it right now. I am open to pull requests however. I will keep this issue open for obvious reasons.


Adding EF Core migrations

Fixes #258
ToDo:

[x] Documentation how to use it

@ncosentino
Just as an FYI that from now on I am moving away from "manual" SQL migration towards EF Migrations to make it easier for folks.


Stacked bar chart x axis time with min max has weird setting for ticks

Hi there
I have an issue with the configuration of a stacked bar chart with time on the x-axis. I am not yet sure if this is a potential bug.
I am filling the dataset with x and y values. X is as already mentioned a date in the following format: 2019-01-23T13:16:00.000Z
Before setting the x values I am putting the milliseconds, seconds and minutes to zero, so that the value is displayed for every full hour. Like this:
2019-01-24T14:00:00.000Z
I am setting also a min and max date which also works perfectly fine.
In my case:
min: 2019-01-22T00:00:00.000Z
max: 2019-01-30T00:00:00.000Z

The problem occurs on displaying the chart. Every time I display it the shown tick/date is an hour + 1 minute.
This is the configuration for my x and y scale:

And here the weird behaviour upon display of the chart:

What I tried to use so far:

round feature, same behaviour
tick with source data (which should be every full hour) - same behaviour

Expected behaviour:
The ticks are rounded or at least shown in every full hour like they were added as x value.
The step size is 6, so I expect the ticks to be 0, 6, 12, 18, 24.
Other info:

ChartJS Version: 2.7.3
using 3 datasets with x and y values
no use of data.labels

@cnschwarz can you create a pen or fiddle replicating this?

Hi,
I'm as well experiencing the issue, here is a stackblitz : https://stackblitz.com/edit/chartjs-wrong-ticks
Thank you

You  both are using MM as format for minutes. MM is 2 number month, use mm instead.

The step size is 6, so I expect the ticks to be 0, 6, 12, 18, 24.

Leave the Z out from min & max, so they are in same local timezone as is displayed.

@kurkle thank you very much, that resolved the issue. I will close it now.


Player statistics

It would be nice to track down player's statistics like deaths, etc.

Currently, the game isn't replayble, so this feature is redundant.


Various

Supersedes #42

Reorganize modules for cleaner lookup, avoid all completions defaulting to plant completions
Update for API changes Room -> Location
Fixes to get connected with Metrc sandbox

Non-crop completions were triggering crop completions (e.g. sales order start completion would trigger a crop start handler), so the refactor and file tree reorg resolves this.
Also the VendorJob now looks up the correct completion using the same code as the Batch handler instead of being hard coded.

Also incorporates a couple of portal API changes that came in over the weekend (includes on batch for harvests and discard now cause 500)


Error calculating the wind speed at a given position with OLAF.

HI,
I am currently working with OLAF in OpenFAST 2.4.0 (binaries downloaded directly from the release page) and I am getting the following error at a given point of my simulation (150 s out of 600 s):

FAST_Solution:FAST_AdvanceStates:SolveOption2c_Inp2AD_SrvD:InflowWind_CalcOutput:CalcOutput:IfW_Un
iformWind_CalcOutput:GetWindSpeed:Height must not be negative. Error calculating the wind speed
at position (1208.1, -20.183, -1.74038E-02) in the wind-file coordinates

Strangely, when I try to run using the same Elastodyn and Inflowfiles but change the Aerodyn to use BEM, the model works just fine. Furthermore, the platform degrees-of-freedom are disabled and the system is fully rigid, so the turbine is completely still. At the point that the simulation crashes, the results between OLAF and BEM are also quite comparable:

Here are some of the parameters that I am using for OLAF:

------------------- WAKE REGULARIZATIONS AND DIFFUSION -----------------------------------------
0       DiffusionMethod    Diffusion method to account for viscous effects {0: None, 1: Core Spreading, "default": 0}
0       RegDeterMethod     Method to determine the regularization parameters {0: Constant, 1: Optimized, 2: Chord-scaled, 3: dr-scaled, default: 0 }
3       RegFunction        Viscous diffusion function {0: None, 1: Rankine, 2: LambOseen, 3: Vatistas, 4: Denominator, "default": 3} (switch)
3       WakeRegMethod      Wake regularization method {1: Constant, 2: Stretching, 3: Age, default: 1} (switch)

------------------- SPEEDUP OPTIONS -----------------------------------------------------------
2       VelocityMethod     Method to determine the velocity {1:Biot-Savart Segment, 2:Particle tree, 3: Segment tree, default: 1}
1.5     TreeBranchFactor   Branch radius fraction above which a multipole calculation is used {default: 2.0} [only if VelocityMethod=2]
1       PartPerSegment     Number of particles per segment [only if VelocityMethod=2]

I can see a problem related to vortices below the ground in #1237 but it doesn't seem to be the problem I am having, since in my case, there is no warning, but a complete crash on the simulation. Any suggestions or ways to overcome the issue?

This issue is likely due to the internal extrapolation of inputs that happens in OpenFAST, leading to points being requested below the ground. Unfortunately, we do not have a solution for this at the moment.
Yet, I would recommend using the latest version of OpenFAST if possible, there have been some modifications to InflowWind when OLAF was being used, which should prevent errors when points are requested outside of the domain.
An alternative is to place the hub height higher, but that's not viable when shear is present.


change fasta for hg19

hg19_19 & hg19_36

fasta from https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_19/GRCh37.p13.genome.fa.gz
gtf from https://www.gencodegenes.org/human/release_36lift37.html for hg19_36
add viruses and decoys from GDC https://gdc.cancer.gov/about-data/gdc-data-processing/gdc-reference-files

related to #129

see scripts here for how these were built https://github.com/CCBR/build-renee-refs


Bump build no to attempt spawning 1st official build

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

This PR was superceeded by #2. Thanks for contributing.

You're welcome @ebknudsen and congrats on your 1st package on conda-forge. 😉 Is it "pure python" or are there c/c++ bits? (I would guess macOS can easily be made functional irrespective...)

This is pure python, so should indeed be reasonably simple and possible to do macOS.


Refactor saving PO reference into pivot table

First of all; amazing work and thanks for open-sourcing this!
Best practice is to not add columns to sales order or quote table. These tables (espeically the quote table) generally hold A LOT of records and it brings the shop down for sometimes hours when adding the column during deployment because MySQL is terribly inefficient at adding columns to tables with existing data. Better would be to create a new pivot table for this data so we can do blue/green deployments.
So for how to do this this excellent blog; https://m.academy/blog/programmatically-add-column-magento-2-sales-order-database-table/

This email address should be saved in a customer attribute through EAV, not a separate column.
We already have something internally for this, so I can supply a PR with most of the groundwork on the backend side. Let me know.


Token value is always returning null

I want to authenticate with backend server. For that, I need to send the token value to the backend server. But, I'm always getting null value in the token field. When I was searching in google, I found this.

You must configure Google Sign-In with the requestIdToken method to successfully call getIdToken. If you do not configure Google Sign-In to request ID tokens, the getIdToken method returns null.
Source : https://developers.google.com/identity/sign-in/android/backend-auth

This is not an issue. This is feature request. But, I couldn't add label here. Thanks.

please update to v0.3. both android and ios version should be good now

@sriraman @devfd
What should I configure GooogleSignin with to get an idToken?
I was configuring with my webClientId and offlineAccess but am always receiving idToken as null.
Any ideas?

@prithsharma : If you configure offlineAccess, then your idToken will always be null. But, You will get access token from the google. You should send that access token to your server and call https://www.googleapis.com/oauth2/v4/token with clientId, secret and token. Then, You will get the idToken from Google.

Got it. Just configuring with webClientId without offlineAccess gives idToken which I can send to my backend.
Thanks.

If you configure without offlineAccess, you wont get the access token. So, You can't access any other information after user logged in.


fix: server sql

Changes

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#715  👈
#714
#712
#711
#709
#708
#707
#706
#696
#695
#689
#688
#687
#686
#685
#684
#683
#682
#674
#673
#672
#671
#670
#669
#668
#667
#697
#641
#635
#633
#632 : 1 other dependent PR (#700 )
#628 : 1 other dependent PR (#629 )
#613
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @MasterPtato and the rest of your teammates on  Graphite


fix #421 - generate $Exact InputObject annotations

/label bug
/label flow
This fixes #421 by ensuring that all InputObject annotations are $Exact when using the flow-modern generator.
EDIT: I accidentally included the "typescript" label, and I don't see a way to remove it. If someone could remove that for me, it would be appreciated!

Thanks for the fix!


Neo4j 4.0.x Limit and Skip clauses now expect params to be Neo4j.int

I refer to the following issue on the driver repo:
https://github.com/neo4j/neo4j-javascript-driver/issues/547
We are in the progress of upgrading our Neo4j to 4.x and ran into the above error when using .limit(10) and .skip(10) as provided by this repository.
Steps to reproduce
Against a Neo4j 4.x, run:
     query.match([node(name, '')])
               .return(name)
               .limit(10)

expected result: first 10 records to be returned.
actual result: error thrown LIMIT: Invalid input. '10.0' is not a valid value
current workaround
replace all query.limit() and query.skip() calls with a query.raw() value
query.raw(`SKIP $skip`, { skip: neo4j.int(this.options.skip) })

Proposed fix
Replace the implementation of the limit and skip with a compatible version:
    this.amountParam = this.addParam(neo4j.int(amount), 'skipCount');

This should be bw/fw compatible, but might result in cypher snapshots during tests (like with ours) to fail.

Hey there. Thanks for the detailed bug report. I've created a fix and should be able to deploy it soon.

:tada: This issue has been resolved in version 6.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


add webp format of images

Added a folder consisting of all images in webp format
This PR fixes #137
Notes for Reviewers

Thanks a lot !! @Anshul02092003


Fix drc-testing-data filename

@mauricefallon please sign off on this and confirm that this change is okay. We didn't see the ...-new.vtp and since it is working with the ihmc.vtp I changed the filename. If it is not the right move, please add the -new.vtp file to drc-testing-data -- thanks!

i don't see the -new file on machine. yes, lets go with what you are suggesting there

Ok ready to merge then?


Existing VPC Config Clarification

I would like some clarification, on the existing VPC setup...  in the docs, it says that the etcd servers should be in the public subnet, but after quadrupal checking my config:
etcd-ips = "<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>"
public:  subnet-6dc85525: <IP_ADDRESS>/24
private: subnet-e6c954ae: <IP_ADDRESS>/24
Editing the Make file to match ETCD_IPS
I get.
Error applying plan:
3 error(s) occurred:

module.etcd.aws_instance.etcd[2]: 1 error(s) occurred:

aws_instance.etcd.2: Error launching source instance: InvalidParameterValue: Address <IP_ADDRESS> does not fall within the subnet's address range
status code: 400, request id: fd74d274-02f8-49af-b2cc-aae0a7dc054a

module.etcd.aws_instance.etcd[0]: 1 error(s) occurred:

aws_instance.etcd.0: Error launching source instance: InvalidParameterValue: Address <IP_ADDRESS> does not fall within the subnet's address range
status code: 400, request id: a85b6299-fa31-4071-9312-560980a921f6

module.etcd.aws_instance.etcd[1]: 1 error(s) occurred:

aws_instance.etcd.1: Error launching source instance: InvalidParameterValue: Address <IP_ADDRESS> does not fall within the subnet's address range
status code: 400, request id: 978a85cc-697e-45b9-a3bb-e4c15e1e6aca

Also, what visibility zones (public/private) should the following be in?
CIDR_VPC
CIDR_PODS
CIDR_SERVICE_CLUSTER
K8S_SERVICE_IP
K8S_DNS_IP
PKI_IP
Thanks,
Brian

Never mind I figured it out, you need at minimum 2 (AWS subnets) and 2 in unassigned space


Allow $Ref casting

Description

Add support for $ref casting

Test Coverage

[x] unit

References

Closes #135

Also worth pulling up again, @RyanNieuwoudt had brought up an interesting idea here

I had been wondering whether the problem could be solved by means of 'transform hooks', i.e. a mechanism in Illogical that would call user code before the expression is evaluated and allow for arbitrary transformations (type casting, string cleanup, whatever) to take place first.

This will allow for evaluation/cleanup of the operands pre evaluation by illogical at runtime
Example usercases
Complex evaluations
[
  ">",
  "YEAR($BusinessStartDate)",
  "MINUS(CURRENT_YEAR(), 3)"
]

instead of having this resolved by illogical (which indeed it shouldn't), we can implement hooks into the operand resolver, pass in the operand as a parameter (in above case return new operand for "YEAR($BusinessStartDate)" as year component of $BusinessStartDate, new operand for "MINUS(CURRENT_YEAR(), 3)" as currentYear - 3).
Date comparison
[
  ">",
  "$BusinessStartDate",
  "2009-02-03"
]

can also easily be handled by first converting both operands to unix timestamps.
I feel having such flexibility will allow illogical's comparison expression evaluators ge, gt etc work as expected by delegating the operand cleanups to the calling code.
Hope i'm speaking English and not Korean? :laughing:

Also worth pulling up again, @RyanNieuwoudt had brought up an interesting idea here

I had been wondering whether the problem could be solved by means of 'transform hooks', i.e. a mechanism in Illogical that would call user code before the expression is evaluated and allow for arbitrary transformations (type casting, string cleanup, whatever) to take place first.

This will allow for evaluation/cleanup of the operands pre evaluation by illogical at runtime
Example usercases
Complex evaluations
[
  ">",
  "YEAR($BusinessStartDate)",
  "MINUS(CURRENT_YEAR(), 3)"
]

instead of having this resolved by illogical (which indeed it shouldn't), we can implement hooks into the operand resolver, pass in the operand as a parameter (in above case return new operand for "YEAR($BusinessStartDate)" as year component of $BusinessStartDate, new operand for "MINUS(CURRENT_YEAR(), 3)" as currentYear - 3).
Date comparison
[
  ">",
  "$BusinessStartDate",
  "2009-02-03"
]

can also easily be handled by first converting both operands to unix timestamps.
I feel having such flexibility will allow illogical's comparison expression evaluators ge, gt etc work as expected by delegating the operand cleanups to the calling code.
Hope i'm speaking English and not Korean? 😆

This one is very interesting, so pretty much dynamic registration of function expressions/evaluation - worth of separate discussion.

though, one quick note, doing so, this library would not anymore would be able to evaluate correctly the briza questionnaire by itself.

had a discussion with Lily about it, should we then result to returning undefined here?

Yes, simply not coverable, at least at this moment - in this PR, to number.

Yes, simply not coverable, at least at this moment - in this PR, to number.

I've updated. This PR kinda blocks a lot of LM questions so hopefully i can get this over with today

LGTM!
When released, let's double check that API and Binder still works as expected

🙌🏻 Nice work! Thank you for working through all these permutations.


chore(artifacts): add typed digests with useful methods

Fixes
Fixes WB-NNNN
Fixes #NNNN
Description
What does the PR do?
Testing
How was this PR tested?
Checklist

[ ] Include reference to internal ticket "Fixes WB-NNNN" and/or GitHub issue "Fixes #NNNN" (if applicable)
[ ] Ensure PR title compliance with the conventional commits standards

🤖 Generated by Copilot at e4ff753

No more confusion in the hashutil domain
We forge new classes for each digest type
With common methods and validations we reign
We crush the bugs with our refactored might

Current dependencies on/for this PR:

main

PR #5414   👈

This comment was auto-generated by Graphite.


Will you release the code, thanks.

Thanks for your interest, we have released the source code.

您好，请问你代码的超参数怎么调整？直接跑出来的结果和您的有差别。谢谢回复。


[Feature Fix] Profile settings reorder fix

Purpose
This resolves issue #1506 . The last and first position reordering for the employment and education tag in Profile Information was non-functional.
Changes
The the default setting for tolerance of a sortable instance is intersect (elements must overlap more than 50%). That amount of overlap was not possible for the first and last items of the list. Set tolerance to pointer so that the overlap of elements is determined by where the mouse is located on the screen.
Reference: [jQuery UI API] (http://api.jqueryui.com/sortable/#option-tolerance)
Side effects
The entries are reordered based off of any overlap of the pointer and another entry.

Nice work! :octopus:

@sloria I think that changing the settings in the two templates is enough to fix the problem. Should I change knockout-sortable.js back to its original and create a pull request?

@leb2dg That would be great. Thanks!

Great work @leb2dg !!


Index points validation

TractableStageDamage failing because of an error in deterministic structure.

The tractable stage damage tests are failing because of a bug described in #761. I don't think this has to do with my code, i think it has to do with a structure inventory that has fatal errors. I vote we merge this PR in to main.

The tractable stage damage tests are failing because of a bug described in #761. I don't think this has to do with my code, i think it has to do with a structure inventory that has fatal errors. I vote we merge this PR in to main.

I think I would rather fix the bugs and get the tests running before we go into main which I'll attempt to get done today. @Brennan1994 if you have other thoughts, I'll follow your lead.

Yeah, lets fix this before we get it in. I feel like we're being punished a little for letting this sit too long.

The test is passing so I think we can merge. We still have a situation where we could end up passing null objects around. First step to fixing will be to address Issue #777.


Searchbar

Fixes search bar UI issue #7490 . Updated how search bar looks using PatternFly and updated tests.

/assign @starpit


bump to Omnipay 3.0 (alpha) versions

fixes #26

Would love to see this merged so it will work with symfony/http-foundation v4. Great work @kochen!

Doesn't this package use any requests at all?


Add a quickstart guide

Closes #4

Sorry for the delay, I think that is the changes implemented :))


The portal indicates "_" underscore is allowed in user assigned managed id by this article doesn't.

The portal indicates "_" underscore is allowed in user assigned managed id but this article doesn't mention it (in important note).

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

ID: 0b3b66e0-5c12-7859-4106-faaa5544fac6
Version Independent ID: 63066fab-2b7c-c592-c9a8-738155c6abff
Content: Manage user-assigned managed identities - Microsoft Entra
Content Source: articles/active-directory/managed-identities-azure-resources/how-manage-user-assigned-managed-identities.md
Service: active-directory
Sub-service: msi
GitHub Login: @barclayn
Microsoft Alias: barclayn

@travelmarx
Thanks for your feedback! We will investigate and update as appropriate.

@travelmarx
Thanks for bringing this to our attention.
I'm going to assign this to the document author so they can take a look at it accordingly
@barclayn
Could you Please review this and update as appropriate.

@travelmarx thank you for your feedback. I have updated the article. #please-close


VM getting stuck in reboot

We have a deployed an instance of Linux on Azure VM. When we give command "reboot" within the VM, all the systemd services are shutdown and when control passes to kernel reboot remains stuck forever until VM is restarted from portal. Can you please provide some pointers that can be possibly causing shutdown to stuck?
These are the messages captured from Serial console
[  315.016374] systemd-shutdow: 45 output lines suppressed due to ratelimiting
[  315.023270] systemd-shutdown[1]: Sending SIGTERM to remaining processes...
[  315.035614] systemd-journald[1712]: Received SIGTERM from PID 1 (systemd-shutdow).
[  315.537814] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
[  315.552701] systemd-shutdown[1]: Unmounting file systems.
[  315.558369] systemd-shutdown[1]: Unmounting /var/lib/nfs/rpc_pipefs.
[  315.703531] EXT4-fs (sda1): re-mounted. Opts: (null)
[  315.710196] EXT4-fs (sda1): re-mounted. Opts: (null)
[  315.714682] EXT4-fs (sda1): re-mounted. Opts: (null)
[  315.718823] systemd-shutdown[1]: All filesystems unmounted.
[  315.723325] systemd-shutdown[1]: Deactivating swaps.
[  315.727453] systemd-shutdown[1]: All swaps deactivated.
[  315.731688] systemd-shutdown[1]: Detaching loop devices.
[  315.737437] systemd-shutdown[1]: All loop devices detached.
[  315.741674] systemd-shutdown[1]: Detaching DM devices.
[  315.922967] kvm: exiting hardware virtualization

========================================================

@rjoshi83 thanks for reaching out. The purpose of this GitHub repo is to report issues on documentation. If you are having a generic issue with your environment please open an issue on MSDN, Stack Overflow or if you have a support contract you can open a Technical Support Ticket so an engineer can assist you.
If this is related to a specific doc feel free to reference that and we can take a look.
To add some thoughts to your inquiry, not sure why exactly the reboot would be stuck if done from within the machine or from the portal. The two processes should be quite similar so it is odd it is getting stuck. I would make sure your OS is completely updated and if possible, spin up a second VM with similar OS type to see if it happens there to. That way you can determine if it is an issue with that specific build or with your VM itself.

@MicahMcKittrick-MSFT Appreciate your response. Sure I will find correct forum to ask this question as we are getting this issue across all the VMs deployed. Thanks


Single-precision optimization

This commented-out line suggests we are doing single-precision optimization, which may not be enough for good convergence behavior. It might be worth checking if the output parameters of the jaxopt calls are jax arrays of doubles, and if not, assess if using double precision improves convergence issues.
https://github.com/matsengrp/multidms/blob/79dc61a989387b6a070be9e8f65afc24b1903c08/multidms/biophysical.py#L41

Thanks, @WSDeWitt IIRC I saw no tangible difference, for instance, between the manuscript results from the first submission (double precision), and this iteration or results which is indeed float32 single precision.
That said, I could have missed something without good error-through-iterations data - this should be done with the new convergence functionality that I'm working on now over in #149

This has been addressed in #151 - Let's close this when that get's merged.


PostProcess time is too long

Hello,I tested your postprocessGPU function.the result is 60+ms! in nvidia A6000， then I  test  cuda fucntion  "sort_by_key" and "_raw_nms_gpu"，it costs average 7.5ms  "sort_by_key" every taskidx and 1~7ms "_raw_nms_gpu",so why it costs so long time

sorry for my late reply, it may be related to the difference in GPU architectures,  all my samples are tested on RTX3080. Also, generally, the first sample will take some time, you may compute time from the second sample.

Haven't received responses for a long time

I have the same question!

sorry for my late reply, it may be related to the difference in GPU architectures, all my samples are tested on RTX3080. Also, generally, the first sample will take some time, you may compute time from the second sample.

I have the same question!
To be more specific, the question here is not about the difference of postprocess time across different GPU architectures. It's about the inconsistency between the whole postprocess time (60+ms) and the sum of the time consumption of individual components(_find_valid_score_num + sort_by_key + _raw_nms_gpu + _gather_all)


fix: ignore fragment-only links

Description
This PR ignores links like #abc-def for the trailing slash link checker
Linked Issues
Resolves #48

Amazing, thank you!


2019.2.4-Hotfix: New UI: Contribution - Right nav doesn't follow when scrolling down

See #1524

Completed


AddMult bilinearform support for PA,EA, etc...

Hi all,
It would be nice to have general support for AddMult for the different assembly types in bilinearform:
https://github.com/mfem/mfem/blob/baf9090c887e08058f0e93c01274b4cb4e069a19/fem/bilinearform.hpp#L273-L275

This would still be good to do.

Can this issue be resolved even if the solution is to just do something like this in the short term?
void BilinearForm::AddMult(const Vector &x, Vector &y, const double a) const
{
   if (ext)
   {
      ext->AddMult(x, y, a); // Use default Operator::AddMult.
   }
   else
   {
      mat->AddMult(x, y, a);
   }
}

As it stands, this is kind of a bug since mat doesn't get assembled if an extension is used, and my workaround is to call Operator::AddMult everywhere to avoid this.

@victor-decaria-nnl, yes, we can do that. We should check to make sure the behavior is consistent between the the two case in the if statement -- for example when the Mesh is nonconforming.
Do you want to propose a PR?  Alternatively, we can try to resurrect @artv3's PR #3045 (I'm not sure why Arturo gave up on that and closed it).

@v-dobrev #3045 looks a bit involved. I can propose a workaround PR for the time being.


toYaml (or nindent) is adding extra whitespace/newlines

So in a values section I am trying to do:
#like inside a release
    values:
      - {{ .Values.somekey | toYaml | nindent 8 }}

And in the following phase it shows up the correct offset on the first line but with an unexpected newline in between, as well as one following the end. I can kind of work around it via:
    values:
      - _padding: here
{{ .Values.somekey | toYaml | indent 8 }}

In this case it doesn't add a preceeding newline, but does at the end.
In cases where trying to extract from a map into a yaml expression this makes things a bit difficult and ugly. Took a brief look at the two ToYaml definitions, but both are simple enough that perhaps the underlying yaml implementation is adding space/newlines?

Hmmmmm. I see it in the debug output still, but it's not causing me grief the way it was before, possibly due to something else I fixed as I was hacking on my helmfile.
If it's not hurting anything for me or anyone else, I guess this can be closed?

@jhohertz Hey! I tried but couldn't reproduce this on my macOS machine.
$ cat helmfile.yaml
values:
- resources:
  - apiVersion: v1
    kind: ConfigMap
    data:
      foo: FOO

releases:
- name: foo
  chart: incubator/raw
  values:
  - {{ .Values | toYaml | nindent 4 }}

$ helmfile build
---
#  Source: helmfile.yaml

filepath: helmfile.yaml
helmBinary: helm
values:
- resources:
  - apiVersion: v1
    data:
      foo: FOO
    kind: ConfigMap
releases:
- chart: incubator/raw
  name: foo
  values:
  - resources:
    - apiVersion: v1
      data:
        foo: FOO
      kind: ConfigMap
templates: {}
missingFileHandler: ""

What was your helmfile version and OS?

v0.118.5 on ubuntu 20.04
Now I look at my build output, I think it's a quirk of the debug output only that I got hung up while chasing some issue I was having, from your example:
second-pass rendering result of "helmfile.yaml.part.0":
 0: values:
 1: - resources:
 2:   - apiVersion: v1
 3:     kind: ConfigMap
 4:     data:
 5:       foo: FOO
 6:
 7: releases:
 8: - name: foo
 9:   chart: incubator/raw
10:   values:
11:   -
12:     resources:
13:     - apiVersion: v1
14:       data:
15:         foo: FOO
16:       kind: ConfigMap

But it doesn't show in the final output.
Sorry for the false alarm.

@jhohertz Thansk! Ah gotcha - I do see the same redundant new line only in the debug log. Not sure why though.
Please let me inform you if I find any real issue regarding this, and/or some up with a fix.


Test Bench!!!

We really need a test bench with the CLI that will test all available commands over USB and over SSH. Currently, we've been just running all commands we can think of manually and it's not good. This is critical for making a CLI that will scale.
I think the first task is to break up all of the commands into a parsable JSON file so they can be gobbled up by the test runner.

I'm starting to work on the unit tests in earnest now. One thing that's holding me back is that each of the functions that we want to test (list, wifi list, run, push, etc.) doesn't actually have return values. In most cases, these commands just run and data is printed out as need be within the commands.
It seems like for the sake of simpler testing and for the sake of having a library that can be called by other Node libs, these functionalities should return structured data.


chore: convert module.exports

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


Add OctaviOS to Android 12 ROMs

OctaviOS has Android 12 builds for daisy:
Download: https://octavi-os.com/downloads (hotlinking not supported, search for "daisy")
XDA thread: https://forum.xda-developers.com/t/rom-12-daisy-octavios-3-0-official.4190367/

added. thanks

@Caticer The date is backwards 😁

lmao I just realized (I copied the date from their download page)


How to export the template of one resource?

https://github.com/Azure/azure-libraries-for-net/blob/151496e1f28cad3759cb6861b975994aeb1e8196/src/ResourceManagement/ResourceManager/ResourceGroup/ResourceGroupImpl.cs#L99
Hi All,
I want to export all templates of my resource groups. My resource groups have more than 200 resources and returns the following error: 'Export template is not supported for resource groups that have more than '200' resources.'
When I look into the Azure API documentation (https://docs.microsoft.com/en-us/rest/api/resources/resource-groups/export-template) it states that it is also possible to provide the: 'The IDs of the resources to filter the export by.'. Unfortunately, specifying the IDs is not supported in the library because it always specifies '*' in the code.
How can I export, with this library, a template per resource?

Hi @StannieV , sorry for the late reply.
The type that returned by GetByResourceGroup method is Pageable, which inherits from IEnumerable. So you can use code below to traverse the returned resources.
ArmClient armClient = new ArmClient(new DefaultAzureCredential());
ResourceGroup resourceGroup = await armClient.DefaultSubscription.GetResourceGroups().GetAsync(resourceGroupName);
foreach (var resource in armClient.DefaultSubscription.GetGenericResources().GetByResourceGroup(resourceGroupName))
{
    var export = await resourceGroup.ExportTemplateAsync(new ExportTemplateRequest { Resources = { resource.Id }, Options = "IncludeParameterDefaultValue,IncludeComments" });
    var templateJson = JsonConvert.SerializeObject(export.Value.Template, Formatting.Indented);
    Console.WriteLine(templateJson);
}

Please let me know if it works for you.

Hi @Yao725, your code is not that different and also throws the same exception. The issue is in retrieving all the services. In the 'PublicIPAddresses' service with an SKU tier value: 'Regional' which is not supported. Did your resource group also contain a 'PublicIPAddresses' service?

@StannieV Hi, I'm actually just trying to count the resources in each resource group - so I'm not trying to query specific resources. I have code like this:
var resources = await subscription.GetGenericResources().GetByResourceGroupAsync(groupName).ToListAsync();
And that will just blow up on some resource groups. The simplest one that I have is a resource group that contains just three resources, an App Service Plan, a Function App and a Storage Account.
Having iterated over the resource groups in our subscription, I collected the distinct exception messages that I got - and they are here:
Unknown SkuTier value. (Parameter 'value') Actual value was Dynamic.
Unknown SkuTier value. (Parameter 'value') Actual value was PremiumV2.
Unknown SkuTier value. (Parameter 'value') Actual value was ElasticPremium.
Unknown SkuTier value. (Parameter 'value') Actual value was Regional.
Unknown SkuTier value. (Parameter 'value') Actual value was BusinessCritical.
Unknown SkuTier value. (Parameter 'value') Actual value was System.
For my use case, I really don't care about the SkuTier, and I certainly don't care if it's an enum versus a string.
If there's anything else you need, please let me know 👍

@Yao725 Just FYI - I pulled the azure SDK repo, and changed the SKU Tier to a string in the Azure.ResourceManager project (and made the consequential changes to serialization) and it worked just fine. Obviously that might result in more changes in other projects (seeing as there seem to be a lot of SkuTier.cs files in the repo as a whole), but I thought at least that might be a useful data point.

@mattwhitfield , thanks for your feedback, I will fix it according to the swagger definition ASAP.

@Yao725 when will this be pushed to Nuget? Seeing the same thing in Azure.ResourceManager 1.0.0-beta6

@Yao725 when will this be pushed to Nuget? Seeing the same thing in Azure.ResourceManager 1.0.0-beta6

Hi @isaacrlevin , the new version of Azure.ResourceManager will be pushed to Nuget at the end of Dec.

Close it as this issue will be fixed with next release of Azure.ResourceManager.

@Yao725 Thank you very much.


add:CodeSumeet

Description

Added profile
Related Issues

Changes Proposed

Added profile object in the ProfileList.json

Checklist

[x] I have read and followed the Contribution Guidelines.
[x] All new and existing tests passed.
[x] I have updated the documentation to reflect the changes I've made.
[x] My code follows the code style of this project.
[x] The title of my pull request is a short description of the requested changes.

Screenshots
Note to reviewers

removed package-lock.json


Servlet path has to be included in path of every endpoint

Actual behavior (the bug)
I'm mounting (standalone) Javalin servlet on non-root path of manually initialized Jetty:
org.eclipse.jetty.server.Server server = ...
org.eclipse.jetty.webapp.WebAppContext webappContext = ...

Javalin javalin = Javalin.createStandalone(...);

webappContext.addServlet(new ServletHolder(javalin.javalinServlet()), "/rest/*");

javalin.routes(() -> {

	// doesn't work
	ApiBuilder.get("/bug", handler);

	// works
	ApiBuilder.get("/rest/hello", handler);

});

It doesn't matter even if I construct Javalin with JavalinConfig.routing.contextPath set to /rest/.
Expected behavior
Servlet path is automatically prepended to registered paths, so it doesn't have to be repeated in every path registered.
To Reproduce

Clone: https://github.com/gkresic/muddy-waters
Build beluga sub-project: ./gradlew :beluga:build
Run beluga: beluga/build/install/beluga/bin/beluga
Try accessing following REST endpoints:
1.1 curl http://localhost:16008/rest/hello (works)
1.1 curl http://localhost:16008/rest/bug (doesn't work, returns Not Found)

Additional context
This is also visible in official tutorial on how to configure Javalin in external servlet container:
https://javalin.io/2018/11/15/javalin-embedded-example.html

Hi @gkresic,
The only thing Javalin does with config.routing.contextPath is pass it to a ServletContextHandler, which is then attached to the Jetty server. This seems to work fine. Could you create a minimally broken example and put it in a comment?

Are you sure webappContext.addServlet(new ServletHolder(javalin.javalinServlet()), "/rest/*"); actually uses a context path and not just a subpath?

According to sources it's a "pathSpec":
    /**
     * Convenience method to add a servlet.
     *
     * @param className the servlet class name
     * @param pathSpec the path spec to map servlet to
     * @return the ServletHolder for the added servlet
     */
    public ServletHolder addServlet(String className, String pathSpec)
    {
        return getServletHandler().addServletWithMapping(className, pathSpec);
    }

Are you sure you want to set a context-path, and not something like "global subpath" ?
What do you want to be returned when users call HttpServeletRequest#getContextPath and  HttpServeletRequest#getPathInfo ?

Right, I named those parameters wrong, there are actually 3 different parts of path:

context path (in my example it's simply /)
servlet "path spec" (in my case /rest)
finally, there's an endpoint path (everything else)

I'm not suggesting anything should be done at servlet/Jetty part, but simply to make Javalin aware of them both and include them automatically when mapping incoming requests.
I'm trying to make future changes more robust, so when someone changes context path or mounts servlet on different path spec (let's say, decide to use /api instead of /rest) everything else continues to work.

So is it fair to say that this is a feature request for making Javalin aware of which subpath/path-spec it's hosted on, or is there still something here related to context-paths?

Just tested it, and context path doesn't affect route definitions in Javalin, only servlet path spec does.
I agree, it should be marked as feature request.

@gkresic would you like to submit a PR for this? I'd be happy to assist either here or on Discord 😊

@tipsy Hi David.
It's been a while and we decided for a different approach in the end. I still find Javalin as a great tool, but it didn't meet our specific needs.

Okay, thanks for the update!


Jax backend

Yeah that's a good observation. I think we should change those tests to be deterministic. Will do that in the next CL.


Request: option to use current tab instead of opening a new one when switching

Description
Sometimes you wind up on an aws service but in the wrong profile, would be nice to just replace the current page instead of always opening a new browser tab. Checkbox in settings would do it (default to current behavior, obvs).

I added a setting for this, let me know if you run into any problems.