原文:https://groups.drupal.org/node/419473
翻译:晴空。 感谢晴空日以继夜的翻译!!
Drupal 8的更新
配置系统改进
上个月,配置系统改变了不少。为配置导入流程加入了一个单独的安装/卸载模块的步骤,这样终于使得系统配置的改变能和模块安装/卸载同步了。你现在也可以通过导入配置( 这个案例是CMI正在致力的项目)将一个“最小安装”的网站文件包直接转换成“标准安装”的文件包。
此外,经过深入讨论,配置管理系统的有效存储被默认移动到了数据库,这意味着现有用drupal8做的网站很可能要重新安装(或者用其他方法移植有效配置)。以下关于数据库中有效配置系统改变的内容讨论记录解释了这个决策。
美国NYC Camp
第三年的NYC CAMP在联合国举办( 对,就是那个联合国,还有旗子呢)。 除了很多关于drupal8的讨论以外,(参看fmitchell's的记录:你应该知道的30个DRUPAL8的API功能),我们也花了几天时间讨论Drupal8的核心冲刺内容。媒体组(Media contributors)也在努力地更新DRUPAL8的媒介,这里是他们的进度报告。最后,Drupal的执行总裁Holly Ross开发了个Drupal8补丁,赢得了她的第一个DRUPAL核心贡献分数。你是下一个么?
Drupal8的发布流程
我们已经进入了最后一轮Drupal8的开发流程,我们已经修复了130多个测试错误(beta-blocking issues),包括我们上周修复的9个测试错误及补写了70多个缺失的修改记录。最后28个测试错误比较麻烦,但是我们已经在2014年初取得了如下成功:
- 18个月以后,变量子系统被去除了
- 16个月后,重新建构配置同步系统来支持最低要求的可行性用况
- 大概一年之后,遗留的菜单路由被移除了
有些常见引起缓存崩溃的功能被移除了,包括drupal_set_title(), drupal_add_css(), drupal_add_js(), and theme()
整个 hook_update_N() 被移除了,包括执行,更新的修改,以及主要版本更新时要迁移的PHP
我如何参与?
这周的主要意见
每周我们都要求核心的维护者和开发者提交“外部争议“,提出那些阻碍其他工作的核心争论问题。这些问题通常都是长期的困难问题。如果你们熟悉任何一个问题领域,并且有时间深入研究,请帮助我们检查,改进以及测试它的补丁,并确定这个问题的摘要及时更新,并且任何API改动都附上了一个改动记录草稿。
· #2116363: Unified repository of field definitions (cache + API)
#2116363 统一的区域定义元数据库Unified repository of field definitions,(缓存和API) 将剩余的反空间信息API的使用,通过实体管理系统转换成为使用方法,因此这造成针对试用版开发稳定实体空间API的困难。这个大的补丁(150KB)需要熟悉DRUPAL8实体和空间系统的开发者来检查所有代码。
· #2183231: Make ContentEntityDatabaseStorage generate static database schemas for content entities
#2183232 针对内容实体,内容实体数据库存储生成统计数据库的概要是一个更大的测试错误补丁(250KB),整个实体系统允许自动建立必要的数据表,解决一系列的不同问题,这是另外一个较大的改动,需要尽可能多的人进行全面检查。
· #2198429: Make deleted fields work with config synch
#2198429 "已删除的字段和配置系统同步"需要检查该补丁的建立结构和功能,删除一个字段是很重要的操作,因为站点需要清除这个字段的所有临时数据,但是不能影响整个实体。DRUPAL7写了很多代码来支持这个功能,对于DRUPAL8,这个功能更加复杂,因为DRUPAL8要求被删除的字段能与另外一个环境同步,才能清除数据
· #2124749: [meta] Stop using request attributes as a storage mechanism for other services
#2124749: [meta] Stop using request attributes as a storage mechanism for other services停止将request attributes作为一个存储机制使用,包括一系列用于提升针对D8 Symfony的request attributes的开发者经验(公有属性的request object,能够提供与当前请求相关的上下文信息。)这个上下文信息不容易被模块开发者们发现,并且对于某些情况,使用这个信息会明显增加冗余和复杂程度(如,对于代替D7的常见功能函数menu_get_object() and menu_get_item() )。这个问题和它的衍生问题被认为可以降低request attributes的误用,并且提供清楚的公共API。针对这些问题和子问题,分享你的开发经验和项目架构。
其他的协助方式
· 经过塞格德和纽约的druupal大会针对beta版的两个冲刺性开发之后,我们已经对剩下还需要完成的工作列出了一个approchable beta blocker and beta target issues表
· #2216437: Entity labels are not in-place editable on "full entity page" (prime example: node title)
实体标签不能在“整个实体页面“上进行编辑是一个DRUPUL8的核心性退化问题,解决这个问题的补丁需要检查JavaScript 代码
· 如果你是新手,查阅Core contribution mentoring hours. 每周有两次时间你可以通过IRC,DRUPAL核心指导者可以解答你的问题,并提供一些有用的信息。
配置管理
如以上所说,我们花了几周来优化配置管理系统,准备测试。以下标出重要内容
· Issue #2161591 by pwolanin, beejeebus, sun: Change default active config from file storage to DB storage.改动默认的有效配置,从文件存储到数据库存储
· Issue #1808248 by alexpott, beejeebus, tayzlor, Nitesh Sethia: Add a separate module install/uninstall step to the config import process.增加一个单独的安装/卸载模块步骤到配置导入过程
· Issue #2124535 by Berdir, alexpott, Désiré, xjm | yched: Prevent secondary configuration creates and deletes from breaking the ConfigImporter.阻止ConfigImporter崩溃导致生成和删除二级配置
· Issue #1740378 by xjm, Désiré, alexpott | heyrocker: Implement renames in the import cycle.在导入周期里执行重命名
There is still plenty to help out on in the CMI path to beta meta issue if you want to help keep the excellent momentum of the last few weeks going.
如果你愿意参与,我们还有很多任务需要协助,参见CMI path to beta meta issue
实体和字段
几周以前Drupal开发日取得的一个进展是,用一个可爱的彩色图表标识出了用于解决beta版实体和字段API依然存在的问题的依赖关系。其中两个在上两周解决了。
· Issue #2225739 by killua99, Berdir, andypost, pfrenssen: Remove usage of field_info_instances(), use EntityManager::getFieldDefinitions() instead. 移除field_info_instances的使用,用EntityManager::getFieldDefinitions()代替
· Issue #2226197 by fago, jessebeach: Introduce FieldStorageDefinitionInterface in the Entity Field API. 向实体字段API引入FieldStorageDefinitionInterface
这解锁了Unified repository of field definitions, 现在进展很好,下一步计划是解锁下一个等级的依赖关系链。
迁移
随着DRUPAL8beta版的到来,用已有的drupal6站点的内容和配置来进行测试将会多么的令人振奋啊!有些问题已经被解决了:
· Issue #2211949 by chx, Berdir, fago, benjy: Support keeping new revision id for migrate.支持新修订ID同步迁移
· Issue #2190561 by chx, pcambra, benjy: Migrate in core: Add a load system for migrate plugins.核心迁移:为迁移插件增加一个负载系统
And now, there's a 600KB patch containing 82 actual migrations ready for review.
目前有一个600KB的补丁需要检查,其中包括82个实际的移植项目。
周知(通知所有人)
不管你对drupal的哪个部分有兴趣,通常我们都能提供一个meta issue供你慢慢参考,这里只是前两周我们所涉及到的一部分内容:
前端
· 创建主题时,尤其是当你以为你覆写了所有模板来严格的拼凑出你想要的标记时,你是否郁闷的发现不知道从哪里冒出来的主题函数又插入了一个你不想要的<div>?
好吧,Twig团队正在用“转换主题功能到TWIG”的方案来解决这个令人郁闷的问题。祝贺他们成功地解决了一个功能问题。
#2151123 by joelpittet | Cottser: Remove theme_system_modules_incompatible().移除theme_system_modules_incompatible()
· 有什么比一次性的主题覆写更好?默认定义的标记如何?这里有一个meta issue 和一个 issue tag, 过程仍在逐步推进Issue #2226923 by pakmanlh, mandar.harkare, mortendk, galooph: Views:
去掉views more link的wrapper ,给LINK加class
· 默认的markup只是一半,我们需要默认的CSS,这里有另一个关于它的议题,Issue #1662954,使用更普遍的tabledrag selectors.
· 不要忘了Javascript, Drupal8已经纳入了一些很好的JS libraries,我们应该注意更新,包括Issue #2192383 by tstoeckler: 更新jQuery to 2.1.0.
后端
· 移动所有的alias SQL queries路径到一个单个存储控制器,离让所有的DRUPAL数据存储调动更接近。
· Issue #2223631 by znerol: Use request stack in database flood backend.: gets us another step closer to aligning Drupal's request management with the improvements made in Symfony 2.4. 在database flood backend中使用request stack, 这是在结合DRUPAL的REQUEST管理系统和SYMFONY2.4对其做的更新上再进一步。
· Issue #2228341 by sun, znerol, skipyT, ParisLiakos: Objectify session management functions + remove session.inc.: gets us a large step closer to a fully modern Session API. 客观的会话管理功能+去除会话,更接近一个完全的现代Session API
- Issue #1987848 by disasm, ocsilalala, kim.pepper, pwieck, Cottser, pratik60, h3rj4n, pfrenssen, InternetDevels, ParisLiakos, rgoodine, tlyngej, vijaycs85, robeano: Convert system_theme_default() to a new style controller.: chips away at modernizing every single Drupal controller. 转换系统主题默认值到一个新的风格控制器:开始”现代化每个单个的Drupal controller"
- Issue #2225399 by marcvangend, yanniboi, mr.baileys, Wim Leers, visabhishek: Apply formatters and widgets to Feed base fields: only a few more issues left to go before every field of every content entity has a swappable formatter and widget and is in-place editable. 应用formatters和widgets给Feed base fields,只有一部分议题需要提早在每个内容实体系统具有可转换的formatter and widget以及可编辑之前实现
- Issue #2217749 by Wim Leers, Jalandhar, visabhishek, damiankloip: Entity base class should provide standardized cache tags and built-in invalidation.: another great step towards making sure everything in Drupal 8 is cacheable and correctly invalidated. 实体基础分类应该提供标准的缓存标签,并built-in invalidation:另一步完成并确定DRUPAL8里所有内容都可以缓存并正确地invalidated
-
· Issue #1399846 by slashrsm, Gábor Hojtsy, Berdir, brantwynn, visabhishek, David_Rothstein, cweagans, martin107, SteffenR, Dave Reid: Make unused file 'cleanup' configurable.: part of clearing the path for media management modules in contrib to do everything they need to do without having to fight core to do it.
开发不使用的文件'cleanup' ,可配置: 属于”为媒体管理模块开路“的一部分,不需要再fight core就可以完成需要工作
你可以查阅Change records for Drupal core,它列出了所有Drupal 8 API changes不同于D7的地方
网络上的DRUPAL8
· DRUPAL引入了现代PHP patterns和libraries,我们欢迎其他体系或者语言的开发者,加入我们的社区,Larry Garfield 撰写了篇博客“给C#开发者普及D8” and Jeffrey McGuire 访谈了 with Symfony and Java backgrounds about their thoughts on modern PHP and early Drupal 8 adoption, while DrupalCon Austin extends a special invitation to the Symfony community.
• DRUPAL引入了现代PHP patterns和libraries,我们欢迎其他体系或者语言的开发者,加入我们的社区,Larry Garfield 撰写了篇博客“给C#开发者普及D8” and Jeffrey McGuire 访谈了 具有Symfony 和 Java 背景的开发者,询问他们对现代PHP和早期DRUPAL8的开发意见,此外 DrupalCon Austin 发了个特别邀请给 Symfony社区。
同时,我们已经有了一个很好的社区,它介绍了在PHP5.3之前开发的DRUPAL和它导致PHP的所有改变。我们不会让这些停止我们modernizing的进程,我们可以互相帮助来进行这个转换。Chris Eastwood写了个博客,更新了他的简单对话模块,Danny Englander的博客更新了他的 Gratis theme.
当然有些人不喜欢等到DRUPAL8之后才能享受PHPmodernization的好处。 Christopher Skene 公开了 Object-oriented page callbacks for Drupal 7, the next installment of Writing Drupal 7 code with an eye towards Drupal 8, and Chris Pliakas 写了“ Using Composer Manager to get off the Island Now.”
关于modernizing,WINXP已经正式结束了,那些用IE8的人啥时候才更新? David Corbacho 总结了这方面关于DRUPAL8的现状。
对于站点建设者,Joe Fender e解释了如何用Drupal 8's Field UI来隐藏 form fields.
真实生活中的DRUPAL8
首先,有一些短期的加急工作会议进行, Washington, DC (4月22), Brisbane(4月 23), London (4月 26-27), and Stockholm (5月 4), 还有一个DRUPAL8的搜索API工作会议在 Zurich (4月 28-5月2). 加入DRUPAL的核心工作或者参与一两个工作会议。
4月23-25,DrupalCamp Mexico有几个DRUPAL8相关的会议和一整个"SymfonyDay" track!
4月25-27 DrupalCamp Donetsk有个关于DRUPAL8的讲演可以在线看
4月26 DrupalCamp St. Louis有个D8介绍
5月 2: DrupalJam 在荷兰有个关于DRUPAL8 patterns的研讨会,并且可能还有streamed Q&A with Dries。
5月2日-4日 DrupalCamp Toronto还没有时间表,但他们有很多D8的研讨会计划
5月31日-6月8日DrupalCon Austin and extended sprints.,这个年度北美 DrupalCon 会包括很多D8的研讨会,训练,和sprints,这个会议在6月的2-6日,社区集合冲刺在6月7日,在这个会议前后的周末也会有一些冲刺计划。这里是签名表,Austin负责推进DRUPAL的发布,所以尽可能计划参与
你关心DRUPAL8的进展咩,我们需要更多人帮我们完成这些内容,你可以每六周花几个小时,或者一次完成一个POST,或者经常协助某个section,联系XJM如果你想要参与这些有趣的事儿。