What is the intended use of isDisabled in @react-aria/button useButton

Thanks for maintaining react-aria; I'm very interested in adopting this library in my project.
❔ Question

What is the intended way for consumers to render disabled buttons when using useButton?
Under what conditions should a button be allowed to render as disabled, and what is the rationale?

I see an opportunity to improve the hook itself or its documentation to help explain its treatment for disabled buttons.
Reference: https://react-spectrum.adobe.com/react-aria/useButton.html
🔦 Context
For question 1, about the intended way to use useButton, this is how useButton returns props:
https://github.com/adobe/react-spectrum/blob/c2c187606d447a6daa185e0b0507c22883ab3147/packages/%40react-aria/button/src/useButton.ts#L93-L98
The disabled prop is set based on the value of isDisabled and other conditions, such as whether or not the element is an input. As a personal rule, I try to avoid disabled buttons whenever possible. However, in the event where I do want to render a disabled button, along with helpful user-facing information on how to enable it again, what should the developer do to render disabled={true} in a component that consumes useButton?
💻 Code Sample
I want to be able to pass disabled as a standard attribute to a component like so:
// react input 1
<Button disabled isSubmit>Submit form</Button>

// html output 1
<input value="Submit form" type="submit" />

// react input 2
<Button disabled>Add to cart</Button>

// html output 2
<button type="button">Add to cart</button>

It does not work the way I expect. However, it works if I pass isDisabled like so:
// react input 1
<Button isDisabled isSubmit>Submit form</Button>

// html output 1
<input value="Submit form" type="submit" disabled="true" />

// react input 2
<Button isDisabled>Add to cart</Button>

// html output 2
<button type="button" disabled="true">Add to cart</button>

This may relate more to question 2, under what conditions is a button allowed to be disabled? I'm guessing it should not be possible to render a <button> as disabled, yet it is possible when I pass isDisabled={true}. I'm also guessing it's okay for an <input type="submit" /> to render as disabled judging the useButton source code.
https://github.com/adobe/react-spectrum/blob/c2c187606d447a6daa185e0b0507c22883ab3147/packages/%40react-aria/button/src/useButton.ts#L72
🌍 Your Environment

Software
Version(s)

react-spectrum
<EMAIL_ADDRESS>

Browser
Chrome 87

Operating System
macOS 10.15.7

🧢 Your Company/Team
Not affiliated with Adobe, an external developer.

Thanks for the question. When we came up with the API we standardized on using 'is' for boolean properties like disabled, quiet, emphasized, justified, selected, readOnly, etc. This consistent api does mean that properties don't always mirror default html element attributes. In you component using useButton you can use disabled and convert it to isDisabled when passing the property into useButton.
Can you provide more explanation or an example for your question on why disabled? If it is a design pattern being used by an app I could see a form that doesn't have all the required fields completed having a disabled form submit button.

Thanks for the question. When we came up with the API we standardized on using 'is' for boolean properties like disabled, quiet, emphasized, justified, selected, readOnly, etc. This consistent api does mean that properties don't always mirror default html element attributes. In you component using useButton you can use disabled and convert it to isDisabled when passing the property into useButton.
Can you provide more explanation or an example for your question on why disabled? If it is a design pattern being used by an app I could see a form that doesn't have all the required fields completed having a disabled form submit button.

Thanks for your response. My main concern with the useButton API is the fact that isDisabled is not a documented prop on the react-aria website. My team came up with a visual design for disabled buttons, and in order to render that style I plan on using the following CSS:
.button {
  font-size: 1rem;
  padding: 0.5rem 1rem;
  border: 0;
  border-radius: 1rem;
  font-weight: 700;

  &[disabled="true"] {
    opacity: 0.3;
  }
}

In a plain HTML example, this would style correctly since the developer would write <button class="button" disabled="true">Buy now</button> and it would render correctly. However, that won't happen with the current implementation of useButton since I would need to listen for the disabled prop and write my own logic to replace it with isDisabled as you suggested; and since isDisabled is not documented, I would assume the prop is brittle and can be removed in an upcoming version without notice. Consistent name conventions such as the is prefix may be useful for react-aria maintainers, but does it improve the experience for react-aria consumers?

Can you provide more explanation or an example for your question on why disabled?

I think this question is an important one, and I'm happy to respond. Small disclaimer, I am not an interaction designer, but I understand the general consensus that disabled interactive elements generally hamper the user experience for everyone, and users of assistive technology especially. My personal rule is, "if it is disabled, it is invisible to the user." The example you gave (a form is incomplete and cannot be submitted) is the most likely implementation of it. Good form validation is complex to implement.
I've worked on projects with forms that do not have their submit buttons disabled, and when users click on it they will receive an error message with suggestions on how to complete the form. It's easier to develop, but the user won't know a form field is invalid until they submit the form, which causes friction.
Another approach is to provide client-side validation for each form input to help guide the user into properly completing the form's required fields before submitting. The submit button at the end of the form would be disabled (and practically invisible), but in its place would be a skip-link to the first incomplete required input field along with a brief explanation on how to complete the field.

I hope this illustrates my situation better. If the intent of react-aria is to put guard rails on potentially bad patterns such as disabled buttons that provide no alternative context for users, then I support that, but please document this and cite sources for rationale. isDisabled can potentially help developers stop and think about why they're disabling buttons at all and improve the web. Alternatively, the disabled attribute can be supported and explained with an example. Both options are a documentation and educational opportunity for useButton consumers.
React button example that renders as an input type=submit, or regular button depending on props
import { forwardRef } from 'react'
import PropTypes from 'prop-types'
import styled from 'styled-components'
import { useButton } from '@react-aria/button'

const StyledButton = styled.button`
  font-size: 0.875rem;
  padding: 0.5rem 1rem;
  border: 0;
  border-radius: 1rem;
  font-weight: 700;
  box-shadow: 0px 0px 2px rgba(23, 43, 77, 0.04), 0px 3px 2px rgba(23, 43, 77, 0.08);

  &[disabled] {
    opacity: 0.3;
  }
`

const PrimaryButton = styled(StyledButton)`
  background-color: #f3872f;
  color: #ffffff;

  &:hover {
    background-color: #f6a563;
  }
`

const SecondaryButton = styled(StyledButton)`
  background-color: #ffffff;
  color: #061938;
  border: 1px solid #dfe1e6;

  &:hover {
    background-color: #f4f5f7;
  }
`

const variantMap = {
  primary: PrimaryButton,
  secondary: SecondaryButton
}

const Button = forwardRef((props, ref) => {
  const { buttonProps } = useButton(props, ref)
  const { variant, isSubmit, children } = props

  const RenderButton = variantMap[variant]

  if (isSubmit) {
    return (
      <RenderButton
        {...buttonProps}
        as="input"
        type="submit"
        ref={ref}
        value={children}
      />
    )
  }

  return (
    <RenderButton type="button" {...buttonProps} as={variantMap[variant]} ref={ref}>
      {children}
    </RenderButton>
  )
})

Button.propTypes = {
  variant: PropTypes.oneOf(['primary', 'secondary']),
  isSubmit: PropTypes.bool,
  children: PropTypes.node.isRequired
}

Button.defaultProps = {
  variant: 'primary',
  isSubmit: false
}

Button.displayName = 'Button'

export default Button

Thanks for your response. My main concern with the useButton API is the fact that isDisabled is not a documented prop on the react-aria website. My team came up with a visual design for disabled buttons, and in order to render that style I plan on using the following CSS:
.button {
  font-size: 1rem;
  padding: 0.5rem 1rem;
  border: 0;
  border-radius: 1rem;
  font-weight: 700;

  &[disabled="true"] {
    opacity: 0.3;
  }
}

In a plain HTML example, this would style correctly since the developer would write <button class="button" disabled="true">Buy now</button> and it would render correctly. However, that won't happen with the current implementation of useButton since I would need to listen for the disabled prop and write my own logic to replace it with isDisabled as you suggested; and since isDisabled is not documented, I would assume the prop is brittle and can be removed in an upcoming version without notice. Consistent name conventions such as the is prefix may be useful for react-aria maintainers, but does it improve the experience for react-aria consumers?

Can you provide more explanation or an example for your question on why disabled?

I think this question is an important one, and I'm happy to respond. Small disclaimer, I am not an interaction designer, but I understand the general consensus that disabled interactive elements generally hamper the user experience for everyone, and users of assistive technology especially. My personal rule is, "if it is disabled, it is invisible to the user." The example you gave (a form is incomplete and cannot be submitted) is the most likely implementation of it. Good form validation is complex to implement.
I've worked on projects with forms that do not have their submit buttons disabled, and when users click on it they will receive an error message with suggestions on how to complete the form. It's easier to develop, but the user won't know a form field is invalid until they submit the form, which causes friction.
Another approach is to provide client-side validation for each form input to help guide the user into properly completing the form's required fields before submitting. The submit button at the end of the form would be disabled (and practically invisible), but in its place would be a skip-link to the first incomplete required input field along with a brief explanation on how to complete the field.

I hope this illustrates my situation better. If the intent of react-aria is to put guard rails on potentially bad patterns such as disabled buttons that provide no alternative context for users, then I support that, but please document this and cite sources for rationale. isDisabled can potentially help developers stop and think about why they're disabling buttons at all and improve the web. Alternatively, the disabled attribute can be supported and explained with an example. Both options are a documentation and educational opportunity for useButton consumers.
React button example that renders as an input type=submit, or regular button depending on props
import { forwardRef } from 'react'
import PropTypes from 'prop-types'
import styled from 'styled-components'
import { useButton } from '@react-aria/button'

const StyledButton = styled.button`
  font-size: 0.875rem;
  padding: 0.5rem 1rem;
  border: 0;
  border-radius: 1rem;
  font-weight: 700;
  box-shadow: 0px 0px 2px rgba(23, 43, 77, 0.04), 0px 3px 2px rgba(23, 43, 77, 0.08);

  &[disabled] {
    opacity: 0.3;
  }
`

const PrimaryButton = styled(StyledButton)`
  background-color: #f3872f;
  color: #ffffff;

  &:hover {
    background-color: #f6a563;
  }
`

const SecondaryButton = styled(StyledButton)`
  background-color: #ffffff;
  color: #061938;
  border: 1px solid #dfe1e6;

  &:hover {
    background-color: #f4f5f7;
  }
`

const variantMap = {
  primary: PrimaryButton,
  secondary: SecondaryButton
}

const Button = forwardRef((props, ref) => {
  const { buttonProps } = useButton(props, ref)
  const { variant, isSubmit, children } = props

  const RenderButton = variantMap[variant]

  if (isSubmit) {
    return (
      <RenderButton
        {...buttonProps}
        as="input"
        type="submit"
        ref={ref}
        value={children}
      />
    )
  }

  return (
    <RenderButton type="button" {...buttonProps} as={variantMap[variant]} ref={ref}>
      {children}
    </RenderButton>
  )
})

Button.propTypes = {
  variant: PropTypes.oneOf(['primary', 'secondary']),
  isSubmit: PropTypes.bool,
  children: PropTypes.node.isRequired
}

Button.defaultProps = {
  variant: 'primary',
  isSubmit: false
}

Button.displayName = 'Button'

export default Button

I'm not sure where you are looking, but I see isDisabled right here https://react-spectrum.adobe.com/react-aria/useButton.html#api

Can you explain more of where you would expect to see it?

I'm not sure where you are looking, but I see isDisabled right here https://react-spectrum.adobe.com/react-aria/useButton.html#api

Can you explain more of where you would expect to see it?

@theetrain, as @snowystinger The isDisabled prop is documented as part of the API for the AriaButtonProps that are passed into the useButton hook. The user interface for the API documentation seems somewhat to blame for your confusion, because it displays the list of supported properties in a Popover that displays when the "AriaButtonProps" link is clicked within the code sample.
Regarding your second question where you point to the code snippet: https://github.com/adobe/react-spectrum/blob/c2c187606d447a6daa185e0b0507c22883ab3147/packages/%40react-aria/button/src/useButton.ts#L72.
This code only executes when the elementType passed to the  useButton hook is not a button. In which case we return a few additional properties: https://github.com/adobe/react-spectrum/blob/c2c187606d447a6daa185e0b0507c22883ab3147/packages/%40react-aria/button/src/useButton.ts#L72. For example, for an a span, or div behaving as a button, the [disabled] html attribute is invalid, and the hook returns aria-disabled instead.
I’m not sure that React-Aria can be so opinionated regarding the use of a disabled state that we either disallow it or make disabled items disappear.

@theetrain, as @snowystinger The isDisabled prop is documented as part of the API for the AriaButtonProps that are passed into the useButton hook. The user interface for the API documentation seems somewhat to blame for your confusion, because it displays the list of supported properties in a Popover that displays when the "AriaButtonProps" link is clicked within the code sample.
Regarding your second question where you point to the code snippet: https://github.com/adobe/react-spectrum/blob/c2c187606d447a6daa185e0b0507c22883ab3147/packages/%40react-aria/button/src/useButton.ts#L72.
This code only executes when the elementType passed to the  useButton hook is not a button. In which case we return a few additional properties: https://github.com/adobe/react-spectrum/blob/c2c187606d447a6daa185e0b0507c22883ab3147/packages/%40react-aria/button/src/useButton.ts#L72. For example, for an a span, or div behaving as a button, the [disabled] html attribute is invalid, and the hook returns aria-disabled instead.
I’m not sure that React-Aria can be so opinionated regarding the use of a disabled state that we either disallow it or make disabled items disappear.

@snowystinger thanks for pointing that out; I had no idea the API docs had interactive popovers like that. I am more accustomed to seeing props in a table layout or collapsed in an expandable region with a clear visual interactive affordance. The AriaButtonProps link doesn't show an underline unless I hover or focus it. At a glance, it looks like a static code snippet.
@majornista thanks for explaining the source code, I understand it a little better now. It makes sense to make decisions on how to return props based on element type when certain attributes are not useful to elements such as <span>.
I am not contesting whether React-Aria should decide for the user whether or not disabling a button is allowed. More or less, I found the answers to my questions.

What is the intended way for consumers to render disabled buttons when using useButton?

Use the isDisabled prop as per the documentation. It's not a huge effort to have my own button component listen to a disabled prop if I choose to have that experience.

Under what conditions should a button be allowed to render as disabled, and what is the rationale?

There are no opinions or references to research articles from the React-Aria docs suggesting when it's acceptable to have disabled buttons. Hopefully my response to @ktabors can provide some inspiration to help educate consumers of useButton on that topic if you see value in that.
Feel free to close this issue, and thanks everyone for your time addressing my questions.

@snowystinger thanks for pointing that out; I had no idea the API docs had interactive popovers like that. I am more accustomed to seeing props in a table layout or collapsed in an expandable region with a clear visual interactive affordance. The AriaButtonProps link doesn't show an underline unless I hover or focus it. At a glance, it looks like a static code snippet.
@majornista thanks for explaining the source code, I understand it a little better now. It makes sense to make decisions on how to return props based on element type when certain attributes are not useful to elements such as <span>.
I am not contesting whether React-Aria should decide for the user whether or not disabling a button is allowed. More or less, I found the answers to my questions.

What is the intended way for consumers to render disabled buttons when using useButton?

Use the isDisabled prop as per the documentation. It's not a huge effort to have my own button component listen to a disabled prop if I choose to have that experience.

Under what conditions should a button be allowed to render as disabled, and what is the rationale?

There are no opinions or references to research articles from the React-Aria docs suggesting when it's acceptable to have disabled buttons. Hopefully my response to @ktabors can provide some inspiration to help educate consumers of useButton on that topic if you see value in that.
Feel free to close this issue, and thanks everyone for your time addressing my questions.


Add support for projects using Glide in Go builds

We are using Glide for some projects already, and we're likely to start using it in more.
It would be nice if the presence of glide.lock was enough to run glide and so on. Otherwise, defining a variable would also work.

Fixed by https://github.com/src-d/ci/pull/29


Support 'inmo', 'fimo', 'upmo', 'pumo'

Summary of the new feature / enhancement
Consider support 'inmo', 'fimo', 'upmo', 'pumo'
Proposed technical implementation details (optional)
No response

Leave those in the compat layer and have a clean break using the new cmdlets. If you want to add new aliases for the new cmdlets I think that would be acceptable.


Add Matawan Regional High School

Website : http://marsd.org/Domain/81
Emails<EMAIL_ADDRESS>Computer Science Classes :

Academy Engineering (The final project that counts for a large chunk of your grade is an embedded systems project)
Robotics Team (A robotics team that competes in robotics competitions, and a large amount of code is written for an embedded system)
AP Computer Science A (Introduction to Computer Science)
STEM Technology (Application of Computer Science to areas of science)
AP Computer Science Principles (Primer to Computer Science and its applications)
Web Design

@MeetThePatel Pull request merged. Please notice that free educational license for JetBrains tools is for high and higher schools students, i.e. those who are over 13 of age. Thank you!


Voxel wont run on OSX based devices

Caused by the bad implementation of OpenGL in OSX.

Fix in progress with help of @danirod

Fixed with the help of @danirod.


Problem installing for ODQA

Problem when trying to install using official tutorial for Open Domain Question Answering Skill on Wikipedia

(myvenv) joo@joo-tf:~$ python
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from deeppavlov import configs
>>> from deeppavlov.core.commands.infer import build_model
>>> odqa = build_model(configs.odqa.en_odqa_infer_wiki, download=True)
2019-07-18 13:48:44.994 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/deeppavlov_data/multi_squad_model_noans_1.1.tar.gz download because of matching hashes
2019-07-18 13:54:10.253 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/deeppavlov_data/en_odqa.tar.gz download because of matching hashes
2019-07-18 13:57:06.704 INFO in 'deeppavlov.download'['download'] at line 116: Skipped http://files.deeppavlov.ai/datasets/wikipedia/enwiki.tar.gz download because of matching hashes
[nltk_data] Downloading package punkt to /home/joo/nltk_data...
[nltk_data]   Package punkt is already up-to-date!
[nltk_data] Downloading package stopwords to /home/joo/nltk_data...
[nltk_data]   Package stopwords is already up-to-date!
[nltk_data] Downloading package perluniprops to /home/joo/nltk_data...
[nltk_data]   Package perluniprops is already up-to-date!
[nltk_data] Downloading package nonbreaking_prefixes to
[nltk_data]     /home/joo/nltk_data...
[nltk_data]   Package nonbreaking_prefixes is already up-to-date!
2019-07-18 13:57:15.43 INFO in 'deeppavlov.models.vectorizers.hashing_tfidf_vectorizer'['hashing_tfidf_vectorizer'] at line 264: Loading tfidf matrix from /home/joo/.deeppavlov/models/odqa/enwiki_tfidf_matrix.npz
2019-07-18 13:57:15.77 ERROR in 'deeppavlov.core.common.params'['params'] at line 110: Exception in <class 'deeppavlov.models.vectorizers.hashing_tfidf_vectorizer.HashingTfIdfVectorizer'>
Traceback (most recent call last):
  File "/home/joo/myvenv/lib/python3.6/site-packages/deeppavlov/core/common/params.py", line 104, in from_params
    component = cls(**dict(config_params, **kwargs))
  File "/home/joo/myvenv/lib/python3.6/site-packages/deeppavlov/models/vectorizers/hashing_tfidf_vectorizer.py", line 80, in __init__
    self.tfidf_matrix, opts = self.load()
  File "/home/joo/myvenv/lib/python3.6/site-packages/deeppavlov/models/vectorizers/hashing_tfidf_vectorizer.py", line 266, in load
    matrix = Sparse((loader['data'], loader['indices'],
  File "/home/joo/myvenv/lib/python3.6/site-packages/numpy/lib/npyio.py", line 262, in __getitem__
    pickle_kwargs=self.pickle_kwargs)
  File "/home/joo/myvenv/lib/python3.6/site-packages/numpy/lib/format.py", line 725, in read_array
    array = numpy.ndarray(count, dtype=dtype)
MemoryError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/joo/myvenv/lib/python3.6/site-packages/deeppavlov/core/commands/infer.py", line 61, in build_model
    component = from_params(component_config, mode=mode, serialized=component_serialized)
  File "/home/joo/myvenv/lib/python3.6/site-packages/deeppavlov/core/common/params.py", line 80, in from_params
    model = build_model(config, serialized=serialized)
  File "/home/joo/myvenv/lib/python3.6/site-packages/deeppavlov/core/commands/infer.py", line 61, in build_model
    component = from_params(component_config, mode=mode, serialized=component_serialized)
  File "/home/joo/myvenv/lib/python3.6/site-packages/deeppavlov/core/common/params.py", line 104, in from_params
    component = cls(**dict(config_params, **kwargs))
  File "/home/joo/myvenv/lib/python3.6/site-packages/deeppavlov/models/vectorizers/hashing_tfidf_vectorizer.py", line 80, in __init__
    self.tfidf_matrix, opts = self.load()
  File "/home/joo/myvenv/lib/python3.6/site-packages/deeppavlov/models/vectorizers/hashing_tfidf_vectorizer.py", line 266, in load
    matrix = Sparse((loader['data'], loader['indices'],
  File "/home/joo/myvenv/lib/python3.6/site-packages/numpy/lib/npyio.py", line 262, in __getitem__
    pickle_kwargs=self.pickle_kwargs)
  File "/home/joo/myvenv/lib/python3.6/site-packages/numpy/lib/format.py", line 725, in read_array
    array = numpy.ndarray(count, dtype=dtype)
MemoryError
>>>

Hi @GraphGrailAi,
Do you have enough memory? It says in the documentation that

About 24 GB of RAM required. It is possible to run on a 16 GB machine, but than swap size should be at least 8 GB.


No need to define enabled legend item colour.

This is a minor contribution. Thinking in term of "themes" I think it is not necessary to define enabled items colour.

i think this would be a breaking change for anyone who relies upon this functionality currently. While the contribution is certainly appreciated, i don't think it is necessary at this time.

Care to say a little more than "think" that this would be breaking? I will see if I can send a PR that can expose the "title" colour then.


Fix composite primary key not being created correctly

Stop stringifying primary_key in table options if it is an array so
that create_table creates the composite primary key in AR5.

Changes Unknown when pulling a246263a01b3bb9a9f1f7eaebeee65187418c3a8 on kaorimatz:composite-primary-key into ** on winebarrel:v0.6.5**.

Thnaks!


chore(main): release 1.2.0

:robot: I have created a release beep boop
1.2.0 (2024-05-24)
Features

X_new/W_new (9df388b)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/chiba-ai-med/SBSMTFCV/releases/tag/v1.2.0 :sunflower:


Remember view position after refreshing the page

Currently the view position is saved by a hash based on the file contents. When the page reloads, we should also take the last position into account, because it matches the normal behavior of browsers. Usually, when you reload a web page, the scroll offset is restored (even if the content of the page changed).
The motivation for this change comes from experiencing the following broken workflow:

Generate a local PDF file (file://....pdf).
Open PDF with PDF.js and scroll to some chapter in the PDF file.
Edit PDF file.
Refresh the PDF.js viewer (e.g. with F5).
Expected result: Retain the scroll position.
Actual result: Page 1 is shown in the viewport.

Technical notes:

performance.navigation.type can be used to detect page reload versus navigations.
history.state is preserved when a page reloads.

That would be awesome.

I'm a student at Seneca college learning open source, and I was hoping to work on this bug for my course.  If no one else is currently working on it, I'd like to give it a try.

Nobody indicated that they're working on it, so it's all yours! Feel free to contact us on IRC or leave a message here in case you have questions.

Hey thanks a lot for the quick reply. I really want to contribute to an open source project. I will start working on it right away. Since this my first time doing something like this, is there anything that I should know about?
Thanks a a lot!

I think all necessary information for this patch is listed on https://github.com/mozilla/pdf.js/wiki/Contributing. Unless you're touching files in the src/ folder (which I do not expect; I expect you'll only need to touch files in the web/ folder), you only need to run gulp lint and gulp unittest to verify your changes. You can run gulp server to start a local server to test your changes in the browser. If you have more questions, check the wiki, contact us on IRC or ask here.

Thanks, I will start reading through the files.

I'm looking into this but I don't know if I understood the problem very well.

1 - Generate a local PDF file (file://....pdf).
3 - Edit PDF file.

So the issue is only related to building/generating my own PDF? E.g. building it with some pdf generator like latex/jspdf?
I did the following and couldn't reproduce:

Built myself a PDF and opened it with http://localhost:8888/web/viewer.html?file=/andrei_test/a4.pdf
navigated to page 3.
Then edited the pdf (added more text in page3)
refreshed and saw the new content on page3 appear but I was still at page 3, pdf.js didn't move me to page1.

Before this, I just tried refreshing the default PDF from viewer.html a few times and I was under the impression that the page wasn't remembered at all. But now I think I understand, if I refresh it too fast (before the internal hashing is done to remember where to scroll back after refresh), then it will just get me to the last time I was before my last scroll, not to my last position. But if I wast half a second more and then refresh, then I see it's fine, I get scrolled position to where I last scrolled.
So I'm not really sure what I'm after here. Could you give more details onto how to reproduce? Thanks!

I can't test again at the moment but in step 4 you used to get that you
jump to page 1 after refresh (if the document changed). That said I was not
working locally but over a server connection. Not sure if that could make a
difference.
On Sun, Dec 31, 2017 at 4:42 AM, Andrei Petre<EMAIL_ADDRESS>wrote:

I'm looking into this but I don't know if I understood the problem very
well.
1 - Generate a local PDF file (file://....pdf).
3 - Edit PDF file.
So the issue is only related to building/generating my own PDF? E.g.
building it with some pdf generator like latex/jspdf?
I did the following and couldn't reproduce:

Built myself a PDF and opened it with http://localhost:8888/web/
viewer.html?file=/andrei_test/a4.pdf
http://localhost:8888/web/viewer.html?file=/andrei_test/a4.pdf
navigated to page 3.
Then edited the pdf (added more text in page3)
refreshed and saw the new content on page3 appear but I was still
at page 3, pdf.js didn't move me to page1.

Before this, I just tried refreshing the default PDF from viewer.html a
few times and I was under the impression that the page wasn't remembered at
all. But now I think I understand, if I refresh it too fast (before the
internal hashing is done to remember where to scroll back after refresh),
then it will just get me to the last time I was before my last scroll, not
to my last position. But if I wast half a second more and then refresh,
then I see it's fine, I get scrolled position to where I last scrolled.
So I'm not really sure what I'm after here. Could you give more details
onto how to reproduce? Thanks!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mozilla/pdf.js/issues/6847#issuecomment-354573873,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGBkZqzS34MYDM8wZi41cNY0NiVUyoI-ks5tFsNqgaJpZM4HBeqE
.

@Rob--W
hey ,
I see many people taking a shot at it . Giving it a try . Please let me know if we need to write test for this as well

@ankitverma2211 If possible, tests would be great.
However, we don't have automated tests for this kind of features, so if the patch looks reasonable and passes a manual test, then we would accept it too.

I would like to start on this. is anyone else currently working on this?

Not that I know of. Feel free to work on this!

Sure I am starting on this will ping you guys on IRC for any help
RAHUL SHARMA
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERINGIndian Institute of
Technology  DhanbadMob. No.:<PHONE_NUMBER>
On Mon, Dec 24, 2018 at 4:24 PM Tim van der Meij<EMAIL_ADDRESS>wrote:

Not that I know of. Feel free to work on this!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mozilla/pdf.js/issues/6847#issuecomment-449718751,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF8SZdbnLGoX5cY1fvk02tcM_3o8KDctks5u8LJUgaJpZM4HBeqE
.

@timvandermeij  I have gone through the whole code which is involved while rendering pdf file.
It uses local storage to store to pdfjs view history with files as an array. In which each element stores the fingerprint of the file and other metadata about the last view history. when we modify a file fingerprint of the file changes and for that new fingerprint we don't have any view history.
my old file fingerprint => 14ecd8cdbbf6f76f04030d59025b5937
fingerprint after file change => 619c4c4f872e96e6514b25c6a1ae03f2
As far as I have gone through fingerprint calculation for a doc it depends on the content and pdf trailer.
here is some reference
figerprint calculation
stackoverflow referance
let me know what you say about this.  should we close this issue?

Hi Rahul,
It might help if you check out Sharelatex in action, which uses pdf.js as a
backend and already has a work around, rerendering pdfs after latex source
code change, which will certainly change any hash, while keeping view
position. I believe their extensions are  open source on github, but don't
have a link ready.
On Fri, Dec 28, 2018 at 3:01 PM Rahul Sharma<EMAIL_ADDRESS>wrote:

@timvandermeij https://github.com/timvandermeij I have gone through the
whole code which is involved while rendering pdf file.
It uses local storage to store to pdfjs view history with files as an
array. In which each element stores the fingerprint of the file and other
metadata about the last view history. when we modify a file fingerprint of
the file changes and for that new fingerprint we don't have any view
history.
my old file fingerprint => 14ecd8cdbbf6f76f04030d59025b5937
fingerprint after file change => 619c4c4f872e96e6514b25c6a1ae03f2
As far as I have gone through fingerprint calculation for a doc it depends
on the content and pdf trailer.
here is some reference
figerprint calculation
https://github.com/mozilla/pdf.js/blob/58c3ea08202becf007c304512c44726719acb508/src/core/core.js#L513
stackoverflow referance
https://stackoverflow.com/questions/33309378/using-fingerprint-generated-by-pdfjs-as-unique-id-for-a-pdf
let me know what you say about this. should we close this issue?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mozilla/pdf.js/issues/6847#issuecomment-450426605,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGBkZidcCqtZjNp18mXaFfC78IfPRj-1ks5u9oaTgaJpZM4HBeqE
.

it will be of great help if you can share the link to repo which is responsible for this and then it will be a feature to this repo rather than a bug

I used to have a greasemonkey script that replace key "C-r" to a "viewBookmark" click, which basically solves this issue for me. It didn't work after some version of Firefox. It looks like that greasemonkey is not loaded in pdf.js. Is it intended?

@timvandermeij @yashamon
I had look at Sharelatex repo. they are doing it using keeping track of pdfjs.history with projectId rather than fingerprint which changes with document changed, but projectId for that particular document remains same for sharelatex.
I have few questions in mind. I tried to connect with you guys in IRC but didn't got reponse
Questions:

is we need to maintain page number also when pdf changes and the user opens a new file in a new tab.
as it is maintained in the current fingerprint method.
If it needs to be only in current tab we can use of sessions otherwise we will append some more keys to view_history.
please guide me

Just tested this, still same behavior. Refreshing page fixes page view position only if the pdf file is unchanged, otherwise view jumps to first page. This is very easy to test with latex pick a document compile and preview the pdf add a random word in the latex source, compile and preview in pdf.  pdfjs preview jumps to first page. I am on release 2.2.191 in chrome. Will check in firefox when I get a chance.

I tested with firefox, it looks like on the latest release the issue is fixed, so is it just that Chrome version is lagging behind?

The Chrome extension version includes this patch. Its behavior may differ because of a difference in how the browser behaves. I once posted a detailed description of the problem at https://github.com/mozilla/pdf.js/commit/cdea75dc397f4eb4d6fd1f7d8a388c7d11df3452 (which was part of https://github.com/mozilla/pdf.js/pull/6200).

I submitted a similar issue #11359 with respect to *latex-generated pdf. It is actually not correct that this uses a "hash based on the file contents" @Rob--W. Rather, it is an ID embedded in the PDF upon creation, and how that ID is generated depends on the generating application, for *latex it is a hash based on the combination of the current time and the pathname of the tex-file. See my last comment there for a solution.


New Rule: discourage type assertions in favor of type guards

Name: no-type-assertion

lines up with existing no-angle-bracket-type-assertion rule

Failing code:
function foo(myArg: any) {
  if (myArg.bar != null) {
    doTheThing(myArg as IBar);
  } else if (myArg.baz != null) {
    anotherThing(myArg as IBaz);
  } else {
    ...
  }
}

Passing code:
function foo(myArg: any) {
  if (isBar(myArg)) {
    doTheThing(myArg);
  } else if (isBaz(myArg)) {
    anotherThing(myArg);
  } else {
    ...
  }
}

function isBar(x: any): x is IBar {
  ...
}

function isBaz(x: any): x is IBaz {
  ...
}

+1

Relevant: discussion in #2040 on bringing in the equivalent rule from tslint-consistent-codestyle.
IMO it'd be better to name this as type-assertion and allow configuring as preferring as (default) or preferring <>.
Note that as ajafff mentioned, copied code without substantial changes needs to retain the original license.

Relevant: discussion in #2040 on bringing in the equivalent rule from tslint-consistent-codestyle.
IMO it'd be better to name this type-assertion and allow configuring to:

Ban type guards (default)
Allow as Type
Allow `

Note that as ajafff mentioned, copied code without substantial changes needs to retain the original license.

Note: per #4534, this issue will be closed in less than a month if no PR is sent to add the rule. If you really need the rule, custom rules are always an option and can be maintained outside this repo!

💀 It's time! 💀
TSLint is being deprecated and no longer accepting pull requests for new rules. See #4534. 😱
If you'd like to see this rule implemented, you have two choices:

Recommended: Use typescript-eslint to lint your TypeScript code with ESLint ✅
Legacy: Write it as a custom TSLint rule 🤷♂

👋 It was a pleasure open sourcing with you!
If you believe this message was posted here in error, please comment so we can re-open the issue!

🤖 Beep boop! 👉  TSLint is deprecated 👈 (#4534)  and you should switch to typescript-eslint! 🤖
🔒 This issue is being locked to prevent further unnecessary discussions. Thank you! 👋


Revert #252 and replace the bash-specific substitution with a general…

… one using cut.
This has been requested in order to support alpine and busybox, which don't have bash.

Thank you!


WIP: Feature/skip include

Fixes #14

Coverage decreased (-27.6%) to 48.161% when pulling f575d9c407b95ddf9f9c042f748208be64bceabc on feature/skip-include into 5adcc07c59d0b0b6cde5e588c1e5feb777a44cf9 on master.

Coverage decreased (-27.6%) to 48.161% when pulling f575d9c407b95ddf9f9c042f748208be64bceabc on feature/skip-include into 5adcc07c59d0b0b6cde5e588c1e5feb777a44cf9 on master.


Marker position not updated if metadata already loaded.

If the markers were created after the video metadata was loaded the
onMetadaLoaded event was never fired and the markers where not
positioned.
I needed the markers to update without that event, as I wanted to
change the markers displayed on a video that is already playing.
I added a check for readyState greater than 0 (metadata loaded). In that
case the update is performed.
The function is also called the next time the metadata is loaded. This
will happen if meta data was not loaded (as with the previous code),
but also in case that there has been a change of video source and the
markers were positioned according to the old source duration.
Changes to be committed:
modified:   src/markerBar.js

@knovz I apologize for neglecting this repository for two years, you have done a great job. I will be releasing a version soon.


Exposed ability to set number of jruby instances and set a sane default.

This sets the default to a sane value that's sized to the machine your running this on.  But this can be overwritten if required..
Puppetlabs documentation here: https://docs.puppetlabs.com/puppetserver/latest/configuration.html#puppetserverconf
Defaults to ‘num-cpus - 1’, with a minimum default value of 1 and a maximum default value of 4.

Thanks (and for including a test)!


Issue 82 Implement to take git tag as argument

In CI side this will be useful since we can use single job pipeline
to create the builds for master (in that case unreleased openshift)
and also tagged one.

Still trying to wrap my head around this change and why this is needed.
Before these changes, snc.sh looks up the latest tag in the current branch in order to set OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE to the correct openshift version, and to download the appropriate oc version.
One thing to note is that OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE is already a workaround, we should be specifying the image to use when building openshift-install rather than overriding it.
After the changes in this PR, I'm under the impression that the behaviour without the --tag parameter has changed, it's no longer use the latest tag set, but instead will use the image the installer was built against.
Regarding createdisk.sh, the tag is used to name the tarball and the directory it contains. If the current commit is tagged, then we will use the tag name in the tarball name. If it's not tag, it's a git snapshot, and we will use append the date to the tarball name.
After the changes in this PR, if --tag was used and the tag is known, then we use this as the tarball name (regardless of the current commit being tagged or not), if --tag was not used, then we used the date.
All the above means there's an assumption that we'll build the images for a given openshift releases from one snc commit. This is not necessarily true, sometimes we'll want to regenerate the images for a given openshift release from a different commit than the one which was tagged.
What this commit is doing to remove this assumption is that it drops all the guessing of the openshift release version/git snapshot by looking at git tag, and instead decides between release build/snapshot build depending on whether --tag was specified on the command line or not. This is a fine way to go if we want maximum flexibility, but if we go this way, I believe we should drop everything tag related, looking at the git tags is not really useful, and does not seem to be what we want to do. So just a --openshift-release flag would do the trick.
However, at the moment, I'm not sure it's useful to support arbitrary openshift releases, if we have to rebuild a bundle because of issue on the openshift/coreos/.. side, wouldn't we still base our work against the latest 4.1.x image? or are there situations when we'd really need to rebuild an older 4.1.y image when a newer 4.1.x release exists? I'm under the impression that what we need now is a way to rebuild a bundle against the latest openshift release, but with a snc commit which is not the not that we tagged. If that's enough, couldn't we only add a --release parameter (with no version after it) which we'll only specify in such situations, and keep all the automatic git stuff to detect snapshots/releases?

All the above means there's an assumption that we'll build the images for a given openshift releases from one snc commit. This is not necessarily true, sometimes we'll want to regenerate the images for a given openshift release from a different commit than the one which was tagged.

Right, I thought it over and whatever discussion we had and I think what I just need on the CI side or as a user to create a openshift cluster from non released bits and right now we are holding this because of git describe --abbrev=0 --tags in the snc.sh since it will always assign OPENSHIFT_RELEASE_VERSION to latest tag even with the master branch but we actually need something like git describe --exact-match --tags HEAD which will make sure until I checked out a release tag I am able to use the master like the way we are using with createdisk.sh side.
My intention is not to have arbitrary cluster deployment with a single snc commit because that will defeat the purpose of this repo. I want to have it proper release tags as we move so that when  other changes are 4.2.x and 4.3.x we can still able to deploy cluster using our 4.1.x release tags.
I am going to update this PR with my current understanding and hope that would be less distractive then this one. Thanks @cfergeau for detailed view.


Add to be persisted files to pinned file list

Changes the semantic of getPinIdList to return both the explicitly
pinned inodes and inodes which are in TO_BE_PERSISTED state. Inodes in
that state should not be evicted or users can experience data loss.
pr-link: Alluxio/alluxio#9052
change-id: cid-3d03eca419de07c8efc4f238d095b8c58c2b2c41

@calvinjia PTAL

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4670/
Test FAILed.

@yuzhu you will need to make some logical conflict resolutions (ie. libraries not imported)


SAR preprocessing

Hi, thank you for the great resource! Apologies for the stupid question, I'd like to use the pretrained SAR model, but I can't seem to find any info about the normalization/preprocessing steps for Sentinel-1 aside from this code.
Shoud I apply a mean-std  normalization, anything else... ? In short, what's the correct input transform and the expected format (bands, range of values, ...).
Thanks a lot!

Sorry, I didn't check the closed issues beforehand #7 should be enough!

Happy to see you found it out. BTW, we will release more SAR based models, stay tuned if you are interested:)


does bind() a two way binding?

If I bind to the same key in different controllers and one controller modify the object, this
modification is not reflected in the other controller right?
Wouldn't it be nice to have it that way.?

Yeah, I imagine people would expect it to work like that. A kind of "three-way" binding where changes in the scope update the DB and also update any other scope properties that are bound to the same key.
Just took a quick peek at the implementation (I didn't write it...) and it might take a little bit of work to accomplish, but seems like a good candidate for the next major version. I'd argue that this is a breaking change since people might be depending on the current behavior. Maybe we can make this an opt-in feature.
Stay tuned, and thanks for bringing this up!

How it can be done with the current relase?
I tried as @Puresoft suggest, the data is update in the local $scope of the controller but the "storage" is not updated

@imwhocodes
You could set up the notifications like this (from the README.md):
angular.module('yourModule', ['LocalForageModule'])
.config(['$localForageProvider', function($localForageProvider){
    $localForageProvider.setNotify(true, true); // itemSet, itemRemove
}]);

And then in your controller, you could listen for changes like:
$scope.$on('LocalForageModule.setItem', function onSetItem(item) {
  // item === {key: key, newvalue: value, driver: localforage.driver};
  $scope.key = item.value;
});

Having said that, I would recommend against using angular-localForage as a bridge between different controllers, honestly. It's definitely a hidden coupling between controllers, and if two controllers need to share data, the typical Angular way to do this is with a service.

Actually, that won't keep direct mutations in sync, just when using setItem. 🤔 Not sure that there is currently a way to do that, but I'll dive a little deeper.


Solution of issue#76

Explain the Graph Data structure
how it works
how to create
try to add code snippets, pictures & gif's explaining the concept Time complexity, the Space complexity of each operation
Note: Create a readme.md file

@Sanskruti21-2002 change the file name from readme.md to graph_documentation.md


Properly handle large numbers of enum values in the docs UI

We probably don't want to render the entire enumeration as it takes a large amount of space.

This is now tracked by this linear issue


[astro-components] add named slots example using Fragment

Description (required)
This adds another example to the section on named slots that shows using the named slot attribute on the Fragment component (<Fragment slot="header">) because the only existing examples showed adding the attribute to HTML elements.
In response to a request from an issue. Also note that this pattern is used and documented in the AstroWind template: https://astrowind.vercel.app/astrowind-template-in-depth , so it seemed reasonable to include an example here!
Am open to refining this example, or choosing a better one. Note that this one adds style classes (not style attributes) and therefore is maybe reflective of how it might be used, but not copy/pasteable. We could also choose to show inline styles if we cared instead.
Direct deploy preview: https://docs-git-named-fragment-slots-astrodotbuild.vercel.app/en/core-concepts/astro-components/#named-slots
Related issues & labels (optional)

Closes #5959

Looks great! Always nice to have another example for a bit of an abstract concept.

Thanks everyone! Going to merge this as NWTWWHB now!  :partying_face:


freeswitch: 1.10.2 -> 1.10.3

Motivation for this change
https://github.com/signalwire/freeswitch/releases/tag/v1.10.3
Things done

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

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

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

@GrahamcOfBorg test freeswitch

Result of nixpkgs-review pr 87601 1

1 package built:
- freeswitch


Use different word other than 'operator'

Reading https://github.com/nmcl/smallrye-mutiny/blob/master/documentation/src/main/docs/intro.adoc and wondering if there's a way to use a different word? If that's the agreed standard word to use then fair enough, but we know operator is used within cloud these days for something else.

It's the word everybody uses, but I agree, it's overloaded and somewhat unclear. I will try to find an alternative.

closing - outdated issue.


"mapping: 0" does not disable mappings when popup window created from  mapping

Describe the bug
mapping: 0 does not disable mappings when a popup window is created from an <expr> mapping.
To Reproduce
Run this shell command:
vim -Nu NONE -S <(cat <<'EOF'
    vim9script
    let keys = ''
    def Popup(): string
        popup_create('', #{filter: Filter, mapping: false})
        return ''
    enddef
    def Filter(id: number, key: string): bool
        keys ..= key
        echo 'key: ' .. keys
        return true
    enddef
    set lz
    nno <expr> <F3> <sid>Popup()
    nno <down> abc
    feedkeys("\<F3>\<down>")
EOF
)

key: abc is echoed.
Expected behavior
key: <80>kd is echoed.
Environment

Vim version: 8.2 Included patches: 1-1736
OS: Ubuntu 16.04.7 LTS
Terminal: xterm(360)

Additional context
The nno <down> abc mapping has not been ignored.  It should have been ignored, because the mapping property was set to false.

The issue disappears if the popup window is not created from an <expr> mapping.
vim9script
let keys = ''
def Popup(): string
    popup_create('', #{filter: Filter, mapping: false})
    return ''
enddef
def Filter(id: number, key: string): bool
    keys ..= key
    echo 'key: ' .. keys
    return true
enddef
set lz
Popup()
feedkeys("\<down>")

There is a race condition: feedkeys() puts both F3 and Down into the typeahead buffer.
F3 creates the popup, then when is Down processed?  Apparently it happens before the popup is active.
It can be avoided by splitting feedkeys() in two:
feedkeys("<F3>", "xt")
feedkeys("<down>", "xt")

There is a race condition: feedkeys() puts both F3 and Down into the typeahead buffer.

I see; that explains why it only happens the first time we press <Down> and not the subsequent times.  That also probably explains why it only happens before the mappings timeout (&timeoutlen) and not after.

It can be avoided by splitting feedkeys() in two:
feedkeys("", "xt")
feedkeys("", "xt")

I found the issue while I was studying the fileselect.vim plugin.  To fix the issue in this plugin, we can't split feedkeys(), because there is none.  The popup is not created by feedkeys(); it's created when the user presses a mapping.
Note that the issue in this plugin is not currently visible; but that's only because of another unrelated bug.  The fileselect#toggle() function should return an empty string.  Once the function is fixed, we can see that mappings are not ignored when a key is pressed before the mappings timeout.  As you said it's probably due to a race condition.  I'm not sure whether it can be fixed from the plugin.

That also probably explains why it only happens before the mappings timeout (&timeoutlen) and not after.

I was wrong.  The issue does not disappear after the mappings timeout (&timeoutlen); it disappears after &updatetime, but only if we have an autocmd listening to CursorHold.  I think that's because Vim writes the pseudo-key <CursorHold> into the typeahead buffer, and the issue disappears after any key has been pressed (because it causes the typeahead to be flushed?).

It's possible that a race condition is responsible for the example reported in the OP, but I'm not sure it's the cause of the original bug.  This snippet is identical to the one in the OP, except feedkeys() is removed:
vim9script
let keys = ''
def Popup(): string
    popup_create('', #{filter: Filter, mapping: false})
    return ''
enddef
def Filter(id: number, key: string): bool
    keys ..= key
    echo 'key: ' .. keys
    return true
enddef
set lz
nno <expr> <F3> <sid>Popup()
nno <down> abc

If we press <F3> interactively to create the popup, then no matter how long we wait, pressing <Down> will always use the mapping.  If it was a race condition, I would expect the issue to disappear after waiting some short period of time.

I found another similar issue in a different plugin:
vim9script
nno <cr> :echom 'was hit'<cr>
setpos("'w", [0, 3, 1, 0])
range(1, 20)->map({_, v -> string(v)})->setline(1)
def Callback(...l: any)
    norm! 10G
enddef
timer_start(0, {-> popup_create('', #{
    filter: 'popup_filter_menu',
    callback: Callback,
    mapping: false,
    })})

This creates a popup with a callback which should move the cursor on line 10 (norm! 10G).  But if we press Enter, instead of jumping on line 10, Vim inserts the text s hit' on line 3.
Two things are unexpected here.  First, the reason why Vim inserts the text s hit' on line 3 is because it has used the <CR> mapping.  But mapping: false should have prevented that.  Second, it seems that an extra <CR> has been written in the typeahead buffer (by the callback?) in the middle of the mapping:
:echom 'was hit'<cr>
      ^
      probably inserted somewhere around here

This is confirmed by the fact that if we remove the 'w mark, then E20: Mark not set is raised.
As a result, 'w is parsed as a motion command, a is parsed as the append command, and the rest of the mapping is inserted literally into the buffer.
Note that this time, the issue is not triggered by <expr>, but by a timer.  The issue disappears if we remove the timer.  The issue persists no matter the waiting time we choose for the timer.  The issue persists no matter how long we wait before pressing Enter while the popup is visible.

In the example with Popup() I can only see the first use of the Down key causing "abc" to be found.
After that the raw Down key code is used.
This is happening because the  mapping returns an empty string, thus Vim stays in the loop
to wait for a character.  But the code to check if any filter has disabled mappings is only executed
when starting to wait for a character.  Thus something must make the loop return first.
It's hard to make this work without side effects.  Especially starting to ignore mappings halfway getting
a character is going to be weird.  It's better to exit the loop and try again.
I would suggest that you make Vim return from the loop to get a character, possibly by returning .
Not sure if that works when using the timer though.

I can confirm that returning a no-op like <C-\><C-n> fixes the issue in the <expr> mapping:
vim9script
let keys = ''
def Popup(): string
    popup_create('', #{filter: Filter, mapping: false})
    return "\<c-\>\<c-n>"
enddef
def Filter(id: number, key: string): bool
    keys ..= key
    echo 'key: ' .. keys
    return true
enddef
set lz
nno <expr> <F3> <sid>Popup()
nno <down> abc
feedkeys("\<F3>\<down>")

It doesn't fix the issue with the timer, but that's another issue and I've found another workaround.  Thank you very much for the hint and explanation.

You can return "<Ignore>", it was especially aimed at returning something without effect.
For the timer: I think there are other situations where one wants the input loop to return after a timer triggered.
We could do this always, but it might have side effects.
How about adding an option to the timer that tells Vim to return the input loop with ?

Looks like github ate the backslash before .  So it's a double quoted string, with the first character a backslash.


Opening a Visualscript file opens 2 files in the editor

Operating system or device, Godot version, GPU Model and driver (if graphics related):
Godot 3.0 master https://github.com/godotengine/godot/commit/da144fed4c49133a93b3b83cfc665352c0af351a
Issue description:

I don't know what happened but after opening and closing the file a couple times when I opened it two files were open the script itself and the same one but with no name:

(the broken editor problem is here https://github.com/godotengine/godot/issues/11636)
Steps to reproduce:
I'm not really sure. I noticed that the opened script was marked with a (*) when opening it and when closing the editor it doesn't complain that it's not saved. There were no new modifications in that script so it shouldn't show the (*).

I can't reproduce, would be nice if anyone can try to reproduce or confirm that this does not happen any longer

Can't reproduce - used b08735f20987a6188fd54c5e2dcd072dc316b413.

Yeah, I can't reproduce it either, closing this then.


"Not enough information provided" but can answer the same question if queried one by one and ask the same question.

Please provide us with the following information:

This issue is for a: (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

I uploaded 25 pdfs of custom public data, each representing a different insurance product. Each pdf has around 16 pages. I have uploaded pdfs on the products ManuCentury and ManuLeisure. I first asked to compare the death benefits but says "Not enough information...". However when queried one by one as below, and then ask back the same question, it can give an answer. The details are clearly in the documents uploaded. Any has experienced something similar and can suggest a workaround?

Any log messages given by the failure

Expected/desired behavior

It should have been able to answer correctly the first time the question was asked

OS and Version?

Linux (GitHub Codespace)

azd version?

1.2.0

Versions

Mention any other details that might be useful
I'm currently using the following prompt:
system_message_chat_conversation = """You are an intelligent assistant helping Manulife insurance agents and customers with their questions and analysis on Manulife insurance plans and products, based on the sources provided. You are provided information in the sources on the following Manulife products: Accidental Death Benefit, Cancer Guard Protection Benefit, Cancer Treatment Beneft, Careguard Critical Illness Benefit, Cash Assistance Benefit, Child Care Benefit, Disability Income Protector, Hospital Income Benefit, La Vie 2, ManuTerm, ManuBright Care 2, ManuBright Care 2 Plus, ManuCentury, ManuDelight, ManuElite Protector, ManuEnrich Medical Top Up Plan, ManuGrand Saver 2, ManuGuard Medical Plan, ManuImperial Saver 2, ManuJoy, Manuleisure Deferred Annuity, Manulife First VHIS Flexi Plan, ManuWealth USD Plan, ManuLove Care, ManuMaster, ManuVital Care, MyChoice, Outpatient, Premier Estate Protector, Premium Waiving Benefits, Take Care Personal Accident Plan 2, Universal Life, Whole in One Prime 2, Whole in One Protector.
Answer ONLY with the facts listed in the list of sources below and strictly about Manulife insurance products. Do a thorough check to see if there is information provided in the source about that Manulife product. If there isn't enough information below, say you don't know. Do not generate answers that don't use the sources below. If asking a clarifying question to the user would help, ask the question.
Kindly reject the user's request for anything not related to asking, analyzing, and follow up on Manulife products, e.g let's play a game, etc. For tabular information return it as an html table. Do not return markdown format. If the question is not in English, answer in the language used in the question.
Each source has a name followed by colon and the actual information, always include the source name for each fact you use in the response. Use square brackets to reference the source, e.g. [info1.txt]. Don't combine sources, list each source separately, e.g. [info1.txt][info2.pdf].
"""

Thanks! We'll be in touch soon.

I recommend adding logging to chatreadretrieveread.py to see what search terms are being generated.
Print out the query_text:
https://github.com/Azure-Samples/azure-search-openai-demo/blob/5d4fc98da099a09bcc6ffea78197fd56f3b74608/app/backend/approaches/chatreadretrieveread.py#L88
Then log out the results from ACS:
https://github.com/Azure-Samples/azure-search-openai-demo/blob/5d4fc98da099a09bcc6ffea78197fd56f3b74608/app/backend/approaches/chatreadretrieveread.py#L128
That'll help you determine whether the issue is that it's coming up with an unsuccessful query or whether it's got good results but not answering well based on them. Also try out different ACS options (vector/semantic/etc) if the problem is the results.

used a different model and seems to work better


Address clippy errors

Small changes to address thing that clippy considers issues. Mainly if/else clauses that result in same result and a  while loops that never loops

Thanks Fernando!


Update manifests/o/Obsidian/Obsidian/0.11.5/Obsidian.Obsidian.locale.en-US.yaml

Fixes an issue where this package has multiple different monikers
Microsoft Reviewers: Open in CodeFlow

[Policy] Reset Labels


json where on sqlite throws error: This database engine does not support JSON operations

Laravel Version: 5.6.26
PHP Version: 7.2
Database Driver & Version: sqlite 3

Description:
After upgrading from 5.6.23 to 5.6.26 json where queries for sqlite throw error:

This database engine does not support JSON operations

Steps To Reproduce:
Add a notification class for user to notify another user want to be friend and use sqlite database driver for saving notification with friend object.
Try to markAsRead notification on accept friend request:
auth()->user->notifications()->where('type', 'App\Notifications\FriendshipRequestNotification')->where('data->user->id', $friend->id)->get();

I don't see how this query could have worked before. Laravel has never supported JSON queries on SQLite.

We just updated from v5.6.14 to v5.6.34 and although it seems a little strange, I can only confirm that some tests where json columns are involved could be executed successfully before, but now fail in the same way as described above.
You might be correct that it should'nt have worked before either, but I don't think it's coincidence that the upgrade makes it behave differently than before.

Can you post an example?

I'll look into it. What laravel-tags feature are you using?
Also, I would love to know how you managed to run SQLite with JSON support.

The behavior has changed in 5.6.25. Before that, the query used the unmodified column selector:
DB::table('test')->where('foo->bar', 'baz')->get();
// select * from "test" where "foo->bar" = 'baz'

This couldn't have worked, it looks for a column named foo->bar.
But it also didn't throw an exception because SQLite silently ignores non-existing columns.
Does this explain your issues?

That makes perfect sense. I already guessed it's something like that. That's why I wrote 'where json columns are involved'. The tests are not very extensive so it might looked like it was working as long as it didn't fail.

@staudenmeir Thank you very much for your PR. We just installed v3.6.35 and the problems are solved. I'm also glad that is properly implemented so we can use those json queries with sqlite in the future.


Some base figures being cut and not rounded

This is due to a missing round in quantipy.core.builds.powerpoint.transformations.get_base.
Solution:
Change
            base_text = base_description.strip() + " - " + ", ".join(
                ['{} ({})'.format(x, str(int(y)))
                 for x, y in zip(top_members, base_values[0])])

to
            base_text = base_description.strip() + " - " + ", ".join(
                ['{} ({})'.format(x, str(int(round(y))))
                 for x, y in zip(top_members, base_values[0])])

Resolved by #727.


Getting this error when running Llma3 with DSPy and Ollama

import dspy
ollamaLM = dspy.OllamaLocal(model="mistral")
ollamaLM("Write a short poem")

TimeoutError                              Traceback (most recent call last)
File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py:467, in HTTPConnectionPool._make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
    463         except BaseException as e:
    464             # Remove the TypeError from the exception chain in
    465             # Python 3 (including for exceptions like SystemExit).
    466             # Otherwise it looks like a bug in the code.
--> 467             six.raise_from(e, None)
    468 except (SocketTimeout, BaseSSLError, SocketError) as e:

File <string>:3, in raise_from(value, from_value)

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py:462, in HTTPConnectionPool._make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
    461 try:
--> 462     httplib_response = conn.getresponse()
    463 except BaseException as e:
    464     # Remove the TypeError from the exception chain in
    465     # Python 3 (including for exceptions like SystemExit).
    466     # Otherwise it looks like a bug in the code.

File ~\AppData\Local\Programs\Python\Python310\lib\http\client.py:1374, in HTTPConnection.getresponse(self)
   1373 try:
-> 1374     response.begin()
   1375 except ConnectionError:

File ~\AppData\Local\Programs\Python\Python310\lib\http\client.py:318, in HTTPResponse.begin(self)
    317 while True:
--> 318     version, status, reason = self._read_status()
    319     if status != CONTINUE:

File ~\AppData\Local\Programs\Python\Python310\lib\http\client.py:279, in HTTPResponse._read_status(self)
    278 def _read_status(self):
--> 279     line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
    280     if len(line) > _MAXLINE:

File ~\AppData\Local\Programs\Python\Python310\lib\socket.py:705, in SocketIO.readinto(self, b)
    704 try:
--> 705     return self._sock.recv_into(b)
    706 except timeout:

TimeoutError: timed out

During handling of the above exception, another exception occurred:

ReadTimeoutError                          Traceback (most recent call last)
File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\adapters.py:486, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies)
    485 try:
--> 486     resp = conn.urlopen(
    487         method=request.method,
    488         url=url,
    489         body=request.body,
    490         headers=request.headers,
    491         redirect=False,
    492         assert_same_host=False,
    493         preload_content=False,
    494         decode_content=False,
    495         retries=self.max_retries,
    496         timeout=timeout,
    497         chunked=chunked,
    498     )
    500 except (ProtocolError, OSError) as err:

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py:799, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
    797     e = ProtocolError("Connection aborted.", e)
--> 799 retries = retries.increment(
    800     method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
    801 )
    802 retries.sleep()

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\retry.py:550, in Retry.increment(self, method, url, response, error, _pool, _stacktrace)
    549 if read is False or not self._is_method_retryable(method):
--> 550     raise six.reraise(type(error), error, _stacktrace)
    551 elif read is not None:

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\packages\six.py:770, in reraise(tp, value, tb)
    769         raise value.with_traceback(tb)
--> 770     raise value
    771 finally:

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py:715, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
    714 # Make the request on the httplib connection object.
--> 715 httplib_response = self._make_request(
    716     conn,
    717     method,
    718     url,
    719     timeout=timeout_obj,
    720     body=body,
    721     headers=headers,
    722     chunked=chunked,
    723 )
    725 # If we're going to release the connection in ``finally:``, then
    726 # the response doesn't need to know about the connection. Otherwise
    727 # it will also try to release it and we'll have a double-release
    728 # mess.

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py:469, in HTTPConnectionPool._make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
    468 except (SocketTimeout, BaseSSLError, SocketError) as e:
--> 469     self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
    470     raise

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py:358, in HTTPConnectionPool._raise_timeout(self, err, url, timeout_value)
    357 if isinstance(err, SocketTimeout):
--> 358     raise ReadTimeoutError(
    359         self, url, "Read timed out. (read timeout=%s)" % timeout_value
    360     )
    362 # See the above comment about EAGAIN in Python 3. In Python 2 we have
    363 # to specifically catch it and throw the timeout error

ReadTimeoutError: HTTPConnectionPool(host='localhost', port=11434): Read timed out. (read timeout=120)

During handling of the above exception, another exception occurred:

ReadTimeout                               Traceback (most recent call last)
Cell In[2], line 3
      1 import dspy
      2 ollamaLM = dspy.OllamaLocal(model="llama3")
----> 3 ollamaLM("Write a short poem")

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\dsp\modules\ollama.py:171, in OllamaLocal.__call__(self, prompt, only_completed, return_sorted, **kwargs)
    168 assert only_completed, "for now"
    169 assert return_sorted is False, "for now"
--> 171 response = self.request(prompt, **kwargs)
    173 choices = response["choices"]
    175 completed_choices = [c for c in choices if c["finish_reason"] != "length"]

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\dsp\modules\ollama.py:145, in OllamaLocal.request(self, prompt, **kwargs)
    142 if "model_type" in kwargs:
    143     del kwargs["model_type"]
--> 145 return self.basic_request(prompt, **kwargs)

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\dsp\modules\ollama.py:97, in OllamaLocal.basic_request(self, prompt, **kwargs)
     95 tot_eval_tokens = 0
     96 for i in range(kwargs["n"]):
---> 97     response = requests.post(urlstr, json=settings_dict, timeout=self.timeout_s)
     99     # Check if the request was successful (HTTP status code 200)
    100     if response.status_code != 200:
    101         # If the request was not successful, print an error message

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\api.py:115, in post(url, data, json, **kwargs)
    103 def post(url, data=None, json=None, **kwargs):
    104     r"""Sends a POST request.
    105
    106     :param url: URL for the new :class:`Request` object.
   (...)
    112     :rtype: requests.Response
    113     """
--> 115     return request("post", url, data=data, json=json, **kwargs)

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\api.py:59, in request(method, url, **kwargs)
     55 # By using the 'with' statement we are sure the session is closed, thus we
     56 # avoid leaving sockets open which can trigger a ResourceWarning in some
     57 # cases, and look like a memory leak in others.
     58 with sessions.Session() as session:
---> 59     return session.request(method=method, url=url, **kwargs)

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\sessions.py:589, in Session.request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
    584 send_kwargs = {
    585     "timeout": timeout,
    586     "allow_redirects": allow_redirects,
    587 }
    588 send_kwargs.update(settings)
--> 589 resp = self.send(prep, **send_kwargs)
    591 return resp

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\sessions.py:703, in Session.send(self, request, **kwargs)
    700 start = preferred_clock()
    702 # Send the request
--> 703 r = adapter.send(request, **kwargs)
    705 # Total elapsed time of the request (approximately)
    706 elapsed = preferred_clock() - start

File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\adapters.py:532, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies)
    530     raise SSLError(e, request=request)
    531 elif isinstance(e, ReadTimeoutError):
--> 532     raise ReadTimeout(e, request=request)
    533 elif isinstance(e, _InvalidHeader):
    534     raise InvalidHeader(e, request=request)

ReadTimeout: HTTPConnectionPool(host='localhost', port=11434): Read timed out. (read timeout=120)

I think you need to start the Ollama server first, so DSPy can connect to it.
However this isn't obvious at all from the code comments (https://github.com/stanfordnlp/dspy/blob/78d95df6367c6e30d71f8066e1c464b7c893e154/dsp/modules/ollama.py#L11)
or the documentation (https://dspy-docs.vercel.app/api/local_language_model_clients/Ollama). Maybe that is something that should be made clear.

Hey @KaifAhmad1!

Try running the server first then run your code to make request. It will work.
I was facing the same issue too.
Hope it works for you!


nightshade + web bump to 534

Bump versions, usage text, requirements bump

@sbesson - I'm not sure what ansible-lint is complaining about here:
(ansible)LS27172:prod-playbooks kenny$ ansible-lint ome-dundeeomero.yml
Couldn't parse task at Unknown (no action detected in task. This often indicates a misspelled module name, or incorrect module path.)
{ '__line__': 75,
  'become': True,
  'name': 'NGINX - enable service and start on boot',
  'systemd': { '__line__': 77, 'enabled': True, 'name': 'nginx'}}

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1606. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1607. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1608. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1609. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1610. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1611. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1612. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1613. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1614. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1615. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1616. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1617. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1618. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1619. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1620. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1621. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1622. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1623. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1624. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1625. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1626. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1627. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1628. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1629. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1630. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1631. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1632. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1633. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1634. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1635. See the console output for more details.
Possible conflicts:

PR #3 kennethgillen 'OME OMERO demo server 5.3.4 upgrade'

.travis.yml

Upstream changes

.travis.yml

--conflicts

This playbook is modified in #7, should we unify both PRs into a single one?

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1648. See the console output for more details.
Possible conflicts:

Upstream changes

.travis.yml

--conflicts

Closing this as this conflicts. Instead we should be able to update #7 which includes the state of the current production server.


Website: show headings below the page title in sidebar

Thanks to #145, we can also do this now:

[ ] Show headings
[ ] Detect scrolling
[ ] Make sidebar section collapsible

There is a $50.00 open bounty on this issue. Add more on Issuehunt.

Checkout the Issuehunt explorer to discover more funded issues.
Need some help from other developers? Add your repositories on Issuehunt to raise funds.

@issuehunt has funded $50.00 to this issue.

Submit pull request via IssueHunt to receive this reward.
Want to contribute? Chip in to this issue via IssueHunt.
Checkout the IssueHunt Issue Explorer to see more funded issues.
Need help from developers? Add your repository on IssueHunt to raise funds.

I'll implement this and #163 in one rush.

@krmax44 I am working on this the PR is ready soon

Awesome! :+1:

@saberland/core are able to self-assign issues now.

What about showing the markdown headings here instead?

Hmm, most people are probably more familiar with it being included, as its used by most documentation sites.

Showing the toc in a different place than the sidebar will make the UI design quite messy precisly for small screen.

Showing the toc in a different place than the sidebar will make the UI design quite messy precisly for small screen.

Of course, we can move the toc to sidebar or somewhere else for small screens.
Actually, https://apollographql.com/docs and https://next.tailwindcss.com simply omit the toc on mobile devices. 😅

And sites like https://reactjs.org and https://adonisjs.com display toc right above the page content:

I like how https://apollographql.com/docs do it, if you agree tell me and I will implement it.

btw, in mkdocs, tocs are shown in right hand side too (https://squidfunk.github.io/mkdocs-material/

@MarchWorks Are you still working one this?

@egoist I will make a PR for it now


Parameters for each plugin

Would be great if it was possible to change the parameters used for each event.
for example the invert udf , might want to produce parameters to say how much the invert is applied.
To me it makes sense that any paramaters should be part of the event .
Where the parameter values come from ?
Either a static config for each plugin. These are the defaults.
But then also the parameter values need to be Dynamically sent into the App as args for now. In reality it’s likely to be sent in on the context when used on a server .
Would appreciate feedback on this …

Hi @gedw99 -
This is a good question -- and I'll try to point to some places in the code that might help answer.

for example the invert udf , might want to produce parameters to say how much the invert is applied. To me it makes sense that any paramaters should be part of the event . Where the parameter values come from ?

I like this idea, and it would certainly make each plugin more versatile! But, the event data is not so flexible -- it comes from the host program, and is mostly just the data from fsnotify with the filepath where the file event was triggered. The host program uses this data to create a payload for the plugin which contains the serialized data of the file itself.

Either a static config for each plugin. These are the defaults.

It could be possible to change the Go code here so that it also looks for a params.json or something like that, to be next to the invert.wasm file. In your params.json you could specify the values you want to apply to the plugin. The Go code would read params.json, and then use the Plugin API's SetConfig function: https://pkg.go.dev/github.com/extism/extism#Plugin.SetConfig
From inside the Plugin code, you can read these values (in the Go PDK: https://pkg.go.dev/github.com/extism/go-pdk#GetConfig) and apply them to the inversion or whatever.
Does that help?

Hey @nilslice
thanks for the tips.
yes the config would make this more flexible . Definitely the solution I need to configure global settings per plugin

Sure thing! Also worth noting, this project has been updated to use the new pure Go (no CGO) SDK: https://github.com/extism/go-sdk
It has a slightly different API, and the docs aren't updated yet on https://extism.org -- just worth calling out in case something breaks in a confusing way

Yep o saw the change
also saw the telemetry stuff you and others are working on .
Making wasm so that it’s just like any other language basically.


chore: Add route and compression handling to test-server

Add route and compression handling to test-server in preparation for SR.  SR will report compressed data payloads in a non-standard way, by including a query param which notes its compression.  GZIP handling as well as preprocessing were added to the testing server to facilitate this.

Overview
Add route and compression handling to test-server in preparation for SR

Related Issue(s)
NEWRELIC-8807

Testing
The test server has a new route /blob which can handle compressed payloads and expects data shaped as defined in the /blob endpoint spec found here --> https://newrelic.atlassian.net/l/cp/CjDxzmo3

Codecov Report

Merging #541 (f203bed) into main (1ee675d) will increase coverage by 1.23%.
The diff coverage is 0.00%.

:exclamation: Current head f203bed differs from pull request most recent head af7b953. Consider uploading reports for the commit af7b953 to get more accurate results

@@            Coverage Diff             @@
##             main     #541      +/-   ##
==========================================
+ Coverage   18.78%   20.01%   +1.23%
==========================================
  Files         130      132       +2
  Lines        4318     4352      +34
  Branches     1089     1111      +22
==========================================
+ Hits          811      871      +60
+ Misses       2759     2749      -10
+ Partials      748      732      -16

Impacted Files
Coverage Δ

src/cdn/pro.js
0.00% <ø> (ø)

src/common/config/state/init.js
6.06% <ø> (ø)

src/common/harvest/harvest-scheduler.js
0.00% <ø> (ø)

src/common/harvest/harvest.js
0.00% <0.00%> (ø)

src/features/session_replay/aggregate/index.js
0.00% <0.00%> (ø)

... and 5 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Failed to update runner status for Registration

After https://github.com/summerwind/actions-runner-controller/pull/398 (commit 2929a739e34ceb72467f45b4ab36286ea0be4728), I got another error:
2021-03-18T02:27:39.251Z	ERROR	controllers.Runner	Failed to update runner status for Registration	{"runner": "NAME", "error": "Runner.actions.summerwind.dev \"NAME\" is invalid: [status.message: Required value, status.phase: Required value, status.reason: Required value]"}
github.com/go-logr/zapr.(*zapLogger).Error
	/go/pkg/mod/github.com/go-logr/zapr@v0.1.0/zapr.go:128
github.com/summerwind/actions-runner-controller/controllers.(*RunnerReconciler).updateRegistrationToken
	/workspace/controllers/runner_controller.go:467
github.com/summerwind/actions-runner-controller/controllers.(*RunnerReconciler).Reconcile
	/workspace/controllers/runner_controller.go:150

It seems this caused the error:
https://github.com/summerwind/actions-runner-controller/blob/3cccca8d097222a1022a16a9cd2e42bcdb1459b8/controllers/runner_controller.go#L466-L467

I have the same issue, on the latest canary tag pulled about 30 min ago:
2021-03-18T03:35:04.123Z	ERROR	controller-runtime.controller	Reconciler error	{"controller": "runner-controller", "request": "sandbox/runner.elpenguino.net", "error": "Runner.actions.summerwind.dev \"runner.elpenguino.net\" is invalid: [status.message: Required value, status.phase: Required value, status.reason: Required value]"}
github.com/go-logr/zapr.(*zapLogger).Error

My runner spec is really simple:
apiVersion: actions.summerwind.dev/v1alpha1
kind: Runner
metadata:
  name: runner.elpenguino.net
  namespace: sandbox
spec:
  organization: redacted

@int128 @funkypenguin Hey! Thanks- Reports from early testers are super helpful. I think I managed to fix this in #404. Note that you will probably need to recreate Runner CRD in order to make it work.

AFAICS from my limited testing, you may also need to delete/create the Runner CRD to make it work.

From what I saw, kubectl apply -f charts/actions-runner-controller/crds/actions.summerwind.dev_runners.yaml didn't actually update changes under status field, which is necessary to fix this validation error.

Please also check #407

@mumoshu: ran into that issue as well. will there be an automated update of existing CRDs when you publish an official release?

@jonico CRDs in https://github.com/summerwind/actions-runner-controller/tree/master/charts/actions-runner-controller/crds are always up-to-date and should immediately be available via a new chart release. But if you're talking about the controller's ability to automatically upgrade CRDs- no, unfortunately. You have to upgrade it by running kubectl, or via your CI(e.g. GitHub Actions)/CD(e.g. ArgoCD) 😢


Helm upgrade regression

In what area(s)?
/area runtime
What version of Dapr?
1.0.0-rc.3
Expected Behavior
Looks like we have a bit of a regressoin in the Helm chart now. Testing like this:
helm upgrade --install dapr dapr/dapr --namespace dapr-system --create-namespace --version 1.0.0-rc.2 --wait
firstcert=$(kubectl get MutatingWebhookConfiguration dapr-sidecar-injector -o jsonpath='{.webhooks[0].clientConfig.caBundle}')
helm upgrade --install dapr dapr/dapr --namespace dapr-system --create-namespace --version 1.0.0-rc.3 --wait
secondcert=$(kubectl get MutatingWebhookConfiguration dapr-sidecar-injector -o jsonpath='{.webhooks[0].clientConfig.caBundle}')

if [[ "$firstcert" == "$secondcert" ]] then
   echo "IDENTICAL"
else
   echo "NOT IDENTICAL"
fi

For some reason everything seems to work (maybe Kubernetes caches the previous webhook certificate or something) but we definetely want to fix this to avoid stuff creeping up on us later.
Actual Behavior
the certBundle attribute of sidecar-injector's mutating webhook changes value during upgrade to rc3. It shouldn't.
Steps to Reproduce the Problem
See script above.
Release Note
RELEASE NOTE: FIX Helm upgrade replaced the mutating webhook cert thumbprint

Is there a reason why we want to keep the cert in place? The reason everything is working fine is because this only gets used by the Kubernetes API server.

Is there a reason why we want to keep the cert in place? The reason everything is working fine is because this only gets used by the Kubernetes API server.

it only needs to match the cert used by the sidecar-injector "listener". Replacing it will introduce some time delta where the "server" cert doesn't match the cert specified in the webhook config. In a best-case scenario this probably isnt noticeable, but I'm thinking that we shouldn't mutate stuff that doesn't need mutating. It's a fairly simple fix (working on it now)

it only needs to match the cert used by the sidecar-injector "listener". Replacing it will introduce some time delta where the "server" cert doesn't match the cert specified in the webhook config. In a best-case scenario this probably isnt noticeable, but I'm thinking that we shouldn't mutate stuff that doesn't need mutating. It's a fairly simple fix (working on it now)


DevLog

Implement .models.BoundArguments

Implement .enums.ParameterType.from_kind

Implement Resolvers.get_resolver to get the most appropriate resolver

api.get_params shouldn't care about PS/RT

Re-implement use of arguments library?

Remove last Param wrapper overload, it's invalid

Make a ParameterManager ABC, and a concrete ParamManager

Make get_params complain if a spec doesn't have a listed resolver

Parameter inference will likely need access to more information? (Or should it just use instance attributes?)

Complain if inferred parameter has no associated resolver

Make specifying a resolver optional. The user may only ever want to use get_params, not get_arguments. E.g:
R = TypeVar("R", bound=Callable)

class Resolvers(Register[Type[ParameterSpecificafion], Optional[R]]):
    pass

Make get_params complain if a spec doesn't have a listed resolver


Prettier entire project

I'm running prettier on everything at once so I can enable "prettier on save" and not have to worry about hard-to-read diffs.


silent mode is not supported

Looking at the doc and see silent mode property in config option while initialisation, but can't find this in source files of the npm package and it throws a warning in console

Same problem here
(Marker.io SDK) unknown param "silent" (need to upgrade?)

Hi @crashtimer, sorry for the long waiting time, we've added support for silent mode in version 0.11.0!
Thanks!


a bug maybe in lv_tileview.c

Important: issues that don't use this template will be ignored/closed.

Describe the bug
original:
lv_tileview_set_valid_positions()
{
uint16_t i;
for(i = 0; i < valid_pos_cnt; i++) {
if(valid_pos->x == ext->act_id.x && valid_pos->y == ext->act_id.y) {
return;
}
}
}
I think it should be like this:
lv_tileview_set_valid_positions()
{
uint16_t i;
for(i = 0; i < valid_pos_cnt; i++) {
if((valid_pos + i)->x == ext->act_id.x && (valid_pos + i)->y == ext->act_id.y) {
return;
}
}
}
To Reproduce
Please provide a small, independent code sample that can be used to reproduce the issue. Ideally this should work in the PC simulator unless the problem is specific to one platform.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Fixed in 6e8a4eee
Thank you!


test: fix cli_ps_test failed

Signed-off-by: Michael Wan<EMAIL_ADDRESS>Ⅰ. Describe what this PR did
----------------------------------------------------------------------
FAIL: /go/src/github.com/alibaba/pouch/test/cli_ps_test.go:113: PouchPsSuite.TestPsNoTrunc
/go/src/github.com/alibaba/pouch/test/cli_ps_test.go:131:
    c.Assert(kv[name].id, check.HasLen, 64)
... obtained string = ""
... n int = 64

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how you did it
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

LGTM


Crush when resizing window on Windows 11 on ARM

Describe the bug
Unhandled exception at 0x00007FFEA4CB2824 (coreclr.dll) in AvaloniaApplication1.exe: Stack cookie instrumentation code detected a stack-based buffer overrun.
The Common Language Runtime cannot stop at this exception. Common causes include: incorrect COM interop marshalling and memory corruption. To investigate further use native-only debugging.

To Reproduce
Run new Avalonia app from template on Windows 11 on ARM
Disable WindowsUIComposition to avoids crash.
new Win32PlatformOptions() {  UseWindowsUIComposition = false }

Expected behavior
No crash
Screenshots
Desktop (please complete the following information):

OS: Windows 11 on ARM
Version 0.10.x

Additional context
Running inside VM MacOS M1 Parallels

Duplicate?

Duplicate?

Of which issue ?

Oh sorry, looks like it was wrong alarm. Sorry.