How to avoid keyboard for bottom half modal

Let's say we have a bottom half modal with some TextInput. How can we avoid the keyboard? I've tried KeyboardAvoidingView and it did nothing.
CC @mmazzarolo.
Thanks.

Hey @rpereira , it seems that adding a margin might help, could you test and confirm it?

Hi @mmazzarolo. I've seen that issue and the margin didn't do the trick.
I had to modify the source using a KeyboardAvoidingView.
      <Modal
        transparent={true}
        animationType={'none'}
        visible={this.state.isVisible}
        onRequestClose={this._closeOnBack}
        {...otherProps}
      >
        <View
          ref={ref => (this.backdropRef = ref)}
          style={[
            styles.backdrop,
            { backgroundColor: backdropColor, width: deviceWidth, height: deviceHeight },
          ]}
        />
        <KeyboardAvoidingView behavior="padding">
          <View
            ref={ref => (this.contentRef = ref)}
            style={[{ margin: deviceWidth * 0.05 }, styles.content, style]}
            {...otherProps}
          >
            {children}
          </View>
      </KeyboardAvoidingView>
      </Modal>

If you guys think it is a clean solution, I can submit a PR.

It would be great!
Could you also add a prop avoidKeyboard (with a default false) to enable/disable it?
Mostly for backward compatibility, but also for cases where you don't wont to achieve this effect at all.
In e.g.:
{avoidKeyboard && <KeyboardAvoidingView behavior={'padding'}>}

Thank you! 👍

I'll do that @mmazzarolo. 👍

I'll submit a PR next week.

any update?

Hey @rpereira any update?
I can edit it by myself if needed, let me know :)

Hey @mmazzarolo, I'll do it during the weekend. Sorry for the long delay.

@rpereira no worries man!

any update?

@sejo2016, I just merged a PR made by @G3z that should address the issue, do you mind giving it a try (by running yarn add git+https://github.com/mmazzarolo/react-native-modal-datetime-picker.git)?
Thanks!

@mmazzarolo, I just installed the package and setting avoidKeyboard to true doesn't seem to work for me.

hi, try this please https://github.com/react-native-community/react-native-modal/pull/65

Landed on v4.0.0, thanks @g3z and @rpereira.

I have any specific solution?

FWIW for those coming from Google, I solved this by using a nested KeyboardAvoidingView inside my Modal (the avoidKeyboard mentioned above in v4 didn't work for me).
<Modal>
  <KeyboardAvoidingView
    behavior="position"
    enabled
  >
    {myContent}
  </KeyboardAvoidingView>
</Modal>

Note: behaviour="position", this didn't work when using padding for me.

@fredrivett have also tried solution but did not work. Tried setting exact height as well as flex but no luck.

hi everybody.
i tried setting style={{position: 'absolute', width: 0.9WIDTH, height: 0.9HEIGHT}} to modal and it worked!

any update?

I encountered a similar problem working with https://github.com/jacklein/rn-bottom-drawer
My temporary fix: position drawer contents absolutely when the keyboard is shown.
class BottomDrawerWrapper extends Component {
	state = {
		keyboardHeight: 0,
	}

	componentDidMount () {
		this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
		this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
	}

	componentWillUnmount () {
		this.keyboardDidShowListener.remove();
		this.keyboardDidHideListener.remove();
	}

	_keyboardDidShow = e => {
		this.setState({ keyboardHeight: e.endCoordinates.height });
	}

	_keyboardDidHide = () => {
		this.setState({ keyboardHeight: 0 });
	}

	render () {

		const {
			isOpen,
			close,
			component,
		} = this.props;

		const {
			keyboardHeight,
		} = this.state;

		const Component = component;

		return isOpen && (
			<BottomDrawer

			>
				<View style={{
					backgroundColor: '#fff',
					// the hack: position absolutely the content if keyboardHeight > 0
					...(keyboardHeight === 0 ? {} : { position: 'absolute', bottom:  keyboardHeight, left: 0, right: 0 }) }}>
					<Component />
				</View>
			</BottomDrawer>
		);
	}
}
export default BottomDrawerWrapper;

Hey, you can try using "behavior={Platform.OS === "android" ? undefined : "position"}"
<Modal
ref={modal => (this.modal = modal)}
propagateSwipe={true}
swipeDirection="down"
onSwipeComplete={() => this.props.closeModal()}
style={[styles.modalContainer, { }]}
isVisible={showCoupon}>
<KeyboardAvoidingView enabled  behavior={Platform.OS === "android" ? undefined : "position"}>

<View style={[styles.modalContent, { flex: 1 }]}>
{CONTENT}

For Style:
modalContainer: {
padding: 0,
margin: 0,
backgroundColor: Color.transparent,
justifyContent: 'flex-end'
},
modalContent: {
alignItems: 'center',
backgroundColor: Color.white,
borderTopLeftRadius: 10,
borderTopRightRadius: 10,
paddingBottom: 30
}
This work for me!

Hey, you can try using "behavior={Platform.OS === "android" ? undefined : "position"}"
<Modal
        isVisible={showCoupon}>
        <KeyboardAvoidingView enabled  behavior={Platform.OS === "android" ? undefined : "position"}>
          <ScrollView scrollEnabled={false} keyboardShouldPersistTaps="handled">
          <View style={[styles.modalContent, { flex: 1 }]}>
          </View>
        </ScrollView>
        </KeyboardAvoidingView>
</Modal>

For Style:
modalContainer: {
    justifyContent: 'flex-end'
  },
  modalContent: {
  }

This work for me!

Hey, you can try using "behavior={Platform.OS === "android" ? undefined : "position"}"
<Modal
        isVisible={showCoupon}>
        <KeyboardAvoidingView enabled  behavior={Platform.OS === "android" ? undefined : "position"}>
          <ScrollView scrollEnabled={false} keyboardShouldPersistTaps="handled">
          <View style={[styles.modalContent, { flex: 1 }]}>
          </View>
        </ScrollView>
        </KeyboardAvoidingView>
</Modal>

For Style:
modalContainer: {
    justifyContent: 'flex-end'
  },
  modalContent: {
  }

This work for me!

THIS HAS WORKED FOR ME LIKE A CHARM 🤓

Hey, you can try using "behavior={Platform.OS === "android" ? undefined : "position"}"
<Modal
        isVisible={showCoupon}>
        <KeyboardAvoidingView enabled  behavior={Platform.OS === "android" ? undefined : "position"}>
          <ScrollView scrollEnabled={false} keyboardShouldPersistTaps="handled">
          <View style={[styles.modalContent, { flex: 1 }]}>
          </View>
        </ScrollView>
        </KeyboardAvoidingView>
</Modal>

For Style:
modalContainer: {
    justifyContent: 'flex-end'
  },
  modalContent: {
  }

This work for me!

Hey, where do i have to place the "modalContainer" Style. Can´t find it in the Modal code block.

Hey, you can try using "behavior={Platform.OS === "android" ? undefined : "position"}"
<Modal
        isVisible={showCoupon}>
        <KeyboardAvoidingView enabled  behavior={Platform.OS === "android" ? undefined : "position"}>
          <ScrollView scrollEnabled={false} keyboardShouldPersistTaps="handled">
          <View style={[styles.modalContent, { flex: 1 }]}>
          </View>
        </ScrollView>
        </KeyboardAvoidingView>
</Modal>

For Style:
modalContainer: {
    justifyContent: 'flex-end'
  },
  modalContent: {
  }

This work for me!

Thanks you, it worked for me

Hey, you can try using "behavior={Platform.OS === "android" ? undefined : "position"}"
<Modal
        isVisible={showCoupon}>
        <KeyboardAvoidingView enabled  behavior={Platform.OS === "android" ? undefined : "position"}>
          <ScrollView scrollEnabled={false} keyboardShouldPersistTaps="handled">
          <View style={[styles.modalContent, { flex: 1 }]}>
          </View>
        </ScrollView>
        </KeyboardAvoidingView>
</Modal>

For Style:
modalContainer: {
    justifyContent: 'flex-end'
  },
  modalContent: {
  }

This work for me!

Hey, where do i have to place the "modalContainer" Style. Can´t find it in the Modal code block.

Hey, remove this :D

None of the above solution worked for me.

I have the same problem in June :(

By random experimentation, I have just found that setting a negative extraHeight value on the KeyboardAwareScrollView seems to solve my issue, sits the text input just above the keyboard.
<Modal>
    <View style={ styles.contentContainer }>
        <KeyboardAwareScrollView
            extraHeight={-100}
            keyboardOpeningTime={10}
            style={ styles.content }
        >
            <TextInput/>

        </KeyboardAwareScrollView>
    </View>
</Modal>

hello lucas, how are you? my problem was a little more complicated, because of a failure to use this feature that hides 70% and this does not take into account the size of the modal that I set, for example: if I apply what the modal modifies 40% of the screen , or the keyboard applies based on screen size, not size of the modal I created

hello @LB-Digital , how are you? my problem was a little more complicated, because of a failure to use this feature, after I created the modal I informed that it would occupy 40% of the screen, added a TextInput, and when focusing on it the keyboard was open, however at the open the keyboard he was not taking into account the open mode, but the size of the screen
tip: never use flex and percentage together

For me, the above solutions didn't work. So I followed the example given on React Native official documentation.
https://reactnative.dev/docs/keyboardavoidingview.html#example
This is what I did with my Modal (having a TextInput in the bottom half that was getting overlapped with the Keyboard) -
 <Modal
      animationType="slide"
      transparent={true}
      visible={props.isVisible}
      onRequestClose={props.onClose}
    >
      <KeyboardAvoidingView
        behavior={isIOS() ? "padding" : "height"}
        style={styles.container}
      >
        <View style={styles.container}>
          <View style={styles.centerSubContainer}>{props.children}</View>
        </View>
      </KeyboardAvoidingView>
    </Modal>

And the styles are as below -
const styles = StyleSheet.create({
    centerSubContainer: {
      backgroundColor: colors.white.white,
      elevation: 5,
      padding: variables.basicUnit,
      shadowColor: colors.black.black,
      shadowOffset: {
        width: 0,
        height: 2,
      },
      shadowOpacity: 0.25,
      shadowRadius: 3.84,
    },
    container: {
      alignItems: "center",
      flex: 1,
      justifyContent: "center",
    },
  });

Para mim, as soluções acima não funcionaram. Então, segui o exemplo dado na documentação oficial do React Native.
https://reactnative.dev/docs/keyboardavoidingview.html#example
Foi o que fiz com o meu Modal (com um TextInput na metade inferior que estava sendo sobreposto ao teclado) -
 <Modal
      animationType="slide"
      transparent={true}
      visible={props.isVisible}
      onRequestClose={props.onClose}
    >
      <KeyboardAvoidingView
        behavior={isIOS() ? "padding" : "height"}
        style={styles.container}
      >
        <View style={styles.container}>
          <View style={styles.centerSubContainer}>{props.children}</View>
        </View>
      </KeyboardAvoidingView>
    </Modal>

E os estilos são os seguintes -
const styles = StyleSheet.create({
    centerSubContainer: {
      backgroundColor: colors.white.white,
      elevation: 5,
      padding: variables.basicUnit,
      shadowColor: colors.black.black,
      shadowOffset: {
        width: 0,
        height: 2,
      },
      shadowOpacity: 0.25,
      shadowRadius: 3.84,
    },
    container: {
      alignItems: "center",
      flex: 1,
      justifyContent: "center",
    },
  });

my problem and you were trying to use flexbox as an alternative, or what is incorrect, to troubleshoot or use a percentage instead of setting the width: 500, I set the width: '50% 'or use Dimensions.get ( 'window'). height / 2 which is exactly half the screen I now have two options for use

Any solution for this ? I have the same issue

It should be looks like:

Deve ser parecido com:

<KeyboardAvoidingView>

my model contained lots of TextInput inside ScrollView
As suggested above, I did wrap my model content inside KeyboardAvoidingView.
<Modal {...Props}>
    <View style={{flex:1}}>
        <KeyboardAvoidingView behavior="padding">
            <ScrollView>
                {content}
            </ScrollView>
        </KeyboardAvoidingView>
    </View>
</Modal>

But the problem was when clicking on the Top area TextInput, The whole content went above the viewport, And the user was unable to see the TextInput.
Fixed it using the package react-native-keyboard-aware-scroll-view
import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';

<Modal {...Props}>
    <View style={{flex:1}}>
        <KeyboardAwareScrollView>
             {content}
         </KeyboardAwareScrollView>
    </View>
</Modal>

It should be looks like:

you can set like this
<View style={{height: 610, justifyContent: 'flex-end'}}>

.......

the height 610 is your keyboard height, it works for me

<KeyboardAvoidingView behavior="padding">

Hi! I'm still having this issue, the UI pushes up when the keyboard is enabled.
"react-native-modal": "12.0.2",

for me, all solutions don't work, so I ended up putting style={{ flex: 1 }} style and behavior="padding" and this works like a charm. see the example below:
<Modal visible={true} >
          <KeyboardAvoidingView style={{ flex: 1 }} behavior="padding">
                 { your content }
          </KeyboardAvoidingView>
 </Modal>

It should be looks like:

use KeyboardAvoidingView after Modal Fragment like below:

<KeyboardAvoidingView style={{ flex: 1 }} behavior="padding">
{ your content }

{your content}>

This worked for me

I'm facing same issue. tried above solutions but still not fixed.Here is my code
<Portal theme={{ colors: { backdrop: 'rgba(0,0,0,0.2)' } }}>
<Modal
visible={showDialog}
dismissable={true}
onDismiss={hidePopModal}
contentContainerStyle={{
position: 'absolute',
bottom: 10,
width: '100%',
height: '50%',
marginBottom: -50
}}
>
<KeyboardAvoidingView
style={{ flex: 1, justifyContent: 'flex-end' }}
behavior="padding"
>
<View
style={{
height: '85%',
backgroundColor: THEME.primary.colors.white,
borderTopRightRadius: 30,
borderTopLeftRadius: 30
}}
>
<TouchableOpacity
style={styles.crossTouch}
onPress={() => {
hidePopModal();
}}
>

            <Card.Content
              style={{
                width: '95%',
                paddingHorizontal: 7,
                justifyContent: 'center',
                alignSelf: 'center',
                marginBottom: 30
              }}
            >
              <TextInput
                mode="outlined"
                // inputLabel="Enter Promo Code"
                placeholder="Promo Code"
                placeholderTextColor="#707070"
                labelStyle={{ color: colors.secondary, marginTop: 5 }}
                name={'promo'}
                id="promo"
                value={code.promo === 'null' ? '' : code.promo}
                onChangeText={text => {
                  if (text == '') {
                    text = 'null';
                    setPromoId(undefined);
                  }
                  onChange(text, 'promo');
                }}
                onBlur={() => onBlur('promo')}
              />
              {promoId &&
                (promoId == 'null' ? (
                  <HelperText
                    style={{
                      color: colors.red,
                      paddingHorizontal: 0,
                      fontSize: 13,
                      fontFamily: 'DMSans-Bold',
                      fontWeight: '400'
                    }}
                  >
                    Code is not Valid
                  </HelperText>
                ) : (
                  <HelperText
                    style={{
                      color: 'green',
                      paddingHorizontal: 0,
                      fontSize: 13,
                      fontFamily: 'DMSans-Bold',
                      fontWeight: '400'
                    }}
                  >
                    Code Applied Successfully
                  </HelperText>
                ))}
            </Card.Content>
            <Button
              label="Apply"
              disabled={code.promo == 'null'}
              style={
                code.promo != 'null'
                  ? [
                      { backgroundColor: colors.secondary },
                      styles.couponButton
                    ]
                  : [
                      { backgroundColor: colors.accent },
                      styles.couponButton
                    ]
              }
              labelStyle={
                code.promo != 'null'
                  ? [
                      {
                        color: colors.primary,
                        fontSize: 16,
                        fontFamily: 'DMSans-Regular',
                        fontWeight: '400'
                        // marginBottom: 20
                      },
                      styles.btnText
                    ]
                  : [
                      {
                        color: colors.accentgray,
                        // marginBottom: 20,
                        fontSize: 16,
                        fontFamily: 'DMSans-Regular',
                        fontWeight: '400'
                      },
                      styles.btnText
                    ]
              }
              onPress={() => {
                Keyboard.dismiss();
                onPromoCode();
                // hidePopModal();
                // setPromoVisible(false)
              }}
            />
          </View>
        </KeyboardAvoidingView>
      </Modal>
    </Portal>

This what worked for me.
<Modal style={{flex: 1}>
     <KeyboardAvoidingView
            style={{flex: 1, justifyContent: 'flex-end'}}
            behavior={Platform.OS === 'android' ? 'padding' : 'position'}>
                <Container style={{height: '80%'}}> // use your desired height here
                  // whatever your content here
               </Container>
    </KeyboardAvoidingView>
</Modal>

Hope this work for you too.

In my case it worked when I removed autoFocus from TextInput.

anyone facing problem with keyboard not avoiding content inside modal try setting
statusBarTranslucent={false}
I dont know why is that but this worked for me.

I am using react-native paper's Modal and tried all the above fixes but still not working. Can anyone please help ? Code is as below..
` const renderRenameModal = (state, setState) => {
return (

<Modal
visible={visible}
onDismiss={hideModal}
contentContainerStyle={[
styles.shareGroupModalContainer,
{ height: screenHeight * 0.48 },
]}
style={{
justifyContent: "flex-end",
marginBottom: 0,
}}
>
<KeyboardAvoidingView style={{ flex: 1 }} behavior="padding">
<View
style={{
flex: 0.4,
flexDirection: "row",
justifyContent: "center",
paddingTop: 10,
}}
>
<RNImg
source={{ uri: props.route.params.albumData.image_url }}
style={{
flex: 1,
resizeMode: "contain",
height: null,
width: null,
}}
/>

<View
style={{
flex: 0.3,
justifyContent: "center",
alignItems: "center",
}}
>
Rename Album
<TextInput
// label={"Enter your Album name"}
value={state}
onChangeText={(text) => setState(text)}
placeholderTextColor={Colors.greyText}
autoCapitalize={"none"}
autoComplete={"off"}
autoCorrect={false}
mode={"flat"}
autoFocus
outlineColor={Colors.White}
underlineColor={Colors.greyLine}
activeUnderlineColor={Colors.tertiaryColor}
activeOutlineColor={Colors.tertiaryColor}
style={[
{
backgroundColor: Colors.White,
fontSize: moderateScale(17),
height: screenHeight * 0.07,
width: screenWidth * 0.7,
},
]}
textColor={Colors.primaryColor}
/>

<View
style={{
flex: 0.2,
flexDirection: "row",
justifyContent: "center",
}}
>
<View
style={{
flex: 0.65,
flexDirection: "row",
justifyContent: "space-around",
marginTop: 18,
}}
>
<TouchableOpacity
onPress={() => setVisible(false)}
style={styles.RenameButtons}
>
<Text style={{ color: Colors.tertiaryColor }}>Cancel

<TouchableOpacity
onPress={handleRenameAlbum}
style={[
styles.RenameButtons,
{ backgroundColor: Colors.tertiaryColor },
]}
>
{doneLoading ? (

) : (
<Text style={{ color: Colors.White }}>Done
)}

);
};
const styles = StyleSheet.create({
shareGroupModalContainer: {
backgroundColor: "white",
padding: 18,
borderTopLeftRadius: 30,
borderTopRightRadius: 30,
},

`

react-native paper's Modal

if it doesnt includes any prop for keyboard avoiding try using keyboard listeners.

None of above works for me, I don't want all the half modal move up on keyboard up, only need keyboad bellow the input,
so got some code, both worked for android and ios, ios need ScrollView scrollEnabled for behavior padding
render() {
    const { contentNode, enableLoading } = this.props;
    const { visible } = this.state;
    const avoidKeyboardAll = this.props.avoidKeyboardAll ?? true;
    return (
      <Modal
        isVisible={visible}
        onBackButtonPress={() => this.dismiss()}
        deviceHeight={SCREEN_HEIGHT}
        deviceWidth={WINDOW_WIDTH}
        statusBarTranslucent={true}
        avoidKeyboard={false}
        coverScreen={true}
        style={styles.modalRoot}
        //region backdrop
        hasBackdrop={true}
        backdropColor={'#000000'}
        backdropOpacity={0.4}
        backdropTransitionInTiming={0}
        backdropTransitionOutTiming={0}
        onBackdropPress={() => this.dismiss()}
        //endregion
        onModalHide={() => this.props.onModalHide?.()}
        focusable={true}
        hideModalContentWhileAnimating={false}
        animationInTiming={270}
        animationIn={'slideInUp'}
        animationOutTiming={270}
        animationOut={'slideOutDown'}
      >
        {/*https://github.com/magicismight/react-native-root-toast/issues/64#issuecomment-631852017*/}
        <RootSiblingParent inactive={!visible}>
          <KeyboardAvoidingView
            behavior={'padding'}
            style={[styles.modalContainer, { width: displayUtil.WINDOW_WIDTH }]}
          >
            <ScrollView
              scrollEnabled={!displayUtil.IS_ANDROID}
              keyboardShouldPersistTaps="handled"
              nestedScrollEnabled={true}
              persistentScrollbar={false}
              showsHorizontalScrollIndicator={false}
              showsVerticalScrollIndicator={false}
              overScrollMode={'never'}
              fadingEdgeLength={0}
              bounces={false}
              bouncesZoom={false}
              alwaysBounceVertical={false}
              alwaysBounceHorizontal={false}
              contentContainerStyle={{
                justifyContent: 'flex-end',
                flex: avoidKeyboardAll ? 1 : 0,
                height: displayUtil.WINDOW_HEIGHT_WITH_STATUS_BAR,
              }}
            >
              <TouchableWithoutFeedback onPress={() => this.dismiss()}>
                <View style={{ flex: 1, width: '100%' }} />
              </TouchableWithoutFeedback>
              {contentNode ?? <View style={[styles.modalContent]} />}
              {!!enableLoading && <this.LoadingComponent />}
            </ScrollView>
          </KeyboardAvoidingView>
        </RootSiblingParent>
      </Modal>
    );
  }

I guess behavior={'padding'} is causing the issue
try behavior={platform.OS==="ios"?'padding':null}

<KeyboardAwareScrollView enableOnAndroid={true} style={{height:"100%"}}
enableAutoAutomaticScroll={(Platform.OS === 'ios')} extraHeight={130} extraScrollHeight={130}>

In the newest version have the avoidKeyboard props, I have tried and it fix my issues

In the newest version have the avoidKeyboard props, I have tried and it fix my issues


Add support to translate object_store storage options to daft.io.IOConfig

Several other libraries pass around a storage options dictionary that is then used by the object_store Rust crate to authenticate and do reads and writes. To allow users to more easily move to Daft, we could provide a functionality for them to use their storage options in Daft.
There are two ways to do this:

Create a function like storage_options_to_io_config(options: dict[str, str]) -> IOConfig  which does this conversion. One thing to figure out about this is that we would need to know what cloud provider they are using, since storage option values between cloud providers are not disjoint.
Allow users to pass in a storage_options wherever they can pass io_config. In this case we can usually infer the cloud provider so it would probably be a cleaner API, but that would make it harder for users to take advantage of authentication flows that we have but object_store doesn't.

Another thing to consider is if we wanted to use the mappings in the object_store crate, which would require dipping into the Rust layer, or to copy the mappings into our own code

I want to pass this option, but i don't know how to do it
storage_options={"allow_unsafe_rename":"true"}

@djouallah Looks like allow_unsafe_rename is an option that is used by delta-rs rather than object store.
A workaround should be to set
export AWS_S3_ALLOW_UNSAFE_RENAME=true

source: https://delta-io.github.io/delta-rs/usage/writing/writing-to-s3-with-locking-provider/

@djouallah Looks like allow_unsafe_rename is an option that is used by delta-rs rather than object store. A workaround should be to set
export AWS_S3_ALLOW_UNSAFE_RENAME=true

source: https://delta-io.github.io/delta-rs/usage/writing/writing-to-s3-with-locking-provider/

yes, but how to do it in daft, that was my question ?

@djouallah Looks like allow_unsafe_rename is an option that is used by delta-rs rather than object store. A workaround should be to set
export AWS_S3_ALLOW_UNSAFE_RENAME=true

source: https://delta-io.github.io/delta-rs/usage/writing/writing-to-s3-with-locking-provider/

yes, but how to do it in daft, that was my question ?

This isn't a Daft-specific configuration! It's actually from delta-rs, and isn't actually an object_store configuration either. You can just set the environment variable like so in your program, which will correctly configure delta-rs.
export AWS_S3_ALLOW_UNSAFE_RENAME=true

no luck in a notebook :(
OSError: Generic LocalFileSystem error: Unable to copy file from /synfs/lakehouse/default/Tables/T10/daft/_delta_log/_commit_c475e751-6256-4777-8fa7-fc8f1704d785.json.tmp to /synfs/lakehouse/default/Tables/T10/daft/_delta_log/00000000000000000000.json: Function not implemented (os error 38)

@jaychia @kevinzwang Let's expose an option to allow allow_unsafe_rename. I dug through the delta-rs code and it looks like they overload allow_unsafe_rename to do both AWS_S3_ALLOW_UNSAFE_RENAME for S3 and an allow path for other filesystems.
https://github.com/delta-io/delta-rs/blob/f05b2bf31530def92cdf7c5f22812e3ed6fe4eec/crates/aws/src/storage.rs#L419C17-L419C36

@jaychia I think this the codepath that is getting hit when allow_unsafe_rename is set and the object store is mounted locally.
https://github.com/delta-io/delta-rs/blob/f05b2bf31530def92cdf7c5f22812e3ed6fe4eec/crates/mount/src/lib.rs#L46

Yeah we can definitely add this. First @djouallah could you try setting export MOUNT_ALLOW_UNSAFE_RENAME=true fixes your issue?

it seems to be working !!! interesting, question, how do I do partition by , and is there a way to control the file size, it seems daft generate really small file 15 mb

edit : it works fine in delta_rs 0.17.4 but not 0.18.2

Do you see a specific error with 0.18.2, or does it just have the same behavior as when  MOUNT_ALLOW_UNSAFE_RENAME is not set?


MM-16480 Update mattermost-redux

Ticket Link
https://mattermost.atlassian.net/browse/MM-16480
Related Pull Requests

Has redux changes (https://github.com/mattermost/mattermost-redux/pull/862)
Has mobile changes (https://github.com/mattermost/mattermost-mobile/pull/2917)

@lieut-data @hmhealey The cherry-pick shows failed checks, does that mean it has to be done again?
@hmhealey Also, are these the last PRs for v5.12.1 RC-1?


automatic placement of windows using keywords

Description of the new feature / enhancement
the interest is to use fancyzones in a more advanced way, this would allow each window to go into a zone using the keyword that no window overlaps or overlaps in this way each window would go into a zone until Make sure that all the areas are occupied, this would allow a simpler and more successful work
Scenario when this would be used?
let's say that I have 6 zones in my screen, that I want to position different windows without using my mouse, fancyzone would fill this task automatically since we will suppose to program this using different keywords, a bit like the soft placemint but in a simpler and more intuitive way: >>>>https://sourceforge.net/projects/placemint/
Supporting information
No response

Hello and thanks for your message. FancyZones already has hotkeys to move windows to different zones and expand into multiple zones. What am I missing here?

the goal being that in the face of little else is what the placemint software does because in reality fancyzone is an improved placemint without the base of placemint, for the moment fancyzone is only a window manager and we must place ourselves in such and such an area, what I want to do as an improvement and I'm working on it on my side but I still have bugs, what I want to do is make the windows this place it even in the zones as soon as they open using the keyword and if several windows have the same keyword I want to make sure that it goes by itself in an unoccupied zone here is the placemint link for more information : https://sourceforge.net/projects/placemint/

So like zone one, I would have “visual” and any app title that has visual would go there versus the app exe name. Correct?
/needinfo

yes that's the idea or by taking into consideration the title of the window thanks to keywords, I think that both options are good

Can you give me a real world example here?  Like, i use a lotta apps and most titles are dictated by the file loaded into them
I could see apps jumping around due to loading a file.


Freeze setuptools at 59.5.0

To address issue discussed in https://github.com/pytorch/pytorch/issues/69894#issuecomment-1080635462

I agree with Ben!

Sure I can make <=59.5.0

LGTM! As a side note could we also check if a later/latest version of setup tools fixes the bug.

The issue started with setuptools==59.6.0. It's fixed in later pytorch versions


runtime: Windows 2008: all goroutines are asleep - deadlock

I already reported this issue in https://github.com/golang/go/issues/20362 (which might be the same or related), but am opening a new issue as requested by @davecheney .
What version of Go are you using (go version)?
go version go1.9.1 linux/amd64
Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=".exe"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="windows"
GOPATH="/dn"
GORACE=""
GOROOT="/usr/local/go19"
GOTOOLDIR="/usr/local/go19/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-m64 -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build141570660=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="0"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"

What did you do?
I was able to reproduce the deadlock with a minimal test program that basically just executes a http GET request.
I ran the command in a loop and got the following results:

go1.7.5: No deadlocks
go1.8.4: No deadlocks (This means that the e4371fb179ad69cbd057f2430120843948e09f2f aka go1.8beta2-389-ge4371fb179 commit mentioned in #20362 is probably not the root cause)
go1.9.1: Lots of deadlocks, see example

Notes:

I was able to consistently reproduce this in 64Bit Win7 VM with Cygwin. However, it doesn't happen for every run of the program, but 20-50% of the runs trigger the problem.
I was not able to reproduce this in a local 64Bit Win7 Professional VM (also using Cygwin)

What did you expect to see?
No deadlock.
What did you see instead?
https://gist.github.com/felixge/a2efcaf098e1b8fa0ec1f7d67fb2481c

I just noticed that your using Cygwin.  Is it possible for you to test outside the Cygwin environment?

On 23 Oct 2017, at 22:05, Felix Geisendörfer<EMAIL_ADDRESS>wrote:
I already reported this issue in #20362 (which might be the same or related), but am opening a new issue as requested by @davecheney .
What version of Go are you using (go version)?
go version go1.9.1 linux/amd64
Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=".exe"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="windows"
GOPATH="/dn"
GORACE=""
GOROOT="/usr/local/go19"
GOTOOLDIR="/usr/local/go19/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-m64 -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build141570660=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="0"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
What did you do?
I was able to reproduce the deadlock with a minimal test program that basically just executes a http GET request.
I ran the command in a loop and got the following results:
go1.7.5: No deadlocks
go1.8.4: No deadlocks (This means that the e4371fb aka go1.8beta2-389-ge4371fb179 commit mentioned above is probably not the root cause)
go1.9.1: Lots of deadlocks, see example
Notes:
I was able to consistently reproduce this in 64Bit Win7 VM with Cygwin. However, it doesn't happen for every run of the program, but 20-50% of the runs trigger the problem.
I was not able to reproduce this in a local 64Bit Win7 Professional VM (also using Cygwin)
What did you expect to see?
No deadlock.
What did you see instead?
https://gist.github.com/felixge/a2efcaf098e1b8fa0ec1f7d67fb2481c
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@davecheney it's a bit tricky, because this machine is in a factory in china and I don't have physical access to it. But I'll try to have somebody on-site execute the example program above using cmd.exe as soon as possible.
That being said, I'm curious, how is executing a Go program under cygwin is different from executing it in cmd.exe? The Go program is compiled under Linux (not in cygwin). The only reason we're using cygwin is because it's easier for us to manage machines running sshd under cygwin, than managing windows machines directly.

I’m sorry I don’t know the answer to that. All I know is the installation instructions for Windows recommend minGW and cmd.exe or powershell.

On 23 Oct 2017, at 22:19, Felix Geisendörfer<EMAIL_ADDRESS>wrote:
@davecheney it's a bit tricky, because this machine is in a factory in china and I don't have physical access to it. But I'll try to have somebody on-site execute the example program above using cmd.exe as soon as possible.
That being said, I'm curious, how is executing a Go program under cygwin is different from executing it in cmd.exe? The Go program is compiled under Linux (not in cygwin). The only reason we're using cygwin is because it's easier for us to manage machines running sshd under cygwin, than managing windows machines directly.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@davecheney I was able to get remote desktop access to the machine and was able to reproduce the deadlock panic using the reproduction program from this issue, as well as by running the httputil test from #20362 . So I think cygwin related trouble can be ruled out.

I think this is likely a dup of the underlying problem in #20362, but it's OK to keep discussing it here until we are sure. Thanks for the very short reproduction program and for checking it against Go 1.7 and Go 1.8.
Because this is new in Go 1.9 my first guess would be that the internal/poll changes introduced in Go 1.9 are not quite right on Windows. We've already found problems with them, which are slated to be fixed in Go 1.9.2. The interesting question is whether the fixes we have queued also address your issue, or else there are more issues lurking.
The stack trace makes it look like package net is waiting on network I/O (goroutine 4), but that fact has not been communicated properly to the runtime, which sees all goroutines asleep and exits.
Can you please try your test with Go 1.9.2rc2 (https://github.com/golang/go/issues/22277#issuecomment-338238002) and see if the problem is fixed there or perhaps changes in some way? Also, could you please
set GOTRACEBACK=system

in your environment before running the test? That will give us stack traces for the system goroutines as well, in particular the network poller (if any).
/cc @ianlancetaylor @alexbrainman

We're just hit this issue, I can confirm it affects non-cygwin builds and I've reproduced it with a slightly amended reproduction case.
package main

import (
        "flag"
        "io/ioutil"
        "log"
        "net/http"
        "os"
        "runtime"
)

func main() {
        var (
                url      = flag.String("url", "", "URL to upload to")
                attempts = flag.Int("attempts", 1, "max attempts")
        )

        log.Printf("%s\n", runtime.Version())
        flag.Parse()

        if err := run(*url, *attempts); err != nil {
                log.Println(os.Stderr, err)
                os.Exit(1)
        }
}

func run(url string, attempts int) (err error) {
        for i := 0; i < attempts; i++ {
                res, err2 := http.Get(url)
                if err2 != nil {
                        log.Println(os.Stderr, err2)
                        err = err2
                        continue
                }
                defer res.Body.Close()

                resData, err2 := ioutil.ReadAll(res.Body)
                if err != nil {
                        log.Println(os.Stderr, err2)
                        err = err2
                        continue
                }
                log.Printf("%d %s\n", res.StatusCode, res.Status)
                log.Printf("%s\n", resData)
        }

        return err
}

While it doesn't happen every time its easy to reproduce, usually under 10 runs.

In our app after we saw this error during processing on a startup API call, then everything stopped working, not just the client but also the web server wired up to debug pprof also refused to respond preventing us from obtaining a stack trace.
I'm wondering if its related to the net polling fix: https://github.com/golang/go/commit/bf0f69220255941196c684f235727fd6dc747b5c
This currently seems to be Windows specific, which in our case is Windows Web Server 2008 R2
Just in case this is relevant the test binary was generated using cross compile on FreeBSD.

Testing go1.9.1 with https://github.com/golang/go/commit/bf0f69220255941196c684f235727fd6dc747b5c reverted still exhibits the same behaviour unfortunately :(

/cc @jessfraz @bketelsen
Are either of you able reproduce the issue (inside or outside Cygwin)?

On 23 Oct 2017, at 22:28, Dave Cheney<EMAIL_ADDRESS>wrote:
I’m sorry I don’t know the answer to that. All I know is the installation instructions for Windows recommend minGW and cmd.exe or powershell.

On 23 Oct 2017, at 22:19, Felix Geisendörfer<EMAIL_ADDRESS>wrote:
@davecheney it's a bit tricky, because this machine is in a factory in china and I don't have physical access to it. But I'll try to have somebody on-site execute the example program above using cmd.exe as soon as possible.
That being said, I'm curious, how is executing a Go program under cygwin is different from executing it in cmd.exe? The Go program is compiled under Linux (not in cygwin). The only reason we're using cygwin is because it's easier for us to manage machines running sshd under cygwin, than managing windows machines directly.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@rsc git bisect indicates the change at fault is likely e4371fb179ad69cbd057f2430120843948e09f2f
In addition we've only been able to reproduce this issue under Windows 2008 R2, Windows 10, 2012 R2 and 2016 appear to work OK.

It looks like https://github.com/golang/go/commit/e4371fb179ad69cbd057f2430120843948e09f2f may contain a error with the conversion of the go runtime.nanotime to asm, specifically it subtracts startNano here:
https://github.com/golang/go/blob/master/src/runtime/sys_windows_amd64.s#L489
which was not present in the original:
https://github.com/golang/go/blob/go1.8.4/src/runtime/os_windows.go#L604
This looks like it might be cut and paste error from monotonic component of time.now aka time_now.
The following fixes the hangs for me on windows amd64, although I'm still not clear why newer versions of Windows don't seem to be affected by this.
diff --git a/src/runtime/sys_windows_amd64.s b/src/runtime/sys_windows_amd64.s
index 744e78c708..fd26dfe75f 100644
--- a/src/runtime/sys_windows_amd64.s
+++ b/src/runtime/sys_windows_amd64.s
@@ -486,7 +486,6 @@ loop:
        SHLQ    $32, CX
        ORQ     BX, CX
        IMULQ   $100, CX
-       SUBQ    runtime·startNano(SB), CX
        MOVQ    CX, ret+0(FP)
        RET
 useQPC:

While this seems to fix the issue, its now clear that this change was intended as its explicitly mentioned, so more digging required.

Just found an interesting difference between a machine which seems to work and one which doesn't, namely the monotonic time is always zero on the broken machine.
Broken Machine
time.exe -test.v -test.run MonotonicString
=== RUN   TestMonotonicString
--- PASS: TestMonotonicString (0.00s)
        mono_test.go:250: Now() = 2017-10-24 15:20:05.1025971 -0700 PDT m=+0.000000000
PASS

Working Machine
time.exe -test.v -test.run MonotonicString
=== RUN   TestMonotonicString
--- PASS: TestMonotonicString (0.00s)
        mono_test.go:250: Now() = 2017-10-24 15:20:02.3098048 -0700 PDT m=+0.001954200
PASS

For reference the time.exe was built using a go 1.9.1 on the working machine and transferred the broken machine.

Another data point, possibly unrelated but still a problem, cross compiling the time test binary from FreeBSD amd64 to Windows amd64 results in a non-functional binary which instantly crashes with:
./time.exe -test.v -test.run MonotonicString
fatal error: fault
[signal 0x80000003 code=0x0 addr=0xfffffa80097d6b50 pc=0x45ddc7]

goroutine 1 [running, locked to thread]:
runtime.throw(0x619a63, 0x5)
        /usr/local/go/src/runtime/panic.go:605 +0x9c fp=0xc042033cf0 sp=0xc042033cd0 pc=0x42e06c
runtime.sigpanic()
        /usr/local/go/src/runtime/signal_windows.go:176 +0x169 fp=0xc042033d20 sp=0xc042033cf0 pc=0x442fe9
invalid spdelta runtime.walltime 0x45ddb0 0x45ddc7 0x3d792 -1
runtime.walltime(0xc042033d5814)
        ?:0 +0x17 fp=0xc042033d27 sp=0xc042033d20 pc=0x45ddc7

This is odd as windows amd64 doesn't have a walltime, it was removed by the commit in question.

Thanks for looking into this.  If the monotonic time is always zero, that is clearly a problem.
Can you see if https://golang.org/cl/73230 fixes this?

Never mind, that change clearly didn't work, though I don't know why.

To clarify, its not always zero but it does appear to be always zero when running that single test, which is quite different from other versions, which when running the same test has never been zero in my test runs.
I've not ruled out hardware differences causing this behaviour change yet.
I'm continuing to test but with the change in nanotime() from absolute to relative I'm concerned we could be seeing a number of issues due to cases where zero was treated as a special case e.g. not yet intialised, which can now happen during early initialisation as well.

Never mind, that change clearly didn't work, though I don't know why.

I suspect you did not initialize qpcStartCounter and qpcMultiplier that are used by nowQPC and nanotimeQPC.
But I would like to understand the problem before we change the code to automatically use nowQPC and nanotimeQPC.
Alex

@alexbrainman the summary of the facts I've found so far:

The issue results in very unstable apps built with go 1.9+ on some windows machines, typically deadlocking during network related activity.
A simple http.Get is enough to trigger the issue.
git bisect identified https://github.com/golang/go/commit/e4371fb179ad69cbd057f2430120843948e09f2f as the cause of the issue.
go1.9.2rc2 does not fix the issue.
Affected machines return monotonic time values of zero during early run stages according to time.TestMonotonicString, where those unaffected do not.
removing SUBQ    runtime·startNano(SB), CX from runtime.nanotime prevents the deadlock for the simple http.Get test.

Thank you @stevenh for the update. Unfortunately I don't have any bright ideas. It would be nice if I could reproduce it here. Maybe I will try and find PC similar to yours. You PC is real PC or VM?

Affected machines return monotonic time values of zero during early run stages according to time.TestMonotonicString, where those unaffected do not.

The TestMonotonicString calls time.Now at the very beginning and then print the value. It is reasonable for monotonic time to be close to 0. Maybe even 0 is OK if monotonic time changes slowly. Maybe change the test to sleep a little before calling time.Now and see what it prints. Also it might be useful to write program that calls time.Now in a loop and see how often monotonic time change, and run it on both good and bad computers. It might give us some clues. Perhaps http.Get assumes that monotonic time increases reasonable quickly, but real monotonic clock is slower than http.Get expects.
Alex

I'm still a little confused about why timing matters here. What if you do
go func() {
    for { time.Sleep(1*time.Minute) }
}()

in main? That will certainly stop the deadlock from being diagnosed, since the program is no longer deadlocked. Does it also give the http.Get time to complete?

I've made some more progress with this; there is definitely something in the runtime which breaks if nanotime() returns zero. I proved this by applying the following which prevents the issues:
diff --git a/src/runtime/time.go b/src/runtime/time.go
index abf200d7d3..e87b0fd461 100644
--- a/src/runtime/time.go
+++ b/src/runtime/time.go
@@ -309,4 +309,4 @@ func time_runtimeNano() int64 {
        return nanotime()
 }

-var startNano int64 = nanotime()
+var startNano int64 = nanotime() - 1

The reason this effects Windows 2008 boxes more than newer versions is the default clock resolution on Windows 2008 is 15ms instead of the new 1ms default, so it has a larger window during which nanotime() can return zero.
Two other things that prevent it, or at least prevent me from reproducing it, are:

Setting a higher timer resolution e.g. 0.5ms vs 15ms default.
Adding a small delay to the app before using any networking functions.

I'm currently working my way though the nanotime() consumers to try and identify which ones are impacted.

I'm OK with that being the fix as long as we think that nanotime does in fact move forward eventually on the machines exhibiting the problem.

I sent CL 74310. I'm comfortable with that minimal change being in Go 1.9.2, which is scheduled to go out today. Thanks for identifying such a nice fix.

Moved to Go 1.9.2 but waiting to mark CL as approved for Go 1.9.2 until @ianlancetaylor and @aclements look at it.

My hunch about a consumer of ```nanotime()`` treating zero as a special case was correct.
The runtime scheduler sched.lastpoll does just that in several places. When it is zero it can prevent a network poll from being triggered which leads to deadlock. I tested this by creating a nanotime2() which was nanotime() + 1 which also fixes the issue.
What I would like to understand @rsc is why do we want / need nanotime() to be relative instead of being absolute?
Currently this creates a disparity between platforms that use go and those use asm for nanotime(), in addition removing this means less operations, so a small speed up too. Could you enlighten me?

@stevenh I care that monotonic time (what package time gets from runtime.time_now) is in a known limited range, so that comparison is well-defined and we don't have to worry about wraparound. Defining that it starts at process start time is a way to do that. System boot time might also be a way to do that, but not all operating systems make that guarantee. Rather than assume the guarantee or work out which systems do guarantee and which don't, we just define monotonic time as relative to our process start. That also reinforces the point that monotonic times are meaningless outside the current process.
The fact that nanotime either does or does not have the process start reference point is definitely confusing. I would not mind if the subtraction of startNano was pushed into the remaining implementations and removed from timestub.go, so that nanotime has process start = -1 on all systems.

@rsc thanks for clarification, makes total sense.
It would definitely be good to get all platforms aligned and this specific goal / criteria documented, as not only would it eliminate the confusion, but it would also provide a wider audience for testing which in turn should help prevent issues like this slipping into releases unnoticed.

I would not mind if the subtraction of startNano was pushed into the remaining implementations and removed from timestub.go, so that nanotime has process start = -1 on all systems.

I'd be okay with this, too, though I would add two other things:

Buy into it completely and eliminate runtimeInitTime.
Either panic if nanotime is called before the zero time is established, or establish the zero so early that it's hard to accidentally call nanotime before that. (This was the source of #21554.)

@aclements, both those SGTM. Want to open a separate issue for that? This issue will be closed when the fix lands in Go 1.9.2.

Filed #22436.

Per chat with @ianlancetaylor waiting for CL 73410 to pass the build dashboard, and then will approve for Go 1.9.2.

CL 73410 OK for Go 1.9.2.

go1.9.2 has been packaged and includes:

CL 73410

The release is posted at golang.org/dl.
— golang.org/x/build/cmd/releasebot, Oct 26 21:09:26 UTC

Thanks to everybody who worked on this for the incredibly fast fix!


Bootstrap update (v5.3.3) for CSS and JS

Update to Bootstrap 5.3.3 (from 4.3.1)
Switch to Bootstrap Scss

The prod build breaks the CSS:

In the development version it looks ok

Taking shape:
https://github.com/user-attachments/assets/5bf79349-483e-4372-9889-ed7dd8ee6588
https://github.com/user-attachments/assets/90201ac1-7443-4617-87f3-3d746c38060f
The idea is to separate the bootstrap-specific files from the rest of the theme, so it can be updated easier (or split from bootstrap in the future).
Pending:

applying PostCSS for CSS optimization
review dark theme

The page load seems to be comparable for the pre-release version and the current production one

Left: https://adritian-demo-git-theme-update-update-theme-d564cd-adrianmoreno.vercel.app/ (preview URL for https://github.com/zetxek/adritian-demo/pull/93)
Right: production version (https://adritian-demo.vercel.app/)

The demo site doesn't build right away due to some changes in the config - but seems to be doing well layout-wise:
https://github.com/zetxek/adritian-demo/pull/94
Updating to Bootstrap 5 with Sass will be worth it as the customizations are quite much cleaner, using variables.
Excited about this facelift to the theme!

The speed is confirmed still in production 🎉
Just tested adrianmoreno.info in mobile and desktop after https://github.com/zetxek/adrianmoreno.info/pull/235, and the score in lighthouse is still 100/100/100/100 (performance/accessibility/best practices/SEO)

Nice @zetxek I will try to update my site during the week, amazing work 🔝

Nice @zetxek I will try to update my site during the week, amazing work 🔝

fantastic! If you find any issue - we can update the docs in https://github.com/zetxek/adritian-free-hugo-theme/blob/main/upgrading.md
For a while I didn't want to make any breaking changes - but I wonder how many people upgrade the theme... and even if they do, some improvements are worth the manual update!

Nice @zetxek I will try to update my site during the week, amazing work 🔝

fantastic! If you find any issue - we can update the docs in https://github.com/zetxek/adritian-free-hugo-theme/blob/main/upgrading.md For a while I didn't want to make any breaking changes - but I wonder how many people upgrade the theme... and even if they do, some improvements are worth the manual update!

Hi @zetxek I updated my site with the last release, after following the upgrading.md all works great for now i didn't notice any break on my site. Thanks for that big update! :tada:


Unable to generate plan

Have deployed it on the GCP. Created very simple problem with 2 delivery and 2 vehicle. On hitting Generate getting unknown error 0 msg. Refer the screenshot.

dispatcher_20230213095656.zip

I'm able to generate a solution with the attached scenario, so seems to be a deployment issue. Do you see any more details about the error in your browser Network tab or in your GCP logs?

Closing due to inactivity.


Several improvements for non-Windows systems

Allow lowercase unhyphenated utf8
Allow LC_CTYPE to contain language as well as encoding
Relax formatting requirements, so<EMAIL_ADDRESS>or similar gets accepted as well
Handle overrides correctly, using the highest priority non-empty setting
Simplify test suite by reducing each test to one line
Fix tests since assigning null or undefined to process.env will stringify that (at least on my Node 5.3.0), instead of unsetting the variable

This fixes #2. I consider this solution superior to #3, so personally I'd say it supersedes that.

Thanks for putting this together, I've landed it in 2.0.1.


Add domains, versioning, and tests

Fixes #
Changes made in this Pull Request:

This adds warnings/errors for if a molecule falls outside a training set
Also adds versioning to the Model in case we change it again in the future

PR Checklist

[ ] Tests?
[ ] Docs?
[ ] CHANGELOG updated?
[ ] Issue raised/referenced?

Codecov Report

Merging #54 (06007ba) into main (43f3d8a) will decrease coverage by 0.14%.
The diff coverage is 93.10%.

Additional details and impacted files


Create metrics-release-criteria

Wanting some ready guidance available for people who want to develop metrics.

Re-reading the CONTRIBUTING file, maybe it already describes the process of how to propose metrics, and how to accept, with enough detail. If any, I would suggest to modify it, instead of creating a new file.
That do you think?

I think there should be a single file for all WGs that describes this process. What is here is really about an external person wishing to bring something forward. I think that the process by which a metric is released will be slightly different. I'll put such a document in the Metrics repo.

@germonprez, sorry, I didn't understand. Do you mean that the CONTRIBUTING.md file in this repo should remain as such, and that we should have a description of the release process in the metrics repo? Or something else?

@GeorgLink : This is trying to solve the problem of people in working groups having to go to 2-5 different places in order to contribute. I think a little redundancy is helpful because we want people who are not on the calls to contribute. Even though I am on many calls, I still find it sometimes unclear how the different groups will decide metrics are ready to release. We actually left that to the working groups explicitly, I believe. I am fine with this document going away at some point, but right now I think we have too many places to look for important information.

@jgbarah : I think as long as we distinguish between the contributing process and the releasing process for metrics into "these are metrics we actually worked out" view, and how we make the transition from metrics approved in the repository to metrics that we release clear, it works for me ... I would like to make a push for developing metrics, and some basic standard for saying, these are "ready to release" and "these are not".
Some aspect of the CHAOSS community has been reticent to "release" the metrics we approved thus far, so it "feels" like there is some standard or check beyond contributing that is expected. Perhaps not, and if not, then the contributing doc with a few more words might do the trick.

Here is a draft for articulating the criteria for the release of metrics from a WG.
As WGs prepare metrics for release they should meet the following criteria:

The WG has a defined focus area with goal within which the metric resides
The metric answers a specific question associated with respect to the focus area
The metric has a detailed metrics page associated with it. For example, a page that provides:

Description
Use Cases
Formula
Sample Filter and Visualization
Sample Implementation
Known Implementations
Test Cases (Examples)
External References (Literature)

Here is a draft for articulating the criteria for the release of metrics from a WG.
...

Thanks for the summary, @germonprez. Maybe I was too quick: I was not thinking on metrics that didn't have all of this. I was mostly thinking of metrics that had all of this, but maybe didn't have the consensus of the wg, which is something that up to now didn't happen, because of the discussion in issues, and the peer review process.
I'm ok with your proposal, and I agree with you that it should be in the metrics repository, likely linked from somewhere (I suggest the CONTRIBUTING.md file) in each working group repository.
WRT the template for the metric, if we want to specify one, i suggest that we follow the one in the "ready to release" metrics in this wg, just because we had the opportunity to flesh out and complete a bit previous templates.

@jgbarah : I think as long as we distinguish between the contributing process and the releasing process for metrics into "these are metrics we actually worked out" view, and how we make the transition from metrics approved in the repository to metrics that we release clear, it works for me ... I would like to make a push for developing metrics, and some basic standard for saying, these are "ready to release" and "these are not".

OK, I see. Then, maybe what @germonprez suggests is good enough in this direction?

Some aspect of the CHAOSS community has been reticent to "release" the metrics we approved thus far, so it "feels" like there is some standard or check beyond contributing that is expected. Perhaps not, and if not, then the contributing doc with a few more words might do the trick.

Yeah, I think i see the general feeling.
So, i suggest that we have two texts:

One would be project-wide, along the lines @germonprez comments, likely in the metrics repo. It would mention the minimum criteria for a metric to be "releaseable" (if that is a word ;-) ).
Another one would be specific for each working group, in the CONTRIBUTING.md or in  a spearate file (in this case, i suggest the name RELEASING.md, just because I guess that's a standard practice), defining the specific process the working group uses to decide that a metric is considered as released.

If you all agree with this, maybe we should widen the discussion about the first item to the whole CHAOSS community (I suggest preparing a pull request to the metrics repo, and then proposing the discussion, to focus the matter), and we just merge this pr (maybe renaming the file to RELEASING.md) as a first iteration of a wg defining "formally" the process for approval.
What do you think?

Hi @jgbarah and thanks for this. I'll get together a releasing.md file for the metrics repo and issue the pull request today, spelling out the points above. You can then circulate to the wider community. Sounds like a plan.

I saw the releasing.md file during the CHAOSS weekly meeting today. Can we close this pull request, and if needed continue refining that file?

We agree in closing during our biweekly meeting.


test: fix and improve tests for optimism and verification [APE-776]

What I did

fixes: #
How I did it
How to verify it
Checklist

[ ] Passes all linting checks (pre-commit and CI jobs)
[ ] New test cases have been added and are passing
[ ] Documentation has been updated
[ ] PR title follows Conventional Commit standard (will be automatically included in the changelog)

@mrsuttton Pinging for visibility

dup of #80  - needed to push branch upstream for ci


Immortals show fountain timer when selected

Selecting an Immortal on Battlefield of Eternity shows the health bar with the fountain. They need to be filtered to not show that, so it only appears for units owned by the players.

fixed it with two validators


[Suggestion]: Async Database

Hello there, good Day!
More context
I have found this talk about concurrency in databases, it may be helpful.

Concurrency is taken into the initial consideration. PoloDB is designed to be embedded.
The concurrency depends on the platform.
Not all the platforms support concurrency, and the APIs on different platforms vary.
So currently PoloDB doesn't support concurrency. Maybe it can support concurrency on popular platforms.

It's still possible to implement async IO in PoloDB. I will do some research on this.

I am trying to use PoloDB with Tokio. In my understanding, for writes a global lock is required, but reads are thread safe. Is this right?
#[tokio::main]
async fn main() {
    use polodb_core::bson::{doc, Document};
    use polodb_core::Database;

    use std::sync::Arc;
    use tokio::sync::Mutex;

    let database = Arc::new(Database::open_memory().unwrap());
    let session = Arc::new(Mutex::new(database.start_session().unwrap()));

    let mut res = vec![];
    for i in 0..10000 {
        let s = session.clone();
        let db = database.clone();

        let r = tokio::spawn(async move {
            let mut session = s.lock().await;
            session.start_transaction(None).unwrap();

            let collection = db.collection("books");
            if let Err(e) = collection.insert_one_with_session(doc! { "index": i }, &mut session) {
                println!("{i}: {:?}", e);
            }

            session.commit_transaction().unwrap();
        });
        res.push(r);
    }

    for i in 0..10000 {
        let db = database.clone();

        let r = tokio::spawn(async move {
            let collection = db.collection::<Document>("books");
            let books = collection.find(None);
            if let Err(e) = books {
                println!("{i}: {:?}", e);
            }
        });
        res.push(r);
    }

    for r in res {
        let _ = r.await;
    }
}

I found this issue quite late and have to say, I'm quite disappointed that this is not mentioned more prominently.
The API provides sessions and everything you would expect from a DATABASE. Learning now that the DB is not concurrently safe is more then annoying. sqlite is also embedded and concurrency safe.


log update

Along with last week updates and this week updates ;)

move to https://github.com/WindowsGeekPro/workaholic-meow/issues/68


Make minimize-to-tray optional

Currently the application will minimize to the tray by default.  We should turn this into an optional feature since the icon for MM is not widely known and it could confuse the user to see the application "disappear" as soon as it's been minimized.

To fix the following should be done.

Disable this functionality by default in the main process.
Add a new app setting to toggle this.
Update the Settings screen to display this setting.
Add a hook to the main process to react when this setting is changed.

Optionally we could update the handler in the main process to check the app setting whenever the user clicks the minimize button, but I'm uncomfortable with the main window taking a direct dependency on a module.


possible to side load into native app?

Hey there, Slashy looks so awesome!
I was wondering if you had any ideas or suggestions on how one might go about side loading Slashy into the "native" desktop app for macOS.
iiuc, the native desktop apps are simple electron wrappers, but i've never attempted to change them to enable something like Slashy.
Any and all ideas or guidance would be much appreciated! Thank you and congrats on the launch!

+1 for the idea of adding to the desktop app.  Also, could it be added as an extension to the Notion Enhancer? https://github.com/notion-enhancer

I was looking into setting up an Electron wrapper, but was unsuccessful. Unsure how it'd work, and whether all the browser APIs would be available within Electron (especially for things like camera/audio recording). I could try adding it into Notion Enhancer, not sure if it might be a lot of work.

Hi, is there news on this issue? Would really like to use slashy in the native app :)


Automation - CiTests: Run from local electron instance on developer machines

Coming again from #1415 - running the CiTests locally is difficult, because you need to have a packaged Oni build. It makes sense to run the CiTests against the packaged build, because this expands our coverage to classes of issues around packaging / bundling, but for a developer build, it shouldn't be necessary or at least not by default.
This is painful since additional dependencies are needed, and it's tough to iterate if there needs to be non-test code changes, since you have to rebuild/repack everytime.
A fix for this would be to update the code that spins up Oni here:
https://github.com/onivim/oni/blob/e8fc9e0b4f655e1dd15d1408a2ef5b578d89f5e2/test/common/Oni.ts#L60
Such that, on a developer machine, it would run electron main.js from the npm install (much like how we run npm run start). This could be the default - and then we could override it with environment variables (ie, ONI_USE_PACKAGED_BUILD_FOR_TEST) on the appveyor / travisCI builds to pick up the packaged build. It would be a great productivity boost to run these without needing a packaged build.

This is implemented in #1456 now - running npm run test:integration from a non-CI machine should run from the local bits, as opposed to require packaging the app.


Update to golang 1.20.4

How to categorize this PR?

/area networking
/kind enhancement
What this PR does / why we need it:
Update to golang 1.20.4.
Which issue(s) this PR fixes:
None.
Special notes for your reviewer:
Release note:

Update golang to 1.20.4.

/lgtm


wt.exe (preview) brings access denied error in run dialog

Windows Terminal version
1.19.2682.0
Windows build number
10.0.19045
Other Software
Windows Terminal v1.18 (1.18.2681.0)
Steps to reproduce

Install Windows Terminal v1.18 (stable) from the Store.
Install Windows Terminal v1.19 (preview) from the Store.
Change app alias wt.exe from Windows Terminal stable (v1.18) to Windows Terminal Preview (v1.19).
Open Run dialog and type wt.exe.

Expected Behavior
Windows Terminal preview opens.
Actual Behavior

"Can't access the device, path or file. You don't have the required permissions to access this element."

Does just launching Terminal Preview directly from the Start Menu (not using the "App execution alias", wt.exe) work?
This sounds like something that'll need to be filed internally using the /Feedback Hub. The bot should come through with some instructions. However, instead of filing feedback on the Terminal app, could you file it on "Developer Platform > App Launch"?

Does just launching Terminal Preview directly from the Start Menu (not using the "App execution alias", wt.exe) work?

@zadjii-msft
Yes it does.
Regarding the feedback hub: I will send it tomorrow. Should I reference this GH issue somehow?

Should I reference this GH issue somehow

meh, probably no need. Just make sure to share the aka.ms link that it generates, so that I can make sure to promote it to the right team ☺

@zadjii-msft
I created the feedback. But I can't record as it failed to start recording and I didn't get an link to my report.

@htcfreek thanks! Mind trying again? Sometimes feedback recording can be wonky.

Will try again. Btw, ot doesn't happen in my Win11 VM.

@carlos-zamora
I was able to do a recording.
But again I don't have a link for you. Hopefully the following information help you to find the feedback.

Category: Developer Plattform > App commandline
Title: When entering wt.exe (Windows Terminal Preview) in the Run dialog I get an access denied error
Text:

Steps to reproduce:
1. Install Windows Terminal (v1.18)
2. Install Windows Terminal Preview (v1.19)
3. Change app alias for wt.exe from WT to WT Preview.
4. Open run prompt, enter wt.exe and press enter.

Expexted:
Windows Terminal Preview opens.

What has happened:
The error message "The specified device or path or file cannot be accessed. You may not have sufficient permissions to access the item." is shown.

I'm pretty sure the backend changed recently... kinda having a hard time finding this. Did you click the Share button?

I am not logged in so I can't access my recently added feedback. And as I couldn't find the first one usig the search I can't use a share button. Since the second feedback I am out of office for two weeks. I will try to find and "share" the second feedback when I am back on my computer.

@zadjii-msft
I can't share you a link. I tried everything but I can't find my feedback even if I enter the exact title. My it is not visible to the public. (As I wasn't logged in when sending the feedback I don't have a "My Feedback" list.) Feel free to close this issue.


Not sure why but my game crashed.

I tried to build a gate and my game froze for a second and then crashed when I placed the final piece.
I only have 3 mods in place AppliedEnergistics2, JEI, and JSG.
crash-2024-02-04_08.39.03-server.txt

Duplicate of #8


[RFE] Check whether Inspektor Gadget works on Mariner

Current situation
We don't know whether IG works on Mariner or not.
Impact
People using Mariner don't know if they can use IG on top of it.
Ideal future situation
We should verify if it works or not. If it doesn't work, then we should see what we need to do to make it work. If it works, then we can add it to the list of distributions that have been tested.

Duplicated of https://github.com/kinvolk/inspektor-gadget/issues/401, right?

Yes... Sorry about the noise. We discussed this with Andy last week, I didn't check whether he had already filed the issue :-/


CLI option for IAM Role in annotations

Describe the solution you'd like
Following the AWS Config instructions for using kube2iam enabled EKS clusters, we have to edit the Velero Deployment object after it is generated, either interactively through kubectl edit deploy/velero or through another means (creating and applying a patch for the deployment, using a mutating admission webhook to intercept the deployment); this is not great for deploying Velero in automation.
It would be ideal if the velero install ... command provided an option to set the value of the iam.amazonaws.com/role annotation to a given value to generate the Deployment fully.
I would like to propose a workflow like this:
velero install --provider aws \
  --aws-iam-role velero-role \
  --secret-file ./credentials-velero \
...etc

that results in a Deployment containing the following:
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
    namespace: velero
    name: velero
spec:
    replicas: 1
    template:
        metadata:
            labels:
                component: velero
            annotations:
                iam.amazonaws.com/role: velero-role

Anything else you would like to add:
If there is a better way to handle this situation, I would also be open to suggestions.
Environment:
AWS EKS with kube2iam

Velero version (use velero version): 1.0.0
Kubernetes version (use kubectl version): 1.10.13
Kubernetes installer & version:
Cloud provider or hardware configuration: AWS
OS (e.g. from /etc/os-release): Amazon Linux 2 (CentOS)

Thanks for logging the issue @tlkamp. We're trying to balance keeping velero install simple/not too many CLI flags, with giving users what they need.  We'll definitely take a look at this and see if/how we can add it. Alternately, I'm curious if you've looked at the Helm chart as another means of installation?

@skriss thanks for getting back to me!
Please forgive me as I have no working experience with Helm (we are not using it), just an idea of what it is/does.
Ideally, we would like to deploy Velero onto our EKS clusters when they are built to ensure the cluster "base load" includes backup and migration/DR utilities. In order to enable Helm deployments of Velero as part of the base infrastructure load for us, we would need to also add Helm/Tiller into the base load for this single deployment. It would be a little cumbersome to do this if we could accomplish the same resulting deployment with a single extra CLI option. If I'm missing some key points to a better solution here, please please please let me know.
I also understand the desire to keep the installation options minimal. Perhaps a better alternative would be to support a generic --annotations key1=value1,key2=value2 option rather than supporting each individual cloud provider/annotation desire.

@tlkamp Would generating the YAML via velero install --dry-run -o yaml and keeping that in a git repo be usable with your automation?

@nrb it would be, yes, in the same way that adding Helm to my automation would be "usable"; it just creates a really terrible user experience when a new version of Velero is released. The workflow becomes:

Generate the yaml file
Manually add the annotation to the yaml
Deploy through automation
Wait for a new version of Velero to release
Return to step 1

This is the only issue we're encountering with our use of Velero -- the deployment not being generated "fully" and it' all due to a single annotation missing in the file.
I'm more than happy to submit a PR for this myself, assuming it would be accepted.

Yeah, that's a valid problem.
Truthfully, I'm very torn about extending velero install to include more features, but at the same time it's definitely a blocker for kube2iam/kiam uses.
For myself, I wouldn't reject a PR for this and would be happy to review it.

I think the generic approach of adding a --pod-template-annotations flag is reasonable. If we start adding provider-specific flags (e.g. --aws-iam-role), then the possible number of new flags explodes, but if we keep things generic, there's a limit to how many additional useful flags there are.

@tlkamp Are you using restic? Do you want/need different pod template annotations on the restic daemonset as opposed to the velero server deployment?

@nrb we are not using restic. We're only using Velero for our backups. The Velero documentation for AWS indicates that it needs some IAM grants in order to backup the cluster and upload said backup to S3.
We're using EKS with AWS IAM instance profiles so the credentials are auto-rotated by the system. We use kube2iam to make the connection between the applications and the IAM grants they require. kube2iam works by reading the annotations on the pod to associate the role, hence needing the annotation on the Velero pod, which is defined in the Deployment :)

@tlkamp Thanks! Just making sure, I can foresee that there may be a use case for adding different annotations to the restic daemonset. For now, I'm :+1: to having a single flag that adds the same annotations to both the daemonset and velero deployment.


object prototype may only be an object null:undefined

object prototype may only be an object null:undefined,just beacuse  the function WrapGridLayoutManager is not defined in recyclerListView,what can I do?

You might be using an old version. Try with the latest one.


Unit tests for 'ltag' table handling

How to rebase this? (Sorry, I'm such a newbie to git).

Thanks.  Merged manually.


In accessrules.py, enableSyslog is not part of the VALID_JSON_DATA

When creating a rule, and trying to enable default syslog, the accessrule class is rejecting the enablesyslog bool. I made sure it was a valid json entry by comparing two rules with and without syslog enabled.
I made my code work by modifying the accessrules.py manually. I added the enableSyslog value in the VALID_JSON_DATA.
Is there another way to enable that syslog? If not, please add it to the master branch.
Thanks

Fixed.  Pushed to Master.  Created a new pip release too.  20200213.0


Fix specs

In this pull request I introduce the guard-compat gem to fix some of the specs. I could reproduce the last two failing specs, but they were hard to fix without breaking some of the other specs, so I left them there for now (something to do with gems in the gemfile).
In addition I add a spec for my run_all fix submitted in https://github.com/modeset/guard-teaspoon/pull/39.

!! Thanks!

Coverage increased (+31.82%) to 100.0% when pulling fb9a8e5b7bddb4819f771c890e77d89440bdb2d3 on esposito:patch-1 into 4fd5c29c8987881fbbbc40f202766a386f1d2d9f on modeset:master.

The root cause of the run_all function not running all test files seems the be the fact that the options hash is shared between the runner and the Teaspoon console. This could be fixed by cloning the options hash before passing it on to this console. I was not sure whether this fix, though nicer, would break some other functionality, so I left it out.

You want to give it a shot? I've got some time slated to work on this shortly, and so I'm pretty willing to merge any PR and see where it nets out.

Hi guys!
I've migrated/sent PRs for many popular Guard plugins to use Guard::Compat. (guard-teaspoon wasn't popular/active enough to fit in the top 25).
If you have any issues, let me know (mention me, etc.).
I'd recommend checking out changes I made to guard-haml and guard-brakeman (check the revision history) - which also included migrating to RSpec 3.2, some reorganizing, etc.


Webpack demo: Typescript Sourcemaps Support

I am reporting an issue with

[ ] TypeScript definitions
[x] another resource in this repository

The provided demo app for webpack does not support source-maps for tsx? files. I activated the webpack option
...
devtool: "source-map"
...

But only the index.ts, which is the entry point, is mapped correctly in the chrome-dev tools. All other modules like ./widgets/App.tsx are somehow mapped but show already transpiled content (I guess thats the output of the arcgis webpack plugin / dojo webpack plugin:
./app/App.tsx:
define(["require", "exports", "tslib", "esri/core/accessorSupport/decorators", "esri/widgets/support/widget", "esri/views/MapView", "esri/widgets/Widget", "./App/AppViewModel", "./Header"], function (require, exports, tslib_1, decorators_1, widget_1, MapView_1, Widget_1, AppViewModel_1, Header_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    MapView_1 = tslib_1.__importDefault(MapView_1);
    Widget_1 = tslib_1.__importDefault(Widget_1);
    AppViewModel_1 = tslib_1.__importDefault(AppViewModel_1);
    var CSS = {
        base: "main",
        webmap: "webmap"
    };
    var App = (function (_super) {
        tslib_1.__extends(App, _super);
        function App(params) {
            var _this = _super.call(this, params) || this;
            _this.viewModel = new AppViewModel_1.default();
            debugger;
            return _this;
        }
...

Debugging with the output is very inconvenient, especially in combination of ES5 output and async/await. Is there a way that sourcemaps show the original TS sourcefile?

I haven't been able to get it to work yet, but I'll keep trying.


Fix incompatible mmu-type

Per https://github.com/riscv-non-isa/riscv-device-tree-doc/blob/master/bindings/riscv/cpus.txt , the mmu-type attribute should be set to "riscv,sv32"

This change work fine on #46 .

Thank @chiangkd for contributing!


Implement user interface for software and versions

Coverage decreased (-1.72%) to 67.57% when pulling a393cedc82ae4dbe659bdfed2e9d0de1a6a65aa8 on guidow:software_ui into d1b18409c594a94428bfc3952641681a4d630505 on pyfarm:master.

Coverage decreased (-1.83%) to 67.46% when pulling a393cedc82ae4dbe659bdfed2e9d0de1a6a65aa8 on guidow:software_ui into d1b18409c594a94428bfc3952641681a4d630505 on pyfarm:master.

Coverage decreased (-1.13%) to 68.16% when pulling 5a3f652d3feb7d81ef10c6e285adae463a13f408 on guidow:software_ui into d1b18409c594a94428bfc3952641681a4d630505 on pyfarm:master.

Coverage decreased (-1.13%) to 68.16% when pulling 5a3f652d3feb7d81ef10c6e285adae463a13f408 on guidow:software_ui into d1b18409c594a94428bfc3952641681a4d630505 on pyfarm:master.

Coverage decreased (-1.13%) to 68.16% when pulling 5a3f652d3feb7d81ef10c6e285adae463a13f408 on guidow:software_ui into d1b18409c594a94428bfc3952641681a4d630505 on pyfarm:master.

Coverage decreased (-1.13%) to 68.16% when pulling 5a3f652d3feb7d81ef10c6e285adae463a13f408 on guidow:software_ui into d1b18409c594a94428bfc3952641681a4d630505 on pyfarm:master.

Coverage decreased (-1.05%) to 68.24% when pulling 711660f12e2ca2bd61fd86ce01988b65566a8cea on guidow:software_ui into d1b18409c594a94428bfc3952641681a4d630505 on pyfarm:master.

Coverage decreased (-1.05%) to 68.24% when pulling 711660f12e2ca2bd61fd86ce01988b65566a8cea on guidow:software_ui into d1b18409c594a94428bfc3952641681a4d630505 on pyfarm:master.

Coverage decreased (-1.05%) to 68.24% when pulling 711660f12e2ca2bd61fd86ce01988b65566a8cea on guidow:software_ui into d1b18409c594a94428bfc3952641681a4d630505 on pyfarm:master.

Is this ready to merge now?

LGTM, thanks for adding the comment.


Merge CIP code

I've just noticed a couple of errors in the Makefile that could be corrected as part of this. Will need to double check with Arthur though:

Line 166, no .PHONY for coverage target
Line 267, target does not match .PHONY definition on line above
Line 285, target does not match .PHONY definition on line above


Custom decimal separator

Is decimal_separator argument not working as intended?
Parsing "397,72" with FastFloatParser.TryParseFloat and argument decimal_separator: ',' results in value 397. I would expect it to be able to parse the decimals as well: 397.72.
Parsing "397.72" with FastFloatParser.TryParseFloat and argument decimal_separator: ',' results in value 397.72. I would expect it to only parse the int part 397.
Is there a reason why the call to helper function ParseNumberString does not pass along the decimal_separator argument:
https://github.com/CarlVerret/csFastFloat/blob/76d6a2e76a6d3c1f90a7f4b9747661979158e7e4/csFastFloat/FastDoubleParser.cs#L468

Thanks for pointing that, I'll fix it promptly.

Fixed in release 4.1


Add directories for icon source files

Illustrator source files and intermediate SVGs for Chef icons can go here.
cc: @jamescott

+1 ... I will add the source AI files after this is merged.

We should exclude these (and possibly other) directories from the gemspec (see http://guides.rubygems.org/specification-reference/#files) so that people using this as a Gem don't need to install these source files.
There's probably a similar thing you can do for package.json but I'm not sure what that is.

@smith absolutely, that occurred to me as well -- will do that.

@smith package.json includes everything in dist, which is built by Grunt. I went ahead and added images/icons/*.svg (i.e., the processed SVGs) to the list of files that make it into dist.


Preserve pagination-hotkey after navigation

Fixes #6146
Test URLs
How to replicate the issue + URL
Open https://github.com/notifications
Select 10+ items
Mark as done
Wait for the DOM to be automatically regenerated (and our changes lost)
Screenshot
NA

🤷 not sure where I went wrong here.

You did not even copy-paste my suggestion
The selectors are wrong, there's no a.paginate-container
You did not run it before commenting "it doesn't work", meaning you're asking me to debug your PRs before you tried

That was an honest mistake I tested each every one, when I was putting in the aeach selector I by mistake put the a in the wrong place.
Your right I have to be more careful in the future


Implement LUA binding allowing sending info text to clients

Since we also have InfoMessageCmd now:

This is awesome, as it should simplify reporting to the user. it looks like this can be accessed in-game with /imsg <number> <string>
What does <number> relate to?

This is a message type as defined in InfoMessageCmd.h
enum class InfoType : uint8_t {
    COMBAT         = 1,
    DAMAGE         = 2,
    SVR_COM        = 3,
    NPC_SAYS       = 4,
    VILLAIN_SAYS   = 5,
    REGULAR        = 6,
    PRIVATE_COM    = 7,
    TEAM_COM       = 8,
    SUPERGROUP_COM = 9,
    NEARBY_COM     = 10,
    SHOUT_COM      = 11,
    REQUEST_COM    = 12,
    FRIEND_COM     = 13,
    ADMIN_COM      = 14,
    USER_ERROR     = 15,
    DEBUG_INFO     = 16,
    EMOTE          = 17,
    CHAT_TEXT      = 18,
    PROFILE_TEXT   = 19,
    HELP_TEXT      = 20,
    STD_TEXT       = 21,
};

Is this intended to replace ChatMessage? There is some overlap there.

This was implemented in #611 in v6


Provide links to the toolchain

Add the links for these:
Azure Machine Learning
Azure HDInsight
Hadoop R ScaleR
Azure SQL Data Warehouse

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

ID: a6fa3836-822d-0235-1ebf-bc05d217f3f0
Version Independent ID: 823083a4-4f1e-a040-7b9b-14be0ebe0304
Content: Innovation tools to predict and influence - Cloud Adoption Framework
Content Source: docs/innovate/best-practices/predict.md
Service: cloud-adoption-framework
Sub-service: innovate
GitHub Login: @BrianBlanchard
Microsoft Alias: brblanch

Thanks for reporting - this issue is under review.  This is a Microsoft Internal DevOps Bug ID AB#191538

This issue has been resolved. Thanks!


Donation link invalid

After pressing the Donate-link, Paypal rejects with the following message:
"This organization can't accept donations right now."
Version <IP_ADDRESS>

Thanks.
Looks like PayPal has restricted donations to registered charities 🤔
I'll look for another way to fix it, but this should work for now if anyone finds it.
https://paypal.me/audioswitcher
Donations are not at all expected/required, especially since I haven't released an update in a while xD


Virtual scroll with complex items and GPU acceleration

Bug, feature request, or proposal: Bug
I'm not sure it's a bug but when items of the Virtual Scroll are complex and take some time to render the virtual scroll will show an empty container when scrolling really fast.
The GPU will always scroll at 60fps so the paint does not have the time to show, it will get destroyed for the next calc.
Turning GPU acceleration off will cause a lower FPS in favor of scrolling animation.
See example in this blitz
Is the only solution turning off GPU?
For example, a virtual scroll for a table might have complex rows...

I have the same problem.

You could probably create a custom data source that defers the complex calculation. Similar to how this example simulating server latency works: https://stackblitz.com/angular/ggjvgvmeejr?file=app%2Fcdk-virtual-scroll-data-source-example.ts


Compiling with  vue-cli-service build --mode development --modern produces output that fails to run

Version
3.4.1
Environment info
MacOS/Chrome 72

FYI: The instructions on this page to run `vue info` does not work anymore.

Steps to reproduce
Steps are so basic, no project is required.

Create a new project with vue create hello-world
Use all defaults when creating.
In new project directory, execute vue-cli-service build --mode development --modern
Try to run outputted vue app.
Result: Produced project will error with
Uncaught TypeError: Cannot read property 'webpackHotUpdate' of undefined
at app.js:5
at app.js:794

What is expected?
The issue is that globalObject should be self not this
What is actually happening?
The dev version of the code is using 'this' which fails because this is not defined. It should be self.
A fix can clearly be seen in resolveLibConfig.js that probably just never made it into dev.js

globalObject in dev.js should probably have same fix as found in resolveLibConfig.js
See:
https://github.com/vuejs/vue-cli/blob/94ff7bf33c4936be2e080a36ea54889bbac81fe2/packages/%40vue/cli-service/lib/config/dev.js#L16
vs
https://github.com/vuejs/vue-cli/blob/94ff7bf33c4936be2e080a36ea54889bbac81fe2/packages/%40vue/cli-service/lib/commands/build/resolveLibConfig.js#L105
My fix to dev.js was:
      webpackConfig
        .output
          .globalObject(`(typeof self !== 'undefined' ? self : this)`)

➕1⃣

I met the same issue in my project built using vue-cli. What should I do to fix it?


acryl-datahub-airflow-plugin incompatible with Airflow 2.4.x

Describe the bug
acryl-datahub-airflow-plugin does not work with the latest release of Airflow.
[2022-10-07T08:03:31.044+0000] INFO - Exception: Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/datahub_airflow_plugin/datahub_plugin.py", line 337, in custom_on_success_callback
    datahub_on_success_callback(context)
  File "/usr/local/lib/python3.9/site-packages/datahub_airflow_plugin/datahub_plugin.py", line 190, in datahub_on_success_callback
    inlets = get_inlets_from_task(task, context)
  File "/usr/local/lib/python3.9/site-packages/datahub_airflow_plugin/datahub_plugin.py", line 44, in get_inlets_from_task
    and isinstance(task._inlets, list)
AttributeError: 'TaskOperator' object has no attribute '_inlets'

To Reproduce
Steps to reproduce the behavior:

Install Airflow 2.4.1
Install acryl-datahub-airflow-plugin
Configure connection
Import datahub_provider.entities.Dataset and add an outlet to a task
Run airflow workflow

Expected behavior
The datahub_provider plugin produces the metadata and sends it to Datahub.
Screenshots
N/A
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Additional context
This was working fine on airflow 2.3.x but it seems that airflow has changed some of the semantics around how you access inlets/outlets from airflow BaseOperator classes in hooks.
TaskOperator here is a extension of KubernetesPodOperator, this was previously working fine on 2.3.x airflow.

@andrewkomkov I pulled the package from pypi and edited the references to _inlets and _outlets in the code to use inlets and outlets, generally an underscore-prefixed variable in python is prefixed to denote that it's private and shouldn't be relied on. Doing that, and removing the sqlalchemy and airflow from setup.py requires, I could then install and get it working with pip install <folder_holding_the_package> instead of from pypi.
If you're stuck like we were that'll get you around it for now.

There's a lingering problem as well in that airflow how has it's own from airflow import Dataset which goes into outlets / inlets for dataset-based scheduling and using that feature will break the datahub ingestion post-task execution.

Any plans to fix this? I would rather avoid putting a manual patch into prod if i can.


Try to fix build.

For some reason this fails on render looking for the zod dependency, even though no code in the package references it.
Cannot reproduce locally so blindly trying to put the deps back.

It worked, I don't understand why.


Plugin channel (BungeeCord teleporting)

Hello!
I saw that BungeeCord integration is done now, but I have one more question (problem?) to solve. BC uses own "channel" to make possible teleport players. More about usage here: http://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/
Is it possible to use it in MCS? Can you provide few-lines Lua example?

Is this solved in core or just not going to fix it server-side?

You said in your last comment that you got it working, so I assumed this issue is no longer necessary.

Ok. It's just workaround, but ok - it works some way.


Issue with authorization_code grant types.

Closed.

@matwright please report security issue to<EMAIL_ADDRESS>We don't use github issue for security reason, thanks.


update.json is currently not needed

Merged as https://github.com/Olf0/sailfishos-daily-comics/pull/5


[Lite] Optimizer state has not been consolidated on this rank

When using Lite and trying to save the optimizer state_dict using 'ddp_sharded', I got the error below:
RuntimeError: Optimizer state has not been consolidated on this rank.                 Please call `consolidate_state_dict()` on all ranks beforehand if you meant to save the global state

Any guide on how to solve this issue?
cc @carmocca @justusschock @awaelchli @SeanNaren

Hi @hiyyg
I suspect you get this error when you try to save a checkpoint. Is that correct?
You can work around this issue for now by calling optimizer.consolidate_state_dict(). Let me know if that works.
Not yet sure if we will be able to find an elegant solution that does not require the user to manually make this call. This is where Lightning can shine though, it can take care of this automatically :)

Thanks @awaelchli , it now works. However, after using this optimizer.consolidate_state_dict(), the used gpu memory is larger than ddp, is that normal?

Yes, that's normal. "ddp_sharded" means the optimizer state gets "split" across processes/devices. This means you save memory but if you actually want to save the state of the optimizer, you need to transfer the individual shards and assemble the whole state. This is what optimizer.consolidate_state_dict() does and the reason why you need to call it before saving the state.


Text extending beyond content area in CIAT XMLUI theme

I need to look at other XMLUI themes and see if this is just an issue with CIAT or what. Item in screenshot is: https://cgspace.cgiar.org/handle/10568/54615.

We've just realized that these items look fine in Firefox, but Chrome displays like the screenshot above. Need to investigate why the text doesn't wrap there!

After a bit of tweaking, the following CSS in style.css fixes it in Chrome:
table.ds-includeSet-table {
  table-layout: fixed;
  width: 100%;
}

table.ds-includeSet-table td {
  word-wrap: break-word;
}

table.ds-includeSet-table td:first-child {
  width: 20%;
}

Basically, unless we use fixed-layout on the table, we can't set widths. Once we set the widths then we add the wrapping on word breaks. Arguably looks better in Firefox too.


Tail logs from initContainers

Hi,
Thanks for this great project! I couldn't find a way to tail logs from my initContainers.
stern 'api.*' tails logs from all proper containers, but I see nothing from the initContainer
kubectl logs api-2524184185-62d3c -c api-init shows that I missed the logs from the init container named api-ini
It would be great if this could be added, as debugging initContainers is not so easy! Thanks.

Hi, you should not use api.* but just api. And if you want to just filteron just 1 container within that pod, then you can just use -c api-init.

OK, I'll try that. Thanks.

I couldn't get this to work either.  It has no problem following main container.  But it seems to ignore init containers, even when I explicitly specify them like in your example.  I'm using k8s 1.7.5 and stern 1.5.1

@russell I'm having the same issue with k8s 1.7.4 in prod, and with k8s 1.8 (minikube) in dev, and with stern 1.6.0.


Support memory-mapped on-disk Indices

The underlying Faiss indicis are stored in SQLite shadow tables, which can't be mmaped with the IO_FLAG_MMAP.
One solution: Introduce a new option to store a vss0 column index on disk, allowing mmaped indices for larger-than-memory.
create virtual table articles using vss0(
  headline_embedding(1024) factory="..." on_disk=True,
  description_embedding(1024) factory="..." on_disk=True,
);

Then, your directory would look like:
$ tree .
.
├── my_data.db
├── my_data.db.vss0.articles.description_embedding.faissindex
└── my_data.db.vss0.articles.headline_embedding.faissindex

sqlite3_db_filename() would be useful here.
One problem: It's kindof nice to have all Faiss indices stored on one file in the SQLite database, and this config option would instead mean users would have to move around multiple files around instead of a single SQLite file. But since this is an "optimization" feature that's not enabled by default, I think it'll be ok.

Thinking about this more: Instead of a on_disk= argument, I think we should change it to storage_type=faiss_ondisk. The default would be storage_type=faiss_shadow.
This is so we can easily support future storage backends like #30

@dleviminzi ok, I applied the new vss0 constructor parser to the main branch. You should be able to add a mmap=True flag inside parse_vss0_column_definition(), let me know if you run into any trouble with that.
I also change a bit of the logic of the the storage_type=faiss_ondisk logic. I'll also probably remove the schema from the generated file name, so for the following vss0 table on a database called my_database.db:
create virtual table vss_demo usinv vss0(
  a(2) storage_type=faiss_ondisk
)

It currently saves vectors to the file:
my_database.db.main.vss_demo.a.faiss_index

But, when I change the schema, itll save to:
my_database.db.vss_demo.a.faiss_index

Mostly because I don't think the schema is required on the filename. In fact, I think it'll actually break on SQL that queries vss0 tables on ATTACHed databases, since it won't know to look into .main. file

You should be able to add a mmap=True flag inside parse_vss0_column_definition(), let me know if you run into any trouble with that.

I'll look through the changes and give it a go today.

I'll also probably remove the schema from the generated file name,

Yeah that makes sense.