Add support for not allowing two deployments in parallel

We can use .lock files but any suggestions is welcome

if you say --fork 1 on the command line that will do it right?

@teaforthecat --forks 1 will make Ansible connect to 1 host at a time, but the goal for this issue is preventing 2 people deploying at the same time.
Imagine for instance a distributed team deploying to 100 nodes in groups of 10... this is a relatively long process and we should prevent a second deployment until the first one has finished in all the nodes

ah I see sorry. ok well how about this - wait_for: path=lock state=absent but since we have an atomic change with the current symlink is this really valuable?  I guess if the inventory did not have a consistent order, some hosts could end up with a different release. This seems strange though. I'm thinking the responsibility should be at a higher level. I'm thinking the lock should live in Jenkins or Rundeck or... (do you have any other suggestions for an execution manager?)

I have thought a bit about this and I think there is no easy way to achieve it.
If all the deployments are originated from the same box (a Jenkins machine or something similar) the lock file strategy would possibly work but if a team is allowing any developer to deploy from any location the only way to do a common distributed lock is to have something like Zookeeper or Redis doing that function.
And I honestly think this is beyond the scope of a deployment tool and it really depends on every organisation policies.
We can add the lock file as a best effort but I am not sure it is worth it. Thoughts? @teaforthecat @carlosbuenosvinos @theUniC @ajgarlag

I agree. If this is a problem, you probably have enough resources to spin up a deployer node. (I'd recommend Rundeck so far)

I agree too. For me, this feature is beyond the scope of the tool.

Totally agree with @ricardclau, it is a deployment process / organizational problem, not something that can be solved by a lockfile.
While it could save someone's donkey during a simple single-node deployment, I am quite sure that such a feature would cause much more inconvenience (in the form of stale/leftover locks) for others than what is gained.
You'll get into all sorts of other parallelism problems (DB migrations, LB configs) that are way out of scope for this "deploy" role, that are better solved at the playbook level.

Closing the issue according to the discussion


Snapshot v0.2.63 points to a codal-microbit-nrf5sdk commit that is not in the repo

The build is showing an error.

Snapshot v0.2.63 changed the codal-microbit-nrf5sdk commit in https://github.com/lancaster-university/codal-microbit-v2/commit/b410f946f30a9a334377d67bd72098811163b49b to point to a commit that is not in the repo https://github.com/microbit-foundation/codal-microbit-nrf5sdk/commit/5714cbe338c3544793bbb841a7ae81708a3ffae1
I guess this means the build is using the same commit as before the change, because it's the latest master commit https://github.com/microbit-foundation/codal-microbit-nrf5sdk/commit/f98e1a9325acef9de52416b3e30cc820531b6699
The change in 5714cbe is to quiet a warning. We have previously avoided making unnecessary changes to the SDK files.

Thanks Martin!
This turned out to be a change we wanted to revert and ended up being the head of the main branch at the time the v0.2.63 tag was created.
The commit has been added to the main branch, so that the tag is not broken when trying to rebuild in the future, and an extra commit added on top to revert it:

v0.2.64 will then point to the current HEAD.


LDAP Login when email already exists fails silently.

Describe the bug
When two users share the same email address in OpenLDAP, the first user is able to auto-generate their bookstack account.  When the second user attempts to log in (with the same email address as the first user), no error message, auto-redirect to the login page.
Steps To Reproduce
Steps to reproduce the behavior:

Setup LDAP Auth (Using OpenLDAP)
Create 2 users with the same email address
Attempt to log into Bookstack as both users.

Expected behavior
An error message or indication of failure.
Your Configuration (please complete the following information):

Exact BookStack Version (Found in settings): 0.28.3
PHP Version: 7.3
Hosting Method (Nginx/Apache/Docker): Apache

Hi @bcarlson23,
Thanks for reporting and sorry that you've ran into this issue.
I've just done some testing I can confirm that no error message is visible to the user, when the instance is set to non-public. If an instance is public a message is shown as expected:

An extra redirect from the homepage to the login causes the error to not be seen. Will assign for the next patch release.

A fix for this has been applied in 8ce38d2158d455ac18f7181119dcc4d68073eda9, This will be deployed as part of the next BookStack patch release.
Thanks again @bcarlson23 for reporting.


Сheck code style on travis

[Current coverage][cc-pull] is 65.76%

Merging [#191][cc-pull] into [master][cc-base-branch] will increase coverage by 0.43%

@@             master       #191   diff @@
==========================================
  Files            42         42
  Lines          3009       3009
  Methods           0          0
  Messages          0          0
  Branches        347        347
==========================================
+ Hits           1966       1979    +13
+ Misses          963        947    -16
- Partials         80         83     +3

Powered by Codecov. Last updated by [a3f53d4...cc82c2e][cc-compare]
[cc-base-branch]: https://codecov.io/gh/2gis/vmmaster/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/2gis/vmmaster/compare/a3f53d45a113eb32ba993159c4a4ca76689cc58f...cc82c2eb5477924da958dfed0956c553b6e87b9f?src=pr
[cc-pull]: https://codecov.io/gh/2gis/vmmaster/pull/191?src=pr


caching not working

I tried to use it but it is not working, the component which wraps a axios call still calls the webservice. I also tried to cache all pages by using just '/'. any idea what could be the issue? Thank you
nuxt config:
const isProduction = (process.env.NODE_ENV === 'production')
const host = (isProduction) ? 'api.xxx.com' : 'localhost'
const scheme = (isProduction) ? 'https' : 'http'
const baseUrl = (isProduction) ? '${scheme}://${host}/rest-api' : '${scheme}://${host}:8080/vrmandat-rest-api'
export default {
  env: {
    api: {
      host: host,
      scheme: scheme,
      baseUrl: baseUrl
  },
  payment: {
  stripe: {
       mode: 'test',
       test: {
         publicKey: 'pk_test_xxx'
       },
       live: {
         publicKey: ''
      }
     }
   }
  },
  mode: 'universal',
 head: {
   title: process.env.npm_package_name || '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: process.env.npm_package_description || '' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ],
    script: [
      { src: 'https://www.paypalobjects.com/api/checkout.js' }
    ]
  },
  css: [
<EMAIL_ADDRESS>   ],
  plugins: [
    '~/plugins/axios.js',
    '~/plugins/validate.js',
    '~/plugins/mq.js',
    '~/plugins/global.js',
    '~/plugins/print.js'
  ],
  buildModules: [
  ],
  modules: [
    'bootstrap-vue/nuxt',
    '@nuxtjs/axios',
    '~/modules/nuxt-auth/lib/module/index.js',
    'nuxt-i18n',
    'nuxt-stripe-module',
    'nuxt-ssr-cache',
  ],
  axios: {
    baseURL: '${baseUrl}/',
    https: (isProduction) ? true : false,
    progress: true,
    debug: false
  },
  /*
  ** Build configuration
  */
  build: {
    // Add exception
    transpile: [
      'vee-validate/dist/rules'
    ],
    /*
    ** You can extend webpack config here
    */
    extend (config, ctx) {
    }
  },
  /*
  ** Router configuration
   */
  router: {
    middleware: [
      'auth',
      'auth-refresh'
    ]
  },
  /*
  ** Auth configuration
   */
  auth: {
    plugins: [
      '~/plugins/auth.js'
    ],
    redirect: {
      login: '/auth/login',
      logout: '/',
      home: '/',
      callback: '/auth/callback'
    },
    strategies: {
      local: {
        _scheme: 'local',
        name: 'local',
        endpoints: {
          login: {
            url: `${baseUrl}/auth/getAccessToken`,
            method: 'post',
            propertyName: false
          },
          refresh: {
            url: '${baseUrl}/auth/refreshAccessToken',
            method: 'post',
            propertyName: false
          },
          logout: {
            url: `${baseUrl}/auth/logout`,
            method: 'post',
            propertyName: false
          },
          user: {
            url: '${baseUrl}/auth/user',
            method: 'get',
            propertyName: false
          }
        },
        tokenRequired: true,
        tokenType: 'Bearer',
        tokenName: 'Authorization',
        globalToken: true,
        accessTokenKey: 'access_token',
        refreshTokenKey: 'refresh_token',
        automaticRefresh: true,
        expiration: {
          factor: 0.9,
          timeFormat: 'seconds'
        }
      }
    }
  },
  /*
  ** i18n configuration
   */
  i18n: {
    locales: [
      {
        code: 'en',
        name: 'English',
        file: 'en.json'
      },
      {
        code: 'de',
        name: 'Deutsch',
        file: 'de.json'
      },
      {
        code: 'fr',
        name: 'Français',
        file: 'fr.json'
      },
      {
        code: 'it',
        name: 'Italiano',
        file: 'it.json'
      }
    ],
    lazy: true,
    defaultLocale: 'de',
    langDir: 'locales/'
  },
  stripe: {
    version: 'v3',
    publishableKey: 'pk_test_xxx'
  },

  cache: {
	    // if you're serving multiple host names (with differing
	    // results) from the same server, set this option to true.
	    // (cache keys will be prefixed by your host name)
	    // if your server is behind a reverse-proxy, please use
	    // express or whatever else that uses 'X-Forwarded-Host'
	    // header field to provide req.hostname (actual host name)
	    useHostPrefix: false,
	    pages: [
	      // these are prefixes of pages that need to be cached
	      // if you want to cache all pages, just include '/'
	      '/charts/alter',
	    ],

	    store: {
	      type: 'memory',

	      // maximum number of pages to store in memory
	      // if limit is reached, least recently used page
	      // is removed.
	      max: 100,

	      // number of seconds to store this page in cache
	      ttl: 60,
	    },
	  },
}

package.json:
{
  "name": "app",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate",
    "test": "jest"
  },
  "dependencies": {
    "@nuxtjs/auth": "^4.8.4",
    "@nuxtjs/axios": "^5.6.0",
    "bootstrap": "^4.3.1",
    "bootstrap-vue": "2.1.0",
    "highcharts": "^7.2.1",
    "highcharts-3d": "^0.1.7",
    "highcharts-vue": "^1.3.5",
    "libphonenumber-js": "^1.7.23",
    "moment": "2.24.0",
    "nuxt": "2.10.2",
    "nuxt-i18n": "^6.0.2",
    "nuxt-ssr-cache": "^1.5.1",
    "nuxt-stripe-module": "^2.0.0",
    "popper.js": "^1.15.0",
    "v-click-outside": "^2.1.3",
    "vee-validate": "^3.0.3",
    "vue-html-to-paper": "^1.1.1",
    "vue-mq": "^1.0.1",
    "vue-multiselect": "^2.1.6",
    "vue-router": "^3.1.3",
    "vue-script2": "^2.1.0"
  },
  "devDependencies": {
    "@vue/test-utils": "^1.0.0-beta.27",
    "babel-jest": "^24.1.0",
    "jest": "^24.1.0",
    "node-sass": "^4.12.0",
    "sass-loader": "^7.3.1",
    "vue-jest": "^4.0.0-0"
  }
}

Not working for me either. Not sure if this is designed to be a drop-in solution? I'm no expert on how caching works.

This not working for me either. Any additional documentation on how to make this work @arash16

How to know whether the cache is effective

Has anyone manage to get it working? Is this library no longer working at all and abandonned?
I also found https://github.com/legeneek/nuxt-page-cache which seems a bit promising if this package no longer works, but it's missing a big part of the implementation that the user must provide themselves.. the part that sets/gets the items from the cache

Unfortunately I don't have time to check for possible problems with customized configurations and other modules mixed in. We're already using this module in production, with 500k daily users, with no problems.

@arash16 thanks.. it's good to hear that it's working for you, are you using the latest version of nuxt?
Also.. am I right to notice that there is no file store? only memory? it would have been very nice to be able to use a file store so that the max could be a lot higher and it would work out well on sites with tons of pages and limited ram on the server instance.. any plans to add a file store?

Also.. am I right to notice that there is no file store? only memory? it would have been very nice to be able to use a file store so that the max could be a lot higher and it would work out well on sites with tons of pages and limited ram on the server instance.. any plans to add a file store?

An option for you might be to use NGINX as proxy/cache in front of nuxt. It is very mature, stable, configurable and well-documented. I use it in a file-based configuration with a very short duration to keep my small servers from getting hammered in the event of a large spike in traffic. It also handles TLS. It can keep serving a cached version if your nuxt server goes down. It is also trivial to instrument the cache with a response header so you can see that it is working.
In case you can't tell, I'm a big fan of nginx :stuck_out_tongue_closed_eyes:
The nginx docs, while very complete, can be a bit daunting as there are so many options. If you are interested, check out their guide to caching, I find it very approachable.

Thank you for your helpful reply @jeremy21212121, I'm also a fan of Nginx but am not so advanced that I would have thought this problem could be dealt with at that level. I will have a look at that guide. If you were so inclined however I would have found it very useful to see your server block for a site that uses this file-cache method : ) Looking at other people's solution is my preferred way of learning! Kind regards : )

Then that was i was scared about. Not working and not really maintain... Then I will search for something else :(

Hello there!
Indeed, for me it was not working either, but I think I found the reasons:
1.- If you don't use a custom function for the cache key, remove the key function from the nuxt config.
2.- For some reason, req.host and req.hostname can be empty, so the default cache key function won't work. You can fix it this way.
3.- In Redis and cloud environments, most of the vendors do not allow you to use the Redis' CONFIG (not that I also changed it to caps). So in your nuxt configuration, remove the configure property.
To have all these fixes, and because it looks this is not mantained anymore, I forked the repo, built it and installed my own version from my GitHub repo's compile branch.

Any documentation how to use it or even an example could be helpful. Especially some utils to check if it even work.
Have any one managed to use this plugin and have some example?

Any documentation how to use it or even an example could be helpful. Especially some utils to check if it even work.
Have any one managed to use this plugin and have some example?

I had solved via this:
key(route, context) {
  // custom function to return cache key, when used previous
  // properties (useHostPrefix, pages) are ignored. return
  // falsy value to bypass the cache
  if (route === '/') {
    return 'page:home:string';
  }
  let page = route.substr(1).split('/');
  page = page.join('.');
  return `page:${page}:string`;
},

I had solved via this:
key(route, context) {
  // custom function to return cache key, when used previous
  // properties (useHostPrefix, pages) are ignored. return
  // falsy value to bypass the cache
  if (route === '/') {
    return 'page:home:string';
  }
  let page = route.substr(1).split('/');
  page = page.join('.');
  return `page:${page}:string`;
},

its Working !

If anyone is looking for a working solution, try this package instead:
https://github.com/ziaadini/nuxt-perfect-cache

A fix of this problem
https://github.com/Jeremy-DX/nuxt-page-cache

If anyone is looking for a working solution, try this package instead: https://github.com/ziaadini/nuxt-perfect-cache

Be Aware that with this package, the Redis URL and credentials are sent in clear text to all clients


[gumbo, litehtml] fix dupplicate gumbo symbols

Fixes duplicate gumbo symbols introduced by PR##29673
Fixes gumbo CMake include folder exports

And because I am an external contributor:

[x] Changes where crosschecked with other gumbo users (libmupdf)
[x] Changes comply with the maintainer guide
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.

I don't understand how qttools is not failing, but I am looking into it.

@rioki, Please get failure logs here. Please ping me if you need any help.

@JonLiu1993 Thank you. I already found the failure logs; unfortunately this is not the first time I threw the vcpkg CI. My confusion came from the fact that it worked fine on my machine. But after a git clean and rebuild I now have the same issue locally. I am still confused how it broke, but I will soon find out.

Thanks for the fix!


Can we design the interface with mixed_summary?

If I can settle on a full analysis manifest as mixed_summary would produce, then I could build bivariate_bubbles without mixed_summary yet existing. I suspect that bivariate_bubbles could be a near-term force multiplier for my consulting work.

Nope


Maybe it is the time to update the changelog and user guide

I've noticed that many APIs have changed, so hope that changelog and user guide update too

I'm working on a new fully Swift 3 compatible version of swiftdate-4.0 branch. It will takes at least another week so be patient :(

We have wrote a new site at http://www.swift-date.com where you can found both examples and docs.


[wiki] Error messages for duplicate wiki names should be consistent

Steps

Go to a wiki page on which you have write access.
Create a new wiki page with a name that already exists (for the easiest example, try to create a new page named 'home')
Press OK and take note of the error message.
Create a new wiki page and try to rename it to a name that already exists (can use 'home' here also).
Take note of error message for wiki title renaming.

Expected
Both error messages should be the same, since the same problem is encountered in two different ways.
Actual
The error messages have both different wording and different formatting.
When creating a new wiki page with a duplicate name:

When renaming a wiki page with a duplicate name:

The formatting may not be as big of an issue, but definitely the text should be consistent. Seeing a blue error message also strikes me as a little odd, since all other error messages (to my knowledge) are red.

Addressed by recent wiki redesign and 4a7c39e


add options (max-line-len)

https://github.com/mishoo/UglifyJS2
max-line-len (default 32000) -- maximum line length (for uglified code)
https://www.npmjs.com/package/grunt-contrib-uglify#maxlinelen
maxLineLen
Type: Number
Default: 32000
Limit the line length in symbols. Pass maxLineLen = 0 to disable this safety feature.
example:
uglify({'max-line-len': 100})

Options are passed through. Names are slightly different, they're underscored.
uglify({
      output: {
        max_line_len: 80
      }
})

Here's the link from UglifyJS README:  http://lisperator.net/uglifyjs/codegen

Thanks @arantir!


Import the second UV map if present in glTF files.

Conventionally, the second UV map (TEXCOORD1, UV1) is used for lightmap UVs. This commit allows Bevy to import them, so that a custom shader that applies lightmaps can use those UVs if desired.
Note that this doesn't actually apply lightmaps to Bevy meshes; that will be a followup. It does, however, open the door to future Bevy plugins that implement baked global illumination.
Changelog
Added
The Bevy glTF loader now imports a second UV channel (TEXCOORD1, UV1) from meshes if present. This can be used by custom shaders to implement lightmapping.

Oh oops, looked like I missed a spot (I was testing with a custom shader so that didn't show up). Should be fixed now.

Need to modify prepass_io.wgsl

Need to modify prepass_io.wgsl as well maybe

I don't think so, because I didn't update the prepass vertex bindings. I didn't see any need for the prepass to have access to UV1.

The prepass uses the same vertex buffer though, right? Idk, maybe it doesn't actually cause issues.

Yeah, I don't think it causes any issues because the mesh attributes are symbolic.

This was a longstanding missing feature. Consider searching the bug tracker. I think there is at least a couple issues that can be closed when this gets merged.

The prepass uses it's own vertex layout, so it doesn't need to be updated for this

This was a longstanding missing feature. Consider searching the bug tracker. I think there is at least a couple issues that can be closed when this gets merged.

Good point, I found #8699, part of #1802, and part of #4629.

Is this limited to only uv1?   As mentioned in the other ticket, exporting lightmaps from unreal seem to use several uv1 maps for reasons I don't really understand tbh (at least UV1-4)


chore: project_cleanup

this is a 1st stepping stone in terms of #117, also better README :P

@RaafatTurki please fix the lint + merge and i'll merge!
Thanks for this.


Notifications Cards

Update the notification popup design (currently a black full-screen popup over the header) for both Studio and frontend. Use floating cards in bottom-left corner. 360px max width. Border #000 0.2, Shadow 1px offset with 5px blur, #000 0.2.
Use it for all notifications created by modules, studio notifications and alerts. Timeout and disappear after 10seconds, or use cross icon to close immediately.

@antaratma maybe show it in top-right corner ?

@AlexTr top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.

top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.
@antaratma
Write top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.
@antaratma
Write top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.
@antaratma
top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.
@antaratma
Write top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.
@antaratma
Write top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.
@antaratma
Write top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.
@antaratma
Write top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.
@antaratma
Write top right may not be the best choice anymore due to desktop/browser notifications popping up at the same time in top right, which would frequently create overlaps.
@antaratma
Write
Write


chore: add AmanGit010

Added my name in the readme file.
Related issue

What changes does this PR do?
Screenshots (If any)
Questions

@schmelto can you please merge this pull request into the main branch?


Not working on Neovim

It's not working on my Neovim:

I think you are missing a fix to vim-repeat that this plugin needs, like I say at the top of the documentation.  You need to use svermeulen/vim-repeat or wait for this PR to be merged
I'm waiting to distribute this plugin until that gets merged


Crysis Warhead - GOG - Latest version - Resolution stuck to 1024x768, In-game changing does not work with Fullscreen

Game is launched on wrong resolution ( system set to 1920x1080 ) and cannot be changed in-game with Fullscreen option enabled
If you use Windows, please check the following page: https://github.com/doitsujin/dxvk/wiki/Windows
Software information
Crysis Warhead - GOG - Latest version
System information

AMD Radeon RX 580 Series (RADV POLARIS10):
info:    Driver: 23.0.3
info:    Vulkan: 1.3.238
Wine version: wine-8.9 (Staging)
DXVK version: v2.1

Apitrace file(s)

Put a link here

For instructions on how to use apitrace, see: https://github.com/doitsujin/dxvk/wiki/Using-Apitrace
Log files
game.log

Apitrace file(s)
Put a link here

Please do that.

ERROR: Could Not Get Primary Adapter Handle

Maybe relevant from the log? Tho it isn't a dxvk error.
Does it also happen with regular upstream wine?

I launched the game through CrysisWHLauncher.exe and it did start as 1024x768, but I was able to switch resolutions without issue. I first tested DXVK 2.2 and then 2.1, and I was able to change the resolution in both cases. I also tested Crysis64.exe and got the same result.

Considering I don't have the issue, I imagine an apitrace from me wouldn't be helpful, or would it?

Still same issue. Also, the game starts at 1680x1050,. but when I move mouse curos, I can see that buttons are reacting onm hover in other resolution .. e.g. I have to move curos to area where there is no button for the button to actually hover.
Fresh wineprefix.
12Graphics:
12Device-1 AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] 12vendor XFX Pine 12driver amdgpu
12v kernel 12arch GCN-4 12pcie 12speed 2.5 GT/s 12lanes 8 12ports 12active DP-1,DP-3
12empty DP-2,DVI-D-1,HDMI-A-1 12bus-ID 01:00.0 12chip-ID 1002:67df 12class-ID 0300 12temp 56.0 C
12Display wayland 12server X.org 12v 1.20.14 12with Xwayland 12v 22.1.9 12compositor gnome-shell 12v 44.2
12driver 12gpu amdgpu 12display-ID 0
12Monitor-1 DP-1 12model BenQ G2420HDBL 12serial  12res 1920x1080 12dpi 92
12size 477x268mm (18.78x10.55") 12diag 604mm (23.8") 12modes 12max 1920x1080 12min 720x400
12Monitor-2 DP-3 12model Philips FTV 12serial  12res 1920x1080 12dpi 76
12size 640x360mm (25.2x14.17") 12diag 734mm (28.9") 12modes 12max 1920x1080 12min 640x480
12API OpenGL 12v 4.6 Mesa 23.1.3 12renderer AMD Radeon RX 580 Series (polaris10 LLVM 16.0.5 DRM 3.52
6.3.11-200.fc38.x86_64) 12direct-render Yes

menu reacts normally for me, both in the main menu and when invoking the menu while in game. I also didn't install anything into the wineprefix other than dxvk, maybe something there is causing the issue for you.


First time use for rg351m, Completed expansion of EASYROM partition and it won't reboot and load emulationstation after I hit the A button.

Make sure you're using a good sd card such as an authentic Samsung or Sandisk one.  If you have, you can try a force reboot to see if the it loads.  Otherwise, I have no other suggestion as I'm not providing support for the 351 p/m units any longer.

Thank you for the quick response and I have ordered a better sd card


lite-xl crashes when user module is saved

this is probably due to the automatic reloading

Please give more details about how to reproduce the problem.

make any change to user module with the autosave plugin, and lite-xl crashes every time it saves.

This doesn't happen for me. If you remove the autosave plugin, and save the user module normally, does it also occur?
If so, can you list all the plugins you have active?

I'll let you know later tonight or tomorrow

I ran lite from the terminal and found that the minimap plugin from #156 is causing the issue. This seems to be the problem:
minimap.lua:215: attempt to index upvalue 'color' (a nil value)
This isn't a bug in lite-xl so I'm closing this issue


[Fix] Reorder evaluation of finalize transitions.

This PR reorders the evaluation of transitions when finalizing an Execution.
This is necessary to ensure correct semantics when finalize transactions that contain external calls.
Suppose that we have the following programs:

C, with transition c.
B, with transition b.
A, which imports B and C, and contains transition a which invokes B/b and C/c.
Suppose that the call graph looks like:

A::a
  --> B::b
  --> C::c

Then the finalize blocks need to evaluated in the following order: `
B::b, C::c, A::a

In other words, finalize blocks are evaluated in order of the transition that finished first.
For a more complex example,
Suppose we have the following call graph, where each call is an external call.
A::a
--> B::b
       --> C::c
       --> D::d
--> E::e
       --> B::b
              --> C::c
              --> D::d"
       --> D::d
       --> C::c

The finalize blocks need to be evaluated in the following order:
C::c, D::d, B::b, C::c, D::d, B::b, D::d, C::c, E::e, A::a

Closed. Tests included in #1524.


Compatibility with Symfony 5

After upgrading Sf from 4.2 to 4.3, the following deprecation notices are given:

A tree builder without a root node is deprecated since Symfony 4.2 and will not be supported anymore in 5.0.
The "Symfony\Component\Config\Definition\Builder\TreeBuilder::root()" method called for the "rewieer_task_scheduler" configuration is deprecated since Symfony 4.3, pass the root name to the constructor instead.
The "Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand" class is deprecated since Symfony 4.2, use "Symfony\Component\Console\Command\Command" with dependency injection instead.
The "Rewieer\TaskSchedulerBundle\Command\ListCommand" class extends "Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand" that is deprecated since Symfony 4.2, use {@see Command} instead.
The "Rewieer\TaskSchedulerBundle\Command\RunCommand" class extends "Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand" that is deprecated since Symfony 4.2, use {@see Command} instead.

Hello @NicoHaase !
I'm not working on Symfony anymore, so I don't have time these days to handle issues such as this one.
A PR would be most welcome !

I'd be happy to help you out :)

@rewieer thanks for merging - can you also sync that package to packagist.org, either through a manual sync or through enabling the hooking?

Ah yeah, my bad, I thought autosync was on. It's fixed now !

@rewieer thanks, that also works now. If you want to, you could open a Travis account such that the test suite is run from time to time. This is free for open-source projects as yours

Hello Nico and Rewieer, could you please also update documentation about how to use now the pack?

I'd be happy to provide some more documentation, but if you are completely new to Symfony, I don't know where to start - do you have any specific problem?

What I achieved up to know:

Configured service.yaml but I do not know if it is ok (I used the code you added in another issue)
I created the Task class extending AbstractScheduledTask
I don't know how to test and debug that :(


Add an integration test that uses the enforce module to enforce types

https://github.com/RussBaz/enforce
Low priority but could be worth doing at some point.

Agree with the priority being low, perhaps we can make a low-priority issue tag for such matters. It could be good however to add this into the CI pipeline, as some subtle typing bugs can slip through that this would catch.

Using it in Travis testing sounds like a good idea!


Change footer URLs to absolute

The Docker and GitHub links at the bottom of the page are returning 404s.

Nice catch, thank you!


How does The local dataset "FAFB-ffn1" being loaded with the source method "Local://..."

Someone had downloaded a dataset of drosophila brain called "fafb-ffn1" on my computer.And it has 7 folders like "agglomeration_positives","agglomeration_scores","object_info"."section_to_section_xcorr","segmentation","segmentation_tiffs",and "tissue_mask_argmax". I just took over these jobs and want to know where I can find the descriptions to these data and How to load them with Neuroglancer.   Some data files are end up with .data,.index and .shard

@chinasaur
See description of the dataset here:
http://fafb-ffn1.storage.googleapis.com/landing.html
Most of that is in "neuroglancer_precomputed" format, which is documented here:
https://github.com/google/neuroglancer/tree/master/src/neuroglancer/datasource/precomputed
For the data that is in neuroglancer_precomputed format, if you want to view it locally, you can start a local webserver (see e.g. cors_webserver.py in this repository) and then add the data sources to Neuroglancer as, for example, precomputed://http://localhost:8080/segmentation.

@chinasaur
See description of the dataset here:
http://fafb-ffn1.storage.googleapis.com/landing.html
Most of that is in "neuroglancer_precomputed" format, which is documented here:
https://github.com/google/neuroglancer/tree/master/src/neuroglancer/datasource/precomputed
For the data that is in neuroglancer_precomputed format, if you want to view it locally, you can start a local webserver (see e.g. cors_webserver.py in this repository) and then add the data sources to Neuroglancer as, for example, precomputed://http://localhost:8080/segmentation.

1.The information of that webpage is only about the description of FAFB，fafb-ffn1，public_skeleton，etc.
I just want to know the specific meaning of the data in those folders below "fafb-ffn1",such as csv files in agglomeration_positives,  agglomeration_scores and object_info.

2.One of  the tasks is to find the neuron connectors to reconstruct the circuit topological structure among all the neuron data finally. That's why the data meaning important for me to screen the useful data.
Hope for your reply,thanks!

These are additional metadata for the 20190805 agglomeration, and not part of the public release. (Note the latest agglomeration is 20200412.)
The object_info gives for each object ID in the segmentation the #voxels and a bounding box (start xyz / size xyz) for where in the volume the segment can be found. The agglomeration_positives give the unagglomerated segment IDs that were joined in the agglomeration stage, as well as xyz coordinates for the decision point. The agglomeration scores give information on all agglomeration decision points, both positive and negative. These are unlikely to be useful to you unless you want to reexamine the agglomeration decisions. You would also probably require the base unagglomerated version of the segmentation, which is not currently released but which we will probably release if there is interest.

Also puzzled about the relations between the ida,idb items in agglomeration_scores csv files and the id item in object_info
and agglomeration_positives csv files.
I checked the three folder  mentioned above,  found 10 .csv files in agglomeration_positives  folder with each csv file has 1.7million rows, 100 .csv files in agglomeration_scores  folder with each csv file has 5.2million rows, 100 .csv files in object_info  folder with each csv file has 6.3million rows.
The agglomeration_scores give information on all agglomeration decision points.   Want to know whether any two segments in the object_info procuce a agglomeration decision points. If yes, there should be 6.3million *6.3million /2 rows in the agglomeration_scores csv file, but only 5.2million  rows。if not ,how to select the 5.2million  agglomeration decision points?


Icon request template : add an icon request label

@locness3 I think you can do this 😁 I can do this if you want though.

There can be a GitHub action which can add a label to the issue and add it to the project.

No, you can specify labels to be auto-included in the issue templates, and I've done it in e8befb4 so i'll just close this


feat!: implement peer exchange

Problem
Currently, only static peer discovery is available in js-waku, which limits the number of peers js-waku can discover.
To remediate to this, 34/WAKU2-PEER-EXCHANGE was designed.
Solution
WIP.
Notes

Resolves https://github.com/waku-org/js-waku/issues/910

Currently running into an error while decoding a message back from the node:
  error: Error: Failed to decode response
      at WakuPeerExchange.query (file:///Users/danisharora099/Developer/status/waku/packages/core/src/lib/waku_peer_exchange/index.ts:94:15)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async Context.<anonymous> (file:///Users/danisharora099/Developer/status/waku/packages/tests/tests/peer_exchange.node.spec.ts:37:29)
}```

Blocked by: https://github.com/status-im/nwaku/issues/1408

Ready to be merged, once this is merged: https://github.com/waku-org/js-waku/pull/1057
Currently blocked because of circular dependencies between core and peer-exchange as peer-exchange is dependant on its proto definitions from core
cc @fryorcraken


Check relabel action at yaml unmarshal stage

When action set null value, something  like this:

job_name: actuator
metrics_path: /actuator/prometheus
scrape_interval: null
relabel_configs:

source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
separator: ;
regex: null
replacement: null
target_label: __param_target
action: null

Case panic as blow:
panic: relabel: unknown relabel action type ""
goroutine 348 [running]:
github.com/prometheus/prometheus/pkg/relabel.relabel(0xc000868280, 0x4, 0x4, 0xc0004ee600, 0xc0002fc0a0, 0xc000805300, 0x3233011)
/root/go/src/github.com/DrAuYueng/prometheus/pkg/relabel/relabel.go:272 +0xde6
github.com/prometheus/prometheus/pkg/relabel.Process(0xc000868280, 0x4, 0x4, 0xc000286378, 0x1, 0x1, 0x0, 0x0, 0x0)
/root/go/src/github.com/DrAuYueng/prometheus/pkg/relabel/relabel.go:206 +0x72
github.com/prometheus/prometheus/scrape.populateLabels(0xc000c874c0, 0x1, 0x1, 0xc00080e840, 0x1, 0x1, 0xc, 0x60, 0xc0004d95c0, 0x60, ...)
/root/go/src/github.com/DrAuYueng/prometheus/scrape/target.go:350 +0x41b
github.com/prometheus/prometheus/scrape.targetsFromGroup(0xc000ffd1d0, 0xc00080e840, 0x5025a60, 0x2a497a0, 0xc000c8c370, 0xc0002fe9a8, 0xc0002fea28, 0x2c53ec0)
/root/go/src/github.com/DrAuYueng/prometheus/scrape/target.go:435 +0x487
github.com/prometheus/prometheus/scrape.(*scrapePool).Sync(0xc000868180, 0xc00013e320, 0x1, 0x1)
/root/go/src/github.com/DrAuYueng/prometheus/scrape/scrape.go:465 +0x5e5
github.com/prometheus/prometheus/scrape.(*Manager).reload.func1(0xc00067d890, 0xc000868180, 0xc00013e320, 0x1, 0x1)
/root/go/src/github.com/DrAuYueng/prometheus/scrape/manager.go:195 +0x49
created by github.com/prometheus/prometheus/scrape.(*Manager).reload
/root/go/src/github.com/DrAuYueng/prometheus/scrape/manager.go:194 +0x210
In this case, the code in func UnmarshalYAML of receiver Action can not be reached which work well when action set to "foo" or something else.
This meaning check will be ignore(same as promtool check config) and the panic occurs in relabel func.
It's useful to reset default relabel config when action (etc.) overwrite with null, for example, set scrape_interval: null, still set correctly with default value 15s.

Empty replacement and empty separator are valids. I would instead just deal with empty action, which can be done inline in unmarshalling.

@roidelapluie Got it.  But i think action is still need to be set default or check for empty.
Think about this case, set action to null in yaml and use promtool check first, it will be pass through which meaning the config is valid,  but will cause promtheus crash actually.
The key issue is pre-check, if promtool check success, promtheus should not panic with the same relabel config definition.

I will exclude replacement and separator.

I think that we should error if it is empty. This shows that the user has tried to compute some configuration which is invalid. This can be done directly in UnmarshalYaml.

Ok. I will change the title of this PR.

This is awesome!
Would you also add a test in config/ ? Look at config/testdata/modulus_missing.bad.yml which is tested in config/config_test.go.

Thanks!