* TODO 解决因升级造成的兼容性问题 

refer to:
# [说透低代码-17｜兼容性问题：如何有效发现兼容性问题？](https://houbb.github.io/2015/01/01/%E8%AF%B4%E9%80%8F%E4%BD%8E%E4%BB%A3%E7%A0%81-17-%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98-%E5%A6%82%E4%BD%95%E6%9C%89%E6%95%88%E5%8F%91%E7%8E%B0%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98)
[说透低代码-18｜兼容性问题：如何有效解决兼容性问题？](https://houbb.github.io/2015/01/01/%E8%AF%B4%E9%80%8F%E4%BD%8E%E4%BB%A3%E7%A0%81-18-%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98-%E5%A6%82%E4%BD%95%E6%9C%89%E6%95%88%E8%A7%A3%E5%86%B3%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98)
https://time.geekbang.org/column/article/564236 -> 评论


* DONE 处理后端数据兼容性

TODO 加入数据adapter层？




# 疑问

- if app or package binary change, then only can use if else in default/meta/ code  instead of update them in database!?

answer: no, can still update in database by:
1.use old default/meta/ code  to get their data(all extensions,contributes,packages,... data)
2.use new default/meta/ code to write them to a new binary!



** DONE update user table

test: add Mbi:0 field




** DONE update publishedapp table and apps storage

TODO apps storage:
get file id from table
get old buffer
return new buffer


** DONE reset historyData


* DONE 加入发布版本时自动化执行脚本

预发包括:
（local -> pre-production）

- update frontend/static/{dts file} by copy(finish)
- run ci
- increase VersionConfig(done)
- lerna publish
- publish platform's production code to cloud host pre-production
- publish all new version extension,contribute to pre-production
- update all packages in pre-production
- update all apps in pre-production
- invoke compatible tool to upgrade user's data in pre-production


正式发布包括:
（pre-production -> production）

- publish platform's production to cloud host production
- publish all new version extension,contribute to production
- update all packages in production
- invoke compatible tool to upgrade user's data in production

下个版本开始开发时：
(prepare local)

- clean local data, copy production data to local


* DONE fix compatible bdd test coverage


* TODO 完善ui control




** TODO add more Inspector

Inspector: can edit component;set component's data;
TODO 加入更多的Component Inspector

*** TODO active basic camera view
TODO fix import scene* TODO>active

GLTFExporter:

cameras->current camera(by find name first):
add extensions:{
   "Meta3D_camera_active":{
      "isAction": true
   }
}


GLTFLoader.js:
Camera.userData add the same extensions


converter:set Camera's userData

_import->Camera: parse userData and active


TODO run test:
editor:export single event-> import event
# editor:export event-> import event

publish:



TODO publish:
scene converter
export scene
import scene
load glb
load-scene

TODO update packages:
three
asset
editor-whole
engine-whole


*** DONE fix: debug: different packages shouldn't affect each!

TODO switch should use each show debug

TODO different packages shouldn't affect each!


*** DONE 
TODO run test:

publish:



TODO publish:
scene converter
export scene
import scene
load glb
load-scene

TODO update packages:
three
asset
editor-whole
engine-whole


# *** TODO fix: publish: logo miss

*** TODO add component
# **** TODO now only add arcball, basiccameraview, perspective component, no other components
**** TODO now only add arcball, basiccameraview component, no other components
handle event
   **** TODO export/import scene/single event: use plugin for GLTFExporter, GLTFLoader to support arcballCameraController
   **** TODO publish: bind event when active has arcball

**** TODO change default camera to arcball camera

# **** TODO game view pipeline: add bind event job




TODO add check: name shouldn't the same


TODO webview pipeline: add bind, update arcball jobs


**** TODO run test

update debug


add controller

editor:
when run, can drag in game view
   event not work
export single event->import
   name wrong
      # Loader->arcball in game view
      # import scene->arcball in scene view
   same camera

export event->import

publish:
can drag


TODO rename name


TODO publish:
game,scene view ->pipeline
scene converter
export scene
# import scene
load glb
load-scene
webrender and p
event p
editor whole
engine whole


TODO rename editor-event to event
TODO engine-whole: add event contribute

TODO update packages:
three
asset
event
game,scene view render
editor-whole
webrender
engine-whole

TODO run test
   publish: not event

TODO commit


*** DONE write article: architecture

# *** TODO write doc: how to develop in pro-code mode：概况

# TODO @糖果


*** DONE study 支持直接搭建Web3D应用




*** DONE add basiccameraview inspector:active

TODO default scene:
add a arcball camera

TODO publish

TODO build ui
   set debug

TODO run test
active another one
   run
   export single->import
   publish



TODO update package
game,scene view pipeline
editor-whole



* DONE fix: when       | list{"xxx"} => ()


# * TODO enhance publish tool


# - update all packages in pre-production
# auto upgrade



# - update all apps in pre-production
# auto upgrade



* TODO publish


TODO update update_platform_code:
   TODO use sudo for update host files
   TODO update initProduction
      use local one

TODO finish meta3d-platform-publish->gulpfile


TODO fix in local,production: /meta3d not work


TODO finish version: rename 1.2.0 to 1.0.0


TODO pass ci

TODO update packages in production
   TODO rename webview-render to web-render