vim-jedi包修复
先看了报错 常见导致该测试失败的原因包括: 测试对 Vim/GVim 运行环境的假设不同例如测试环境中可能缺少预期加载的脚本(ftdetect/*.vim 等),或者 $VIMRUNTIME 路径与脚本里硬编码的不一致,导致测试时找不到相关文件、功能。 终端尺寸/cmdheight/输出截断方式这个签名截断测试通常依赖 Vim 在命令行里如何处理很长的函数名。如果测试时 Vim 判断到命令行或窗口大小不同,就会发生「根本没显示函数名、只显示了空行」的情况,于是与预期不符。 Upstream 测试脚本的脆弱性上游 vim-jedi 测试脚本本身设计得比较「依赖环境」,在某些发行版或架构(riscv64)的 CI 环境下经常会发生类似问题。有时上游项目会把这类对环境/屏幕宽度敏感的测试标记为「可选」或跳过;也可能需要贴补丁跳过此用例。 插件测试没正确加载“not found in ‘runtimepath’: ftdetect/*.vim” 说明插件可能还没被正确安装到 Vim 的...
PLCT包修复经历
一直出现在使用 devtools(extra-riscv64-build、mkarchroot 等)进行打包时,即使你在宿主机里是 root,在 chroot 环境里的用户和权限也未必与宿主机同步。因此,就会出现你在宿主系统执行 whoami 显示为 root,但在 chroot 内部却提示 “gyx1 is not in the sudoers file” 的问题。 换句话说: 宿主机和chroot是两个不同的系统环境;在宿主机里你是 root 并不代表进了 chroot 后也能以同样的身份运行命令;devtools 默认会在 chroot 内创建/使用一个普通用户(往往与 PKGBUILD 里的 pkgbuild_user 配置有关),而不是让你直接在 chroot 里当 root 操作。这对工具本身来说应该是个大bug sudo pacman -Syu devtools我更新了devtools没有用,在想是不是环境污染了的问题extra-riscv64-build -- -c ...
CI/CD
CICD 是 持续集成(Continuous Integration, CI) 和 持续交付/部署(Continuous Delivery/Deployment, CD) 的缩写,广泛应用于软件开发流程中,以提高软件交付的效率、质量和可靠性。CI主要是靠自动化工具,将每一次推送上来的代码进行自动化测试,确保正确CD是快速部署 Docker 在 CICD 的典型流程CI 阶段: 编写 Dockerfile 定义应用环境。构建 Docker 镜像并运行单元测试、集成测试。如果测试通过,将镜像打标签(如 1.0.0)并推送到镜像仓库。CD 阶段: 从镜像仓库拉取镜像。使用容器编排工具(如 Kubernetes 或 Docker Compose)将镜像部署到测试环境。验证后,再部署到生产环境。 dockerfileDockerfile 是一个用来定义 Docker 镜像 的文本文件。它包含了一系列的指令,每个指令描述了如何配置和构建镜像的过程。 通过 Dockerfile,可以自动化地生成一个 Docker 镜像,而无需手动安装操作系统、依赖项或应用程序。 构建一个...
RISC-V模拟器部署记录
可以一步步安装,我选择在云服务器上拉取docker镜像,顺便实操docker(教训)要先检查一下你拉取的docker是不是早就删库了。。被硬控了。不要一时冲动乱删文件,之后可能还有用,,看不懂怎么更新的文档,更新的操作没有用可能是因为老文件没删。一堆版本太旧了要不断更新才能安好qumo和spike的,要装ppa没有一个实验文档自己装东西根本没有方向,,echo ‘export PATH=/opt/riscv/bin:$PATH’ >> ~/.bashrc apt search g++-9 sudo update-alternatives –install /usr/bin/g++ g++ /usr/bin/g++-9 60
xlab转正项目经验
评论区项目简介项目负责人(mentor):@李晨潇 用 React 完成一个简易评论区,它的功能如下:用户可以在上方输入框中输入评论的用户名 & 评论内容,点击提交按钮发送评论,发送的评论需要展示在下方,点击每条评论右下角的删除按钮可以删除该条评论。 我的工作1.制作前端的csshtml文件 2.分成添加评论,发送本页评论,删除评论三个功能,制作后端go文件,以http server的形式和前端进行交互 3.根据html和go接口,分成添加评论,展示本页评论,删除评论,换页的功能,写js文件 3.进行连接 我的体会 你学到了什么方面的知识技能 浏览器开发者工具看报错和前后端请求的发送与响应 后端和前端接口的搭配,后端的HTTP...
Next.js
nextjsNext.js 提供了一种使用 React 创建应用程序的轻率、高度优化的方法。从路由到 API 定义再到图像渲染 即使Next.js可以在服务器端进行数据的初始渲染,客户端React依然可以接管后续的交互和数据更新,通过正常的React渲染流程来更新DOM。这种服务器端与客户端的组合使得Next.js非常强大和灵活。 Next.js 的主要特性 服务器端渲染(SSR): Next.js 允许 React 组件在服务器上渲染,生成的 HTML 随后发送给客户端。这种方式可以提高首次加载性能,优化搜索引擎优化(SEO)。 静态网站生成(SSG): Next.js 支持在构建时生成静态 HTML 页面,这些页面在访问时不需要服务器端处理,可以直接托管在 CDN 上。这对性能和扩展性非常有益。 文件系统路由: Next.js 使用基于页面的路由系统,你只需在 pages 目录下添加 React 组件文件,Next.js 将自动根据文件名创建路由。 API 路由: 可以在同一个项目中创建 API 路由,通过这些 API...
SQL基本指令
SQL1234567891011121314151617181920212223242526272829303132CREATE DATABASE IF NOT EXISTS `goods` CHARACTER SET utf8 COLLATE utf8_general_ci;DROP DATABASE IF EXISTS `goods`;CREATE TABLE IF NOT EXISTS `book_types` ( `type_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '书籍类型ID', `book_type` varchar(32) NOT NULL DEFAULT '' COMMENT '书籍类型', PRIMARY KEY (`type_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `book` ( `book_id` bigint...
prisma
Prisma 是一个现代化的 ORM(对象关系映射)工具,能够帮助开发者以一种简单、高效且类型安全的方式操作数据库。它支持多种数据库,如 PostgreSQL、MySQL、SQLite、SQL Server 和 MongoDB(通过 Prisma Client 连接)。Prisma 提供了三大主要工具: Prisma Client:用于与数据库交互的 API。 Prisma Migrate:用于数据库迁移和版本控制。 Prisma Studio:一个图形化界面,用于直接与数据库交互和查看数据 初始化npm install prisma --save-devnpm install @prisma/client //注意一定要和prisma一个版本npx prisma init 配置数据库12345678datasource db { provider = "postgresql" // 或 "mysql", "sqlite", "sqlserver" 等 url...
Next.js部署实操
https://juejin.cn/post/7203180600818581563在用这个架构做了两个全栈项目后,整体要怎么开展做一个全栈项目已经很清楚了,但是原理还是一窍不通,只知道填空.因为机理不知道会导致找错误很难找,所以看了一堆文档学习了一下. _app,tsx文档:NextPageNextPage 是 Next.js 提供的一个 TypeScript 类型,用于类型化页面组件。它扩展自 React 的 React.FunctionComponent(或简写为 React.FC),允许你为页面组件传递特定的 props 类型。这对于在 Next.js 应用中保持类型安全非常有帮助。 12345import { NextPage } from 'next';const HomePage: NextPage<{ customProp: string }> = ({ customProp }) => { return...
SWR
swr123456789101112131415import useSWR from 'swr' function fetcher(key){ return fetch(key).then(resp=>resp.json) }和key有关所以没法和trpc一起用。function Profile() { const { data, error, isLoading } = useSWR('/api/user', fetcher) const { data, error, isLoading } = useSWR('/api/user', fetcher,{refreshInterval:1000}) if (error) return <div>failed to load</div> if (isLoading) return...